<?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>Vibe Coding Forem: Kipngeno Gregory</title>
    <description>The latest articles on Vibe Coding Forem by Kipngeno Gregory (@gregory42266270).</description>
    <link>https://vibe.forem.com/gregory42266270</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%2F2807834%2F24e6c305-c924-4ed8-ba0a-d1b568dcf509.jpg</url>
      <title>Vibe Coding Forem: Kipngeno Gregory</title>
      <link>https://vibe.forem.com/gregory42266270</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://vibe.forem.com/feed/gregory42266270"/>
    <language>en</language>
    <item>
      <title>ANOVA or Analysis Of Variance</title>
      <dc:creator>Kipngeno Gregory</dc:creator>
      <pubDate>Thu, 16 Oct 2025 06:47:33 +0000</pubDate>
      <link>https://vibe.forem.com/gregory42266270/anova-or-analysis-of-variance-493f</link>
      <guid>https://vibe.forem.com/gregory42266270/anova-or-analysis-of-variance-493f</guid>
      <description>&lt;h2&gt;
  
  
  ANOVA: Comparing Multiple Groups Efficiently
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Analysis of Variance (ANOVA) is a statistical method used to determine if there are significant differences between the means of three or more groups. Instead of running multiple t-tests (which increases error rates), ANOVA provides a single test for overall group differences.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Practical Example: Marketing Campaign Testing
&lt;/h2&gt;

&lt;p&gt;A company tests four different advertising strategies (A, B, C, D) to see which generates the most sales:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Campaign A: 45, 48, 50, 47, 46 sales&lt;/li&gt;
&lt;li&gt;Campaign B: 52, 55, 53, 54, 51 sales&lt;/li&gt;
&lt;li&gt;Campaign C: 60, 58, 62, 59, 61 sales&lt;/li&gt;
&lt;li&gt;Campaign D: 40, 42, 38, 41, 39 sales&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;ANOVA answers: Are these sales differences statistically significant, or just random variation?&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How It's Used:
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Research: Compare multiple treatments in medicine&lt;/li&gt;
&lt;li&gt;Business: Test different pricing strategies&lt;/li&gt;
&lt;li&gt;Education: Evaluate teaching methods&lt;/li&gt;
&lt;li&gt;Manufacturing: Compare production methods&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;code&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import scipy.stats as stats
import pandas as pd

# Sample data: Sales from 4 marketing campaigns
campaign_a = [45, 48, 50, 47, 46]
campaign_b = [52, 55, 53, 54, 51]
campaign_c = [60, 58, 62, 59, 61]
campaign_d = [40, 42, 38, 41, 39]

# Perform one-way ANOVA
f_stat, p_value = stats.f_oneway(campaign_a, campaign_b, campaign_c, campaign_d)

print(f"F-statistic: {f_stat:.2f}")
print(f"P-value: {p_value:.4f}")

if p_value &amp;lt; 0.05:
    print("result: Significant differences exist between campaigns")
else:
    print("result: no significant differences between campaigns")
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Output Interpretation:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;P-value &amp;lt; 0.05: Significant differences exist&lt;/li&gt;
&lt;li&gt;P-value ≥ 0.05: No significant differences&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  When to Use ANOVA:
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Comparing 3+ groups&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Testing one categorical variable&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Meeting assumptions: normal distribution, equal variances&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;resources :&lt;a href="https://github.com/learn-co-curriculum/ANOVA_seattle-chicago-dsc" rel="noopener noreferrer"&gt;github&lt;/a&gt;  &lt;/p&gt;

&lt;p&gt;by &lt;a href="https://gregory-tech.netlify.app/" rel="noopener noreferrer"&gt;gregory.tech&lt;/a&gt;&lt;/p&gt;

</description>
      <category>analytics</category>
      <category>datascience</category>
      <category>learning</category>
    </item>
    <item>
      <title>Understanding Skewness and Kurtosis</title>
      <dc:creator>Kipngeno Gregory</dc:creator>
      <pubDate>Mon, 29 Sep 2025 05:12:31 +0000</pubDate>
      <link>https://vibe.forem.com/gregory42266270/understanding-skewness-and-kurtosis-4a0g</link>
      <guid>https://vibe.forem.com/gregory42266270/understanding-skewness-and-kurtosis-4a0g</guid>
      <description>&lt;h2&gt;
  
  
  When analyzing datasets, it’s not enough to know measures of central tendency (mean, median, mode) and variability (variance, standard deviation).
&lt;/h2&gt;

&lt;h2&gt;
  
  
  Skewness: The Measure of Asymmetry
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Definition: Skewness measures the degree and direction of asymmetry in a distribution around its mean.&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Formula:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Skewness=(n1​∑i=1n​(xi​−xˉ)2)3/2n1​∑i=1n​(xi​−xˉ)3​

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

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Real-Life Example:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Income distribution&lt;/strong&gt; → Often positively skewed because most people earn average wages, but a small number of high earners stretch the tail to the right.&lt;br&gt;
&lt;strong&gt;Exam scores&lt;/strong&gt; → If most students score high but a few fail badly, the distribution is negatively skewed.&lt;/p&gt;
&lt;h2&gt;
  
  
  Kurtosis: The Measure of Tailedness
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Definition: Kurtosis measures the heaviness of tails in a distribution compared to a normal distribution.&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Formula:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Kurtosis=(n1​∑i=1n​(xi​−xˉ)2)2n1​∑i=1n​(xi​−xˉ)4​
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;A normal distribution has kurtosis ≈ 3 (called mesokurtic).&lt;/li&gt;
&lt;li&gt;To make interpretation easier, analysts often use excess kurtosis = kurtosis – 3.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Real-Life Example:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Stock returns → Usually leptokurtic (heavy-tailed). This means extreme ups and downs occur more frequently than in a normal curve.&lt;/li&gt;
&lt;li&gt;Heights of people → Typically close to mesokurtic, since extreme deviations are rare.&lt;/li&gt;
&lt;li&gt;Uniform distribution → Often platykurtic (light-tailed), with fewer outliers.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Key Difference&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Skewness →&lt;/strong&gt; Tells us about the direction of data spread (left, right, or symmetric).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Kurtosis →&lt;/strong&gt; Tells us about the intensity of tails (normal, heavy, or light).&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why It Matters
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Understanding skewness and kurtosis helps analysts:&lt;/li&gt;
&lt;li&gt;Detect outliers and anomalies.&lt;/li&gt;
&lt;li&gt;Choose suitable statistical models (many assume normality).&lt;/li&gt;
&lt;li&gt;Improve preprocessing before applying machine learning.&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;by &lt;a href="https://gregory-tech.netlify.app/" rel="noopener noreferrer"&gt;gregory.tech&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>ai</category>
      <category>discuss</category>
    </item>
    <item>
      <title>Are We Really Ready for the Next Silicon Savannah?</title>
      <dc:creator>Kipngeno Gregory</dc:creator>
      <pubDate>Tue, 23 Sep 2025 02:15:20 +0000</pubDate>
      <link>https://vibe.forem.com/gregory42266270/are-we-really-ready-for-the-next-silicon-savannah-11ch</link>
      <guid>https://vibe.forem.com/gregory42266270/are-we-really-ready-for-the-next-silicon-savannah-11ch</guid>
      <description>&lt;p&gt;&lt;strong&gt;Kenya has proudly worn the crown of the “Silicon Savannah” for over a decade, fueled by innovations like M-Pesa and a vibrant startup scene. But as we enter a new era, one driven by Big Data, Web3, and AI, it is worth asking: are we truly ready to lead the next wave of global technological transformation?&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Data Dilemma: Are We Owners or Just Sources?
&lt;/h2&gt;

&lt;p&gt;Kenya’s data powers global AI, but who owns the results? Are we shaping the future, or just supplying the raw material while others cash in?&lt;/p&gt;

&lt;p&gt;If we don’t invest in local talent, sovereign data repositories, and home-grown AI, we’ll stay data laborers in someone else’s revolution. It’s time to decide: do we build, or just get mined?&lt;/p&gt;

&lt;h2&gt;
  
  
  Web3: Decentralised Promise, Centralised Risks?
&lt;/h2&gt;

&lt;p&gt;Web3 promises decentralization and inclusion, but in Kenya, it’s mostly about crypto trading. Where are the startups using blockchain to fix land fraud, or smart contracts to secure farmer supply chains?&lt;/p&gt;

&lt;p&gt;If we focus only on speculation, Web3 risks becoming a bubble for the few. True readiness means clear regulation, blockchain skills development, and building tools that solve real problems, not just pump coins.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Employment Paradox: Will AI Create or Displace?
&lt;/h2&gt;

&lt;p&gt;AI introduces a critical dilemma for Kenya's workforce: while promising new opportunities, it directly threatens entry-level tech roles in data entry and customer service through automation. The urgent question is whether our education system is pivoting fast enough to train for future roles like AI ethics and prompt engineering, rather than obsolete skills. Success requires a radical shift towards fostering critical thinking and creativity to ensure Kenyans become pilots of AI, not its passengers.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Green Dilemma: Can a Tech Boom be Eco-Conscious?
&lt;/h2&gt;

&lt;p&gt;The digital world has a very real physical cost. Training large AI models consumes enough energy to power hundreds of homes for a year. Blockchain networks, depending on their model, can be incredibly energy-intensive.&lt;/p&gt;

&lt;p&gt;As a nation celebrated for its commitment to renewable energy and natural beauty, how do we reconcile this with the carbon footprint of advanced tech? Pushing for AI and Web3 without a "Green Tech" policy is unsustainable, which begs for the questions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;1.How can we power our data centers with our abundant geothermal and solar energy?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;2.What are our policies for the e-waste that will inevitably come from the hardware required for this tech leap?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;3.Are we incentivizing startups that use AI and data to solve environmental challenges, such as optimizing water use or predicting climate impact on agriculture?&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The Silicon Savannah cannot be a success if it turns into a digital wasteland. Our tech evolution must be inherently sustainable.&lt;/p&gt;

&lt;h2&gt;
  
  
  Readiness now means:
&lt;/h2&gt;

&lt;p&gt;1.&lt;strong&gt;Building Data Sovereignty:&lt;/strong&gt; Treating data as a strategic national asset.&lt;/p&gt;

&lt;p&gt;2.&lt;strong&gt;Fostering Deep-Tech Innovation:&lt;/strong&gt; Moving beyond consumer apps to fund and support foundational AI and Web3 projects.&lt;/p&gt;

&lt;p&gt;3.&lt;strong&gt;Future-Proofing Education:&lt;/strong&gt; Radically reshaping our curriculum to prepare for an AI-augmented world.&lt;/p&gt;

&lt;p&gt;4.&lt;strong&gt;Embedding Sustainability:&lt;/strong&gt; Making green principles non-negotiable in our tech policy.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;What do you think? Is Kenya ready to lead the next wave of tech innovation? Share your thoughts.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;by &lt;a href="https://gregory-tech.netlify.app/" rel="noopener noreferrer"&gt;gregory.tech&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

</description>
    </item>
    <item>
      <title>Beyond Functional: Writing Professional and Performant SQL Queries</title>
      <dc:creator>Kipngeno Gregory</dc:creator>
      <pubDate>Sun, 21 Sep 2025 13:03:36 +0000</pubDate>
      <link>https://vibe.forem.com/gregory42266270/beyond-functional-writing-professional-and-performant-sql-queries-11ac</link>
      <guid>https://vibe.forem.com/gregory42266270/beyond-functional-writing-professional-and-performant-sql-queries-11ac</guid>
      <description>&lt;h2&gt;
  
  
  Structured Query Language (SQL) is one of the most widely used languages for interacting with databases, yet even experienced developers often make subtle mistakes that affect performance, readability, and security. Writing high-quality SQL queries is critical for &lt;strong&gt;scalability&lt;/strong&gt;, &lt;strong&gt;maintainability&lt;/strong&gt;, and &lt;strong&gt;efficiency&lt;/strong&gt;.
&lt;/h2&gt;

&lt;h2&gt;
  
  
  1. The Siren Call of &lt;code&gt;SELECT *&lt;/code&gt; Instead of Explicit Columns
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Problem:&lt;/strong&gt; &lt;code&gt;SELECT *&lt;/code&gt; retrieves every column from a table, even those not needed. This increases network load, slows down queries, and can break applications if the schema changes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Solution:&lt;/strong&gt; Always specify the exact columns you need:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;SELECT id, name, created_at FROM users;&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;-- Instead of:
SELECT * FROM orders;

-- Use:
SELECT order_id, customer_id, order_date, total_amount
FROM orders;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This improves performance and keeps your queries predictable.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Neglecting the Power of Indexes
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Problem:&lt;/strong&gt; Queries that filter large tables without proper indexes often result in full table scans, significantly slowing down performance.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Mistake:&lt;/strong&gt; Writing predicates that prevent index usage.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Common culprits include:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Wrapping a column in a function: &lt;code&gt;WHERE YEAR(order_date) = 2023&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Using a wildcard at the beginning of a &lt;code&gt;LIKE&lt;/code&gt; pattern:&lt;code&gt;WHERE customer_name LIKE '%Smith%'&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Using &lt;code&gt;OR&lt;/code&gt; conditions on different columns without appropriate indexes.
&lt;strong&gt;The Impact:&lt;/strong&gt; The query forces a full table scan, which becomes exponentially slower as the table grows.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Solution:&lt;/strong&gt; Ensure that columns used in &lt;code&gt;WHERE&lt;/code&gt;, &lt;code&gt;JOIN&lt;/code&gt;, and &lt;code&gt;ORDER BY&lt;/code&gt;clauses are indexed where appropriate. Always analyze query execution plans to confirm indexes are being used.&lt;br&gt;
&lt;code&gt;code&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;-- Instead of (non-sargable):
SELECT * FROM orders WHERE YEAR(order_date) = 2023;

-- Use (sargable - Search ARGument ABLE):
SELECT * FROM orders WHERE order_date &amp;gt;= '2023-01-01' AND order_date &amp;lt; '2024-01-01';
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  3. Mishandling &lt;code&gt;NULL&lt;/code&gt; Values
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Problem:&lt;/strong&gt; Failing to account for &lt;code&gt;NULL&lt;/code&gt; values can produce unexpected results, especially with comparison operators.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Solution:&lt;/strong&gt; Use &lt;code&gt;IS NULL&lt;/code&gt; or &lt;code&gt;COALESCE()&lt;/code&gt; or &lt;code&gt;IS NOT NULL&lt;/code&gt; or &lt;code&gt;IFNULL()&lt;/code&gt; to handle null values explicitly:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;SELECT COALESCE(email, 'kipngenogregory@gmail.com') AS safe_email FROM users;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;or&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;-- Instead of (will not find NULL phone numbers):
SELECT * FROM customers WHERE phone_number = NULL;

-- Use:
SELECT * FROM customers WHERE phone_number IS NULL;

-- To safely perform calculations:
SELECT product_id, price * COALESCE(quantity, 0) AS estimated_value FROM order_items;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  4. Improper Filtering in &lt;code&gt;GROUP BY&lt;/code&gt;and &lt;code&gt;HAVING&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;A confusion between the &lt;code&gt;WHERE&lt;/code&gt; and &lt;code&gt;HAVING&lt;/code&gt; clauses leads to inefficient queries.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The Mistake: Using the &lt;code&gt;HAVING&lt;/code&gt; clause to filter rows before aggregation.&lt;/li&gt;
&lt;li&gt;The Impact: The &lt;code&gt;HAVING&lt;/code&gt; clause filters groups after they have been aggregated. Filtering individual rows first is the job of the WHERE clause, which is far more efficient as it reduces the working data set before the costly aggregation operation.
The Professional Approach: Use &lt;code&gt;WHERE&lt;/code&gt; to filter rows. Use &lt;code&gt;HAVING&lt;/code&gt; to filter groups.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;-- Inefficient:
SELECT customer_id, COUNT(order_id) AS order_count
FROM orders
GROUP BY customer_id
HAVING customer_id &amp;gt; 100; -- Filtering on a single row *after* grouping

-- Efficient:
SELECT customer_id, COUNT(order_id) AS order_count
FROM orders
WHERE customer_id &amp;gt; 100  -- Filter rows *before* grouping
GROUP BY customer_id;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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

&lt;p&gt;By eschewing &lt;code&gt;SELECT *&lt;/code&gt;, respecting indexes, handling &lt;code&gt;NULLs&lt;/code&gt;correctly, using explicit joins, and filtering strategically, you elevate your code from merely functional to truly exceptional. This leads to systems that are faster, more reliable, and easier to debug—a hallmark of a true data professional.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;by gregory.tech&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>database</category>
      <category>performance</category>
      <category>sql</category>
    </item>
    <item>
      <title>The Best "Man" Wins: Why the Vibe Coder vs. Engineer Debate is Over</title>
      <dc:creator>Kipngeno Gregory</dc:creator>
      <pubDate>Wed, 17 Sep 2025 11:39:53 +0000</pubDate>
      <link>https://vibe.forem.com/gregory42266270/the-best-man-wins-why-the-vibe-coder-vs-engineer-debate-is-over-6lg</link>
      <guid>https://vibe.forem.com/gregory42266270/the-best-man-wins-why-the-vibe-coder-vs-engineer-debate-is-over-6lg</guid>
      <description>&lt;p&gt;You’ve seen the convo. It’s on tech spaces, in Slack channels, and over coffee. On one side: the Vibe Coder, the modern hacker who intuits, iterates, and ships with an almost artistic flow. On the other: the Engineer, the disciplined architect for whom structure, tests, and scalability are non-negotiable.&lt;/p&gt;

&lt;p&gt;The dialogue is often framed as a battle of chaos versus order, a holy war for the soul of development.&lt;/p&gt;

&lt;p&gt;But it’s a false flag. The winner isn’t one or the other. The winner is the one who knows which tool to use, and when.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Rise of the Vibe
&lt;/h2&gt;

&lt;p&gt;Let’s be clear: the Vibe Coder is ascendant for a reason. Their toolkit is a product of our time: Copilot, ChatGPT, Claude, and Serverless. They don’t just code; they conduct. They describe an intention a vibe and the AI pair programmer translates it into functional code.&lt;/p&gt;

&lt;p&gt;This isn’t laziness. It’s leverage.&lt;/p&gt;

&lt;p&gt;They are the engine of the MVP, the solo founder validating an idea over a weekend, the creative dev building breathtaking interactive art. Their currency is speed and instinct, and in the right context, it’s a superpower.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Inevitable Crash
&lt;/h2&gt;

&lt;p&gt;But every superpower has a kryptonite. The unchecked Vibe Coder’s kryptonite is Scale.&lt;/p&gt;

&lt;p&gt;We’ve all seen it or inherited it. The prototype that “just worked” becomes a production nightmare. The repository becomes a museum of clever hacks that no one understands. The lack of tests, architecture, or documentation creates a technical debt that cripples progress. When the vibe checks out, all that’s left is the chaos.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Bedrock of the Engineer
&lt;/h2&gt;

&lt;p&gt;This is where the Engineer, often unfairly maligned as slow or rigid becomes indispensable. They are the anti-chaos agents. They build the platforms, databases, and frameworks that the Vibe Coder relies upon. They are the ones who scale the successful MVP into a robust system that can handle millions.&lt;/p&gt;

&lt;p&gt;Their domain is mission-critical systems: finance, aviation, healthcare. Places where “it works on my machine” isn’t just a meme; it’s a catastrophic failure point. Their value isn’t in raw speed, but in predictable, lasting power.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Synthesis: The Context-Aware Developer
&lt;/h2&gt;

&lt;p&gt;So, who wins? The Vibe Coder or the Engineer?&lt;/p&gt;

&lt;p&gt;The best “man” wins. And the best man is the developer who refuses to be just one thing.&lt;/p&gt;

&lt;p&gt;The modern tech landscape doesn’t demand you pick a side. It demands you master both modes.&lt;/p&gt;

&lt;h2&gt;
  
  
  1.Vibe Mode:
&lt;/h2&gt;

&lt;p&gt;For ideation, prototyping, exploration, and personal projects.&lt;/p&gt;

&lt;h2&gt;
  
  
  2.Engineer Mode:
&lt;/h2&gt;

&lt;p&gt;For refactoring, scaling, working in legacy systems, and writing critical path code. &lt;/p&gt;

&lt;p&gt;The most valuable player on any team is the one who can pivot from a frenetic, AI-powered coding session to methodically diagramming a system architecture and understand why both are essential.&lt;/p&gt;

&lt;p&gt;The debate was never about which style is better. It was about context. The future belongs not to the pure Vibe Coder or the pure Engineer, but to the hybrid, the developer agile enough to harness intuition and discipline in equal measure.&lt;/p&gt;

&lt;p&gt;The one who uses the right tool for the job.&lt;/p&gt;

&lt;p&gt;That’s who wins.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;by gregory.tech&lt;/p&gt;
&lt;/blockquote&gt;

</description>
    </item>
    <item>
      <title>Similarities Between Stored Procedures and Python Functions</title>
      <dc:creator>Kipngeno Gregory</dc:creator>
      <pubDate>Mon, 08 Sep 2025 05:39:27 +0000</pubDate>
      <link>https://vibe.forem.com/gregory42266270/similarities-between-stored-procedures-and-python-functions-jmb</link>
      <guid>https://vibe.forem.com/gregory42266270/similarities-between-stored-procedures-and-python-functions-jmb</guid>
      <description>&lt;p&gt;&lt;strong&gt;While residing in different technological layers—SQL in the database and Python in the application layer—stored procedures and Python functions are fundamental constructs that share a common philosophical goal: **modularity and reuse.&lt;/strong&gt;**&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Encapsulation of Logic&lt;/strong&gt;&lt;br&gt;
Stored Procedure: Encapsulates one or more SQL statements, along with procedural logic, into a single executable unit within the database. This hides the complexity of the underlying SQL and database schema from the application code.&lt;/p&gt;

&lt;p&gt;Python Function: Encapsulates a block of Python code that performs a specific task. This promotes the DRY (Don't Repeat Yourself) principle and isolates functionality.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Parameterization&lt;/strong&gt;&lt;br&gt;
Stored Procedure: Defines input (IN), output (OUT), and input-output (INOUT) parameters.&lt;/p&gt;

&lt;p&gt;example&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;CREATE PROCEDURE GetEmployee(IN emp_id INT)
BEGIN
    SELECT * FROM employees WHERE id = emp_id;
END;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Python Function: Defines parameters in its signature, which can be positional, keyword, or have default values.&lt;br&gt;
example&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;def get_employee(emp_id):
    # ... code to fetch employee ...
    return employee_data
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;3. Reusability and Maintainability&lt;/strong&gt;&lt;br&gt;
Reusability: A single well-defined procedure or function eliminates code duplication. A change need only be made in one place.&lt;/p&gt;

&lt;p&gt;Maintainability: Fixing a bug or optimizing logic requires modification only within the procedure or function, not in every location where the logic was previously duplicated. This reduces errors and simplifies testing.&lt;/p&gt;

&lt;p&gt;_Conclusion:&lt;/p&gt;

&lt;p&gt;Stored procedures and Python functions are conceptual cousins. They both champion the software engineering principles of modularity, encapsulation, and reuse. A stored procedure is essentially the database's equivalent of a function—a specialized function designed for optimal, secure, and efficient data manipulation within the database engine._&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Understanding SQL Constructs: Subqueries, CTEs, and Stored Procedures</title>
      <dc:creator>Kipngeno Gregory</dc:creator>
      <pubDate>Mon, 08 Sep 2025 05:29:24 +0000</pubDate>
      <link>https://vibe.forem.com/gregory42266270/understanding-sql-constructs-subqueries-ctes-and-stored-procedures-1glb</link>
      <guid>https://vibe.forem.com/gregory42266270/understanding-sql-constructs-subqueries-ctes-and-stored-procedures-1glb</guid>
      <description>&lt;p&gt;&lt;strong&gt;In the realm of SQL and relational database management, efficiently retrieving and manipulating data is paramount.&lt;br&gt;
This article elucidates the differences between subqueries, Common Table Expressions (CTEs), and stored procedures.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Subquery (Nested Query)&lt;/strong&gt;&lt;br&gt;
A subquery, or nested query, is a SQL query embedded within the WHERE, FROM, or SELECT clause of another SQL query. Its primary role is to return a result set that the outer query uses for its execution.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Characteristics:&lt;/strong&gt;&lt;br&gt;
Purpose: To compute a value or set of values for use in a filter, calculation, or as a derived table within a single, primary query.&lt;/p&gt;

&lt;p&gt;Scope &amp;amp; Lifetime: The subquery is executed for each row processed by the outer query (in some cases) and its result exists only for the duration of the main query's execution. It is not reusable.&lt;/p&gt;

&lt;p&gt;Readability: Can quickly become complex and difficult to read, especially when nested multiple levels deep (often called "nested hell").&lt;br&gt;
&lt;strong&gt;Use Case: Find all employees whose salary is above the company average.&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SELECT employee_name, salary
FROM employees
WHERE salary &amp;gt; (SELECT AVG(salary) FROM employees);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;2. Common Table Expression (CTE)&lt;/strong&gt;&lt;br&gt;
A CTE, defined using the WITH clause, is a temporary named result set that exists only within the scope of a single SELECT, INSERT, UPDATE, or DELETE statement. It is primarily a tool for improving query organization and readability.&lt;br&gt;
&lt;strong&gt;Characteristics:&lt;/strong&gt;&lt;br&gt;
Purpose: To break down complex queries into simpler, logical, and reusable parts. CTEs make queries more readable and maintainable, and they enable recursive queries, which are impossible with standard subqueries.&lt;/p&gt;

&lt;p&gt;Scope &amp;amp; Lifetime: The CTE is defined at the beginning of a statement and can be referenced multiple times within that same statement. It is discarded after the statement executes.&lt;/p&gt;

&lt;p&gt;Readability: Significantly improves readability by allowing a modular, "step-by-step" approach to building queries.&lt;br&gt;
*&lt;em&gt;Use Case: *&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;WITH RegionalSales AS (
    SELECT region_id, SUM(amount) AS total_sales
    FROM orders
    GROUP BY region_id
)
SELECT region_name, total_sales
FROM regions r
JOIN RegionalSales rs ON r.id = rs.region_id
WHERE rs.total_sales &amp;gt; 1000000;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;3. Stored Procedure&lt;/strong&gt;&lt;br&gt;
A stored procedure is a precompiled collection of SQL statements and optional logic (variables, conditionals, loops) stored within the database itself. It is executed as a single unit, often to encapsulate a business logic operation.&lt;br&gt;
&lt;strong&gt;Characteristics:&lt;/strong&gt;&lt;br&gt;
Purpose: To encapsulate complex operations, promote code reuse, enhance security, and improve performance. They are used for data manipulation, data definition, and administrative tasks.&lt;/p&gt;

&lt;p&gt;Scope &amp;amp; Lifetime: Stored procedures are permanent database objects (like a table or view). They are stored on the server side and persist beyond a single query session.&lt;/p&gt;

&lt;p&gt;Readability: Encapsulates business logic, keeping application code cleaner. The logic is centralized within the database.&lt;br&gt;
&lt;strong&gt;Use Case:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;CREATE PROCEDURE PlaceNewOrder (
    IN p_customer_id INT,
    IN p_product_id INT,
    IN p_quantity INT
)
BEGIN
    START TRANSACTION;
    INSERT INTO orders (customer_id, order_date) VALUES (p_customer_id, NOW());
    INSERT INTO order_items (order_id, product_id, quantity) VALUES (LAST_INSERT_ID(), p_product_id, p_quantity);
    COMMIT;
END;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
    </item>
    <item>
      <title>ANALYSIS OF KENYAN CROPS DATASET: AGRICULTURAL INSIGHTS, TRENDS, AND OPPORTUNITIES</title>
      <dc:creator>Kipngeno Gregory</dc:creator>
      <pubDate>Sun, 24 Aug 2025 06:05:29 +0000</pubDate>
      <link>https://vibe.forem.com/gregory42266270/analysis-of-kenyan-crops-dataset-agricultural-insights-trends-and-opportunities-5da4</link>
      <guid>https://vibe.forem.com/gregory42266270/analysis-of-kenyan-crops-dataset-agricultural-insights-trends-and-opportunities-5da4</guid>
      <description>&lt;h2&gt;
  
  
  Key Insights:
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Most Profitable Crop:&lt;/strong&gt; Potatoes led as the most profitable crop, followed closely by cassava and rice.&lt;br&gt;
&lt;strong&gt;Land Utilization:&lt;/strong&gt; Nairobi and Machakos counties allocated the highest land area to crop production.&lt;br&gt;
&lt;strong&gt;Revenue Leaders by Crop Type:&lt;/strong&gt; Cassava, potatoes, and rice generated the highest revenue.&lt;br&gt;
&lt;strong&gt;County Performance:&lt;/strong&gt; Machakos and Nyeri counties dominated in total revenue, particularly from potatoes, cassava, and rice.&lt;br&gt;
&lt;strong&gt;Seasonal Insights:&lt;/strong&gt; Dry seasons (35%) and long rains (33%) contributed the most to revenue, while short rains accounted for 31%.&lt;br&gt;
&lt;strong&gt;Yield Patterns:&lt;/strong&gt; Potatoes and rice recorded the highest average yields.&lt;br&gt;
&lt;strong&gt;Irrigation Methods:&lt;/strong&gt; Drip irrigation drove the highest profitability (43%), followed by flood (32%) and sprinkler irrigation (24%).&lt;br&gt;
&lt;strong&gt;Soil &amp;amp; Fertilizer Use:&lt;/strong&gt; Clay, loamy, and sandy soils supported the most revenue. Fertilizers CAN and DAP were most used and correlated with higher revenue.&lt;br&gt;
&lt;strong&gt;Monthly Revenue Trends:&lt;/strong&gt; Revenue peaked in March, April, and May, but dropped in August due to pest infestations, delayed harvests, and weather challenges.&lt;br&gt;
&lt;strong&gt;Profit Trends Over Time:&lt;/strong&gt; Profits fluctuated seasonally, but showed resilience in high-demand crops.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Overall Insight:&lt;/strong&gt;&lt;br&gt;
&lt;em&gt;Potatoes, cassava, and rice are the backbone of Kenya’s agricultural profitability. Investments in drip irrigation, fertilizer optimization, and pest management can significantly improve yields and stabilize revenues.&lt;/em&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;analysis by Kipngeno Gregory&lt;br&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%2F45lrd7060fcxgrmruz9a.jpg" 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%2F45lrd7060fcxgrmruz9a.jpg" alt=" " width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

</description>
    </item>
    <item>
      <title>an article on Excel’s Strengths, Weaknesses and the Role of Excel in Predictive Analysis</title>
      <dc:creator>Kipngeno Gregory</dc:creator>
      <pubDate>Sun, 10 Aug 2025 09:13:56 +0000</pubDate>
      <link>https://vibe.forem.com/gregory42266270/an-article-on-excels-strengths-weaknesses-and-the-role-of-excel-in-predictive-analysis-180k</link>
      <guid>https://vibe.forem.com/gregory42266270/an-article-on-excels-strengths-weaknesses-and-the-role-of-excel-in-predictive-analysis-180k</guid>
      <description>&lt;p&gt;&lt;strong&gt;an article on Excel’s Strengths and Weaknesses in Predictive Analysis and the Role of Excel in Making Data-Driven Business Decisions&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Microsoft Excel&lt;/strong&gt; remains fundamental tool for business analytics, offering accessible predictive capabilities despite its limitations.&lt;/p&gt;

&lt;h2&gt;
  
  
  Strengths
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;It's User-Friendly&lt;/strong&gt; – Intuitive interface with no coding required for basic analysis.&lt;br&gt;
&lt;strong&gt;Has Built-in Tools **– Forecast Sheet, regression (via Data Analysis ToolPak), and What-If Analysis.&lt;br&gt;
**Ensures Rapid Visualization&lt;/strong&gt; – Charts, trendlines, and PivotTables simplify pattern recognition.&lt;br&gt;
*&lt;em&gt;Enables Integration *&lt;/em&gt;– Works with Power BI, SQL, and other enterprise systems.&lt;/p&gt;

&lt;h2&gt;
  
  
  Weaknesses
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Limited Computational Power-Excel&lt;/strong&gt; -struggles with large datasets (usually over a few hundred thousand rows).&lt;br&gt;
&lt;strong&gt;Basic Statistical Capabilities&lt;/strong&gt; -While Excel can handle simple regressions and forecasts, it lacks advanced machine learning algorithms and statistical methods found in &lt;em&gt;tools like Python, R&lt;/em&gt;&lt;br&gt;
&lt;strong&gt;Error-Prone&lt;/strong&gt; – Manual processes increase risk of formula mistakes.&lt;br&gt;
*&lt;em&gt;Static Data *&lt;/em&gt;– No real-time analytics without manual refreshes.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Role of Excel in Data-Driven Business Decisions
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Exploratory Analysis **– Quick insights for SMEs and non-technical teams.&lt;br&gt;
**Scenario Modeling&lt;/strong&gt; – Tests business strategies (e.g., pricing, budgets).&lt;br&gt;
&lt;strong&gt;Transition Tool&lt;/strong&gt; – &lt;em&gt;Bridges gap between manual analysis and advanced BI platforms&lt;/em&gt;.&lt;br&gt;
&lt;strong&gt;Trend Forecasting&lt;/strong&gt; -Businesses can use Excel to project sales, expenses, or market growth using historical data.&lt;/p&gt;

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

&lt;p&gt;Excel may not compete with advanced machine learning platforms for highly complex predictive analysis, but its accessibility, flexibility, and visualization capabilities make it an indispensable tool in many organizations.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Data is the new oil-by &lt;em&gt;Kipngeno Gregory&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

</description>
    </item>
    <item>
      <title>How to Install and Set Up PostgreSQL on a Linux Server (Ubuntu)</title>
      <dc:creator>Kipngeno Gregory</dc:creator>
      <pubDate>Sat, 02 Aug 2025 11:05:02 +0000</pubDate>
      <link>https://vibe.forem.com/gregory42266270/how-to-install-and-set-up-postgresql-on-a-linux-server-ubuntu-2li</link>
      <guid>https://vibe.forem.com/gregory42266270/how-to-install-and-set-up-postgresql-on-a-linux-server-ubuntu-2li</guid>
      <description>&lt;h2&gt;
  
  
  Assignment 0 LUXDEV COHORT 4 JULY INTAKE
&lt;/h2&gt;

&lt;p&gt;1️⃣ Step 1: Update Your System&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo apt update
sudo apt upgrade -y

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

&lt;/div&gt;



&lt;p&gt;2️⃣ Step 2: Install PostgreSQL&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo apt install postgresql postgresql-contrib -y

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

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;postgresql: Core PostgreSQL database system.&lt;br&gt;
_postgresql-contrib: Additional useful tools and extensions.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;3️⃣ Step 3: Verify PostgreSQL Installation&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo systemctl status postgresql

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

&lt;/div&gt;



&lt;p&gt;_To start/stop/restart PostgreSQL:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo systemctl start postgresql
sudo systemctl stop postgresql
sudo systemctl restart postgresql

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

&lt;/div&gt;



&lt;p&gt;4️⃣ Step 4: Switch to PostgreSQL User&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo -i -u postgres

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

&lt;/div&gt;



&lt;p&gt;5️⃣ Step 5: Access PostgreSQL&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;psql

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

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;To exit:&lt;/em&gt;&lt;br&gt;
&lt;code&gt;\q&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;6️⃣ Step 6: Secure PostgreSQL&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;\password postgres

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

&lt;/div&gt;



&lt;p&gt;7️⃣ Step 7: Create a New Database&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;CREATE DATABASE myappdb;
CREATE USER myappuser WITH ENCRYPTED PASSWORD 'mypassword';
GRANT ALL PRIVILEGES ON DATABASE myappdb TO myappuser;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;8️⃣ Step 9: Test Connection Locally&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;psql -h localhost -U myappuser -d myappdb

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

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;now you will have installed and configured PostgreSQL on your Linux server🙂&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;by Kipngeno Gregory&lt;/p&gt;
&lt;/blockquote&gt;

</description>
    </item>
  </channel>
</rss>
