<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Programming on Victor Hugo Solis</title>
		<link>http://localhost:1313/tags/programming/</link>
		<description>Recent content in Programming on Victor Hugo Solis</description>
		<generator>Hugo</generator>
		<language>en-us</language>
		
		
		
		
			<lastBuildDate>Thu, 04 Jun 2026 09:00:00 -0800</lastBuildDate>
		
			<atom:link href="http://localhost:1313/tags/programming/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>Mastering SQL Subqueries: Your Ultimate Guide from Basics to Advanced</title>
				<link>http://localhost:1313/posts/mastering-sql-subqueries-your-ultimate-guide-from-basics-to-advanced/</link>
				<pubDate>Thu, 04 Jun 2026 09:00:00 -0800</pubDate>
				<guid>http://localhost:1313/posts/mastering-sql-subqueries-your-ultimate-guide-from-basics-to-advanced/</guid>
				<description>&lt;p&gt;Welcome to SQL subqueries, an essential tool for budding SQL programmers and data analysts. A subquery is &amp;ldquo;a query within a query, a way to perform multi-layered data investigations.&amp;rdquo; This guide walks through what subqueries are and why they matter, the different subquery types, real-world examples, and best practices for writing clean, efficient subqueries.&lt;/p&gt;&#xA;&lt;h2 id=&#34;what-exactly-are-sql-subqueries-the-building-blocks-explained&#34;&gt;What Exactly Are SQL Subqueries? The Building Blocks Explained&lt;/h2&gt;&#xA;&lt;h3 id=&#34;defining-a-subquery-nested-query-or-inner-query&#34;&gt;Defining a Subquery (Nested Query or Inner Query)&lt;/h3&gt;&#xA;&lt;p&gt;An SQL subquery, also called a nested query or inner query, is a SELECT statement embedded within another SQL statement. The outer statement executes the subquery first, then uses its result.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Python Pandas: Cleaning Data for Analysis</title>
				<link>http://localhost:1313/posts/python-pandas-cleaning-data-for-analysis/</link>
				<pubDate>Sat, 30 May 2026 09:00:00 -0800</pubDate>
				<guid>http://localhost:1313/posts/python-pandas-cleaning-data-for-analysis/</guid>
				<description>&lt;p&gt;Raw information is frequently messy, incomplete, and inconsistent — data scientists spend up to 80% of their time cleaning data. Unclean datasets produce inaccurate analyses and flawed conclusions. Using Python Pandas, analysts can:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Remove irrelevant or duplicate entries&lt;/li&gt;&#xA;&lt;li&gt;Fix structural errors (typos, inconsistent formatting)&lt;/li&gt;&#xA;&lt;li&gt;Handle missing values and outliers&lt;/li&gt;&#xA;&lt;li&gt;Convert data types for accurate calculations&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;what-is-python-pandas-and-why-is-it-essential&#34;&gt;What is Python Pandas and Why Is It Essential?&lt;/h2&gt;&#xA;&lt;p&gt;Python Pandas is an open-source library built on NumPy, derived from the econometric term &amp;ldquo;Panel Data.&amp;rdquo; Key advantages include:&lt;/p&gt;</description>
			</item>
			<item>
				<title>Python Virtual Environments: Setup Guide &amp; Best Practices</title>
				<link>http://localhost:1313/posts/python-virtual-environments-setup-guide-best-practices/</link>
				<pubDate>Wed, 27 May 2026 09:00:00 -0800</pubDate>
				<guid>http://localhost:1313/posts/python-virtual-environments-setup-guide-best-practices/</guid>
				<description>&lt;p&gt;Virtual environments are essential tools for developers and data analysts working with multiple projects. It is recommended to use a virtual environment when working with third-party packages.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Key benefits include:&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Isolating dependencies for each project&lt;/li&gt;&#xA;&lt;li&gt;Avoiding version conflicts between packages&lt;/li&gt;&#xA;&lt;li&gt;Simplifying team collaboration with reproducible setups&lt;/li&gt;&#xA;&lt;li&gt;Experimenting safely without affecting other work&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;strong&gt;Common scenarios virtual environments solve:&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Project A needs Pandas v1.5, but Project B requires Pandas v2.0&lt;/li&gt;&#xA;&lt;li&gt;Installing packages globally that break existing code&lt;/li&gt;&#xA;&lt;li&gt;Collaborators unable to replicate your setup due to version mismatches&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;how-to-create-a-python-virtual-environment&#34;&gt;How to Create a Python Virtual Environment&lt;/h2&gt;&#xA;&lt;h3 id=&#34;1-using-venv-built-in-tool&#34;&gt;1. Using venv (Built-In Tool)&lt;/h3&gt;&#xA;&lt;p&gt;&lt;code&gt;venv&lt;/code&gt; is included with Python 3.3+ and is the recommended method.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Python for Data Analysis: Accessing Your Data</title>
				<link>http://localhost:1313/posts/python-for-data-analysis-accessing-your-data/</link>
				<pubDate>Thu, 21 May 2026 09:00:00 -0800</pubDate>
				<guid>http://localhost:1313/posts/python-for-data-analysis-accessing-your-data/</guid>
				<description>&lt;p&gt;In the modern data-focused business environment, efficiently accessing and analyzing data is crucial. Python has become the go-to language for data analysis due to its simplicity and powerful libraries. This guide covers practical methods to load data from various sources using Python.&lt;/p&gt;&#xA;&lt;h2 id=&#34;popular-python-tools-for-reading-data&#34;&gt;Popular Python Tools for Reading Data&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Pandas:&lt;/strong&gt; A powerful library for data manipulation and analysis, offering data structures like DataFrames for handling structured data&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;NumPy:&lt;/strong&gt; A foundational library for numerical computing, providing support for large, multi-dimensional arrays and matrices&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;SQLAlchemy:&lt;/strong&gt; An ORM (Object-Relational Mapping) toolkit and SQL abstraction layer that simplifies database interactions&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;MySQL:&lt;/strong&gt; A relational database system that integrates with Python for managing large datasets&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;1-reading-csv-and-excel-files&#34;&gt;1. Reading CSV and Excel Files&lt;/h2&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;import&lt;/span&gt; &lt;span style=&#34;color:#ff7b72&#34;&gt;pandas&lt;/span&gt; &lt;span style=&#34;color:#ff7b72&#34;&gt;as&lt;/span&gt; &lt;span style=&#34;color:#ff7b72&#34;&gt;pd&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8b949e;font-style:italic&#34;&gt;# CSV file&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;df_csv &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt; pd&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;.&lt;/span&gt;read_csv(&lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#34;data/sales_data.csv&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8b949e;font-style:italic&#34;&gt;# Excel file&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;df_excel &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt; pd&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;.&lt;/span&gt;read_excel(&lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#34;data/report.xlsx&amp;#34;&lt;/span&gt;, sheet_name&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#39;Q1&amp;#39;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Pro Tip:&lt;/strong&gt; For large datasets, use &lt;code&gt;chunksize&lt;/code&gt; to process data in batches and avoid memory overload.&lt;/p&gt;</description>
			</item>
			<item>
				<title>100 Days of Python: Day 011 Blackjack Game</title>
				<link>http://localhost:1313/posts/100-days-of-python-day011-blackjack-game/</link>
				<pubDate>Wed, 11 Mar 2026 09:00:00 -0700</pubDate>
				<guid>http://localhost:1313/posts/100-days-of-python-day011-blackjack-game/</guid>
				<description>&lt;p&gt;Day 011 of the &lt;a href=&#34;https://github.com/victorhugo81/100daysofpython&#34;&gt;100 Days of Python challenge&lt;/a&gt; brings together the previous lessons in a command-line Blackjack game. The player competes against a computer dealer using random cards and standard score comparisons.&lt;/p&gt;&#xA;&lt;h2 id=&#34;project-overview&#34;&gt;Project Overview&lt;/h2&gt;&#xA;&lt;p&gt;The program represents cards as numbers. Number cards keep their values, face cards are represented by &lt;code&gt;10&lt;/code&gt;, and an ace starts as &lt;code&gt;11&lt;/code&gt;. The &lt;code&gt;deal_card()&lt;/code&gt; function chooses one card at random from the deck list.&lt;/p&gt;&#xA;&lt;p&gt;The &lt;code&gt;calculate_score()&lt;/code&gt; function handles two important rules: a two-card total of 21 is Blackjack, represented internally by &lt;code&gt;0&lt;/code&gt;, and an ace changes from 11 to 1 when a hand would otherwise exceed 21.&lt;/p&gt;</description>
			</item>
			<item>
				<title>100 Days of Python: Day 010 Calculator</title>
				<link>http://localhost:1313/posts/100-days-of-python-day010-calculator/</link>
				<pubDate>Tue, 10 Mar 2026 09:00:00 -0700</pubDate>
				<guid>http://localhost:1313/posts/100-days-of-python-day010-calculator/</guid>
				<description>&lt;p&gt;Day 010 of the &lt;a href=&#34;https://github.com/victorhugo81/100daysofpython&#34;&gt;100 Days of Python challenge&lt;/a&gt; builds a command-line calculator for addition, subtraction, multiplication, and division.&lt;/p&gt;&#xA;&lt;h2 id=&#34;project-overview&#34;&gt;Project Overview&lt;/h2&gt;&#xA;&lt;p&gt;Each arithmetic operation has its own function. A dictionary maps an operator symbol to the matching function:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;operations &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt; {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#34;+&amp;#34;&lt;/span&gt;: addition,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#34;-&amp;#34;&lt;/span&gt;: subtraction,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#34;*&amp;#34;&lt;/span&gt;: multiplication,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#34;/&amp;#34;&lt;/span&gt;: division,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;This lets the calculator choose and call an operation without a long chain of conditional statements. The &lt;code&gt;get_number()&lt;/code&gt; function repeatedly asks for input until it can convert the response to a &lt;code&gt;float&lt;/code&gt;.&lt;/p&gt;</description>
			</item>
			<item>
				<title>100 Days of Python: Day 009 Secret Auction</title>
				<link>http://localhost:1313/posts/100-days-of-python-day009-secret-auction/</link>
				<pubDate>Mon, 09 Mar 2026 09:00:00 -0700</pubDate>
				<guid>http://localhost:1313/posts/100-days-of-python-day009-secret-auction/</guid>
				<description>&lt;p&gt;Day 009 of the &lt;a href=&#34;https://github.com/victorhugo81/100daysofpython&#34;&gt;100 Days of Python challenge&lt;/a&gt; is a command-line Secret Auction. Multiple bidders enter names and bids, then the program determines the highest bidder after the auction closes.&lt;/p&gt;&#xA;&lt;h2 id=&#34;project-overview&#34;&gt;Project Overview&lt;/h2&gt;&#xA;&lt;p&gt;Bids are stored in a dictionary with the bidder&amp;rsquo;s name as the key and the bid amount as the value:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;bids[name] &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt; price&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;A loop collects bidders until the user answers &lt;code&gt;n&lt;/code&gt; when asked whether another bidder should continue. The input flow validates that names are not empty and contain letters, while bids must be positive whole numbers.&lt;/p&gt;</description>
			</item>
			<item>
				<title>100 Days of Python: Day 008 Caesar Cipher</title>
				<link>http://localhost:1313/posts/100-days-of-python-day008-caesar-cipher/</link>
				<pubDate>Sun, 08 Mar 2026 09:00:00 -0700</pubDate>
				<guid>http://localhost:1313/posts/100-days-of-python-day008-caesar-cipher/</guid>
				<description>&lt;p&gt;Day 008 of the &lt;a href=&#34;https://github.com/victorhugo81/100daysofpython&#34;&gt;100 Days of Python challenge&lt;/a&gt; creates a Caesar Cipher encoder and decoder. Each letter is shifted through the alphabet by a user-selected amount.&lt;/p&gt;&#xA;&lt;h2 id=&#34;project-overview&#34;&gt;Project Overview&lt;/h2&gt;&#xA;&lt;p&gt;The core function accepts the original text, shift amount, and whether the user wants to encode or decode. Decoding reverses the shift by multiplying it by &lt;code&gt;-1&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;shifted_position &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt; alphabet&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;.&lt;/span&gt;index(letter) &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;+&lt;/span&gt; shift_amount&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;shifted_position &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;%=&lt;/span&gt; len(alphabet)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;output_text &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;+=&lt;/span&gt; alphabet[shifted_position]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The modulo operation wraps positions around the end of the alphabet. Spaces and punctuation are preserved because characters that are not in the alphabet are added to the output unchanged.&lt;/p&gt;</description>
			</item>
			<item>
				<title>100 Days of Python: Day 007 Dragon Ball Hangman</title>
				<link>http://localhost:1313/posts/100-days-of-python-day007-dragon-ball-hangman/</link>
				<pubDate>Sat, 07 Mar 2026 09:00:00 -0700</pubDate>
				<guid>http://localhost:1313/posts/100-days-of-python-day007-dragon-ball-hangman/</guid>
				<description>&lt;p&gt;Day 007 of the &lt;a href=&#34;https://github.com/victorhugo81/100daysofpython&#34;&gt;100 Days of Python challenge&lt;/a&gt; builds a Dragon Ball themed Hangman game. The program chooses a character name, hides its letters, and gives the player six lives to reveal the word.&lt;/p&gt;&#xA;&lt;h2 id=&#34;project-overview&#34;&gt;Project Overview&lt;/h2&gt;&#xA;&lt;p&gt;The project separates reusable assets into modules: &lt;code&gt;hangman_words.py&lt;/code&gt; provides the word list, while &lt;code&gt;hangman_art.py&lt;/code&gt; provides the logo, hangman drawings, and trophy. The main file imports those values and controls the game.&lt;/p&gt;&#xA;&lt;p&gt;A random word is selected at the beginning. The display is rebuilt on every turn by checking each letter against the player&amp;rsquo;s correct guesses. Incorrect guesses are stored separately and reduce the lives counter.&lt;/p&gt;</description>
			</item>
			<item>
				<title>100 Days of Python: Day 006 Age Calculator</title>
				<link>http://localhost:1313/posts/100-days-of-python-day006-age-calculator/</link>
				<pubDate>Fri, 06 Mar 2026 09:00:00 -0700</pubDate>
				<guid>http://localhost:1313/posts/100-days-of-python-day006-age-calculator/</guid>
				<description>&lt;p&gt;Day 006 of the &lt;a href=&#34;https://github.com/victorhugo81/100daysofpython&#34;&gt;100 Days of Python challenge&lt;/a&gt; calculates how long a person has lived from a date entered in &lt;code&gt;MM/DD/YYYY&lt;/code&gt; format.&lt;/p&gt;&#xA;&lt;h2 id=&#34;project-overview&#34;&gt;Project Overview&lt;/h2&gt;&#xA;&lt;p&gt;The program uses &lt;code&gt;datetime.strptime()&lt;/code&gt; to parse the user&amp;rsquo;s birthdate and &lt;code&gt;datetime.now()&lt;/code&gt; for the current date. It reports the elapsed years, months, days, hours, minutes, and seconds.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;birthdate &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt; datetime&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;.&lt;/span&gt;strptime(birth_input, &lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#34;%m/&lt;/span&gt;&lt;span style=&#34;color:#a5d6ff&#34;&gt;%d&lt;/span&gt;&lt;span style=&#34;color:#a5d6ff&#34;&gt;/%Y&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;now &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt; datetime&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;.&lt;/span&gt;now()&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;time_in_between &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt; now &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;-&lt;/span&gt; birthdate&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Years and months require additional calendar logic. The program compares the current month and day with the birth month and day, adjusts when the current day has not reached the birth day, and borrows a year when necessary.&lt;/p&gt;</description>
			</item>
			<item>
				<title>100 Days of Python: Day 005 Number Guessing Game</title>
				<link>http://localhost:1313/posts/100-days-of-python-day005-number-guessing-game/</link>
				<pubDate>Thu, 05 Mar 2026 09:00:00 -0700</pubDate>
				<guid>http://localhost:1313/posts/100-days-of-python-day005-number-guessing-game/</guid>
				<description>&lt;p&gt;Day 005 of the &lt;a href=&#34;https://github.com/victorhugo81/100daysofpython&#34;&gt;100 Days of Python challenge&lt;/a&gt; is a terminal Number Guessing Game. Python chooses a secret number from 1 to 100, and the player keeps guessing until they find it or quit.&lt;/p&gt;&#xA;&lt;h2 id=&#34;project-overview&#34;&gt;Project Overview&lt;/h2&gt;&#xA;&lt;p&gt;The secret is generated once at the start of the game:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;secret_number &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt; random&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;.&lt;/span&gt;randint(&lt;span style=&#34;color:#a5d6ff&#34;&gt;1&lt;/span&gt;, &lt;span style=&#34;color:#a5d6ff&#34;&gt;100&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;A &lt;code&gt;while True&lt;/code&gt; loop keeps the game running. Each guess is checked for the special &lt;code&gt;q&lt;/code&gt; command, converted to an integer inside a &lt;code&gt;try&lt;/code&gt; block, and compared with the secret number. The program tells the player whether the guess is too low or too high.&lt;/p&gt;</description>
			</item>
			<item>
				<title>100 Days of Python: Day 004 Password Generator</title>
				<link>http://localhost:1313/posts/100-days-of-python-day004-password-generator/</link>
				<pubDate>Wed, 04 Mar 2026 09:00:00 -0700</pubDate>
				<guid>http://localhost:1313/posts/100-days-of-python-day004-password-generator/</guid>
				<description>&lt;p&gt;Day 004 of the &lt;a href=&#34;https://github.com/victorhugo81/100daysofpython&#34;&gt;100 Days of Python challenge&lt;/a&gt; creates passwords from user-selected quantities of letters, symbols, and numbers.&lt;/p&gt;&#xA;&lt;h2 id=&#34;project-overview&#34;&gt;Project Overview&lt;/h2&gt;&#xA;&lt;p&gt;The program keeps three character lists: upper- and lowercase letters, symbols, and digits. It asks how many characters of each type the user wants, then builds a list of randomly selected characters.&lt;/p&gt;&#xA;&lt;p&gt;The first two groups are placed into their requested positions, numbers are added after them, and &lt;code&gt;random.shuffle()&lt;/code&gt; changes the order before the password is displayed. Shuffling prevents every password from following a predictable letters-then-symbols-then-numbers pattern.&lt;/p&gt;</description>
			</item>
			<item>
				<title>100 Days of Python: Day 003 Rock Paper Scissors</title>
				<link>http://localhost:1313/posts/100-days-of-python-day003-rock-paper-scissors/</link>
				<pubDate>Tue, 03 Mar 2026 09:00:00 -0700</pubDate>
				<guid>http://localhost:1313/posts/100-days-of-python-day003-rock-paper-scissors/</guid>
				<description>&lt;p&gt;Day 003 of the &lt;a href=&#34;https://github.com/victorhugo81/100daysofpython&#34;&gt;100 Days of Python challenge&lt;/a&gt; is a command-line Rock Paper Scissors game. The player selects rock, paper, or scissors, and Python randomly chooses an opponent move.&lt;/p&gt;&#xA;&lt;h2 id=&#34;project-overview&#34;&gt;Project Overview&lt;/h2&gt;&#xA;&lt;p&gt;The game maps the three choices to numbers:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;0&lt;/code&gt; for rock&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;1&lt;/code&gt; for paper&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;2&lt;/code&gt; for scissors&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;A list stores the ASCII illustrations for those choices. After converting valid input to an integer, the program displays both selections and compares them.&lt;/p&gt;</description>
			</item>
			<item>
				<title>100 Days of Python: Day 002 Pyramid Escape Room</title>
				<link>http://localhost:1313/posts/100-days-of-python-day002-pyramid-escape-room/</link>
				<pubDate>Mon, 02 Mar 2026 09:00:00 -0700</pubDate>
				<guid>http://localhost:1313/posts/100-days-of-python-day002-pyramid-escape-room/</guid>
				<description>&lt;p&gt;Day 002 of the &lt;a href=&#34;https://github.com/victorhugo81/100daysofpython&#34;&gt;100 Days of Python challenge&lt;/a&gt; turns Python conditionals into a small text adventure: The Pyramid Escape Room. The player must answer a riddle, choose a path, and select the safe door to find the treasure.&lt;/p&gt;&#xA;&lt;h2 id=&#34;project-overview&#34;&gt;Project Overview&lt;/h2&gt;&#xA;&lt;p&gt;The game begins with a keyboard riddle. A correct answer opens a hidden chamber with two paths. Choosing the left path leads to three doors: red, yellow, and blue. Only the yellow door leads to the treasure; the other choices end the game.&lt;/p&gt;</description>
			</item>
			<item>
				<title>100 Days of Python: Day 001 Tip Calculator</title>
				<link>http://localhost:1313/posts/100-days-of-python-day001-tip-calculator/</link>
				<pubDate>Sun, 01 Mar 2026 09:00:00 -0700</pubDate>
				<guid>http://localhost:1313/posts/100-days-of-python-day001-tip-calculator/</guid>
				<description>&lt;p&gt;Day 001 of the &lt;a href=&#34;https://github.com/victorhugo81/100daysofpython&#34;&gt;100 Days of Python challenge&lt;/a&gt; builds a command-line tip calculator. The program collects a bill total, a tip percentage, and the number of people sharing the bill, then calculates each person&amp;rsquo;s portion.&lt;/p&gt;&#xA;&lt;h2 id=&#34;project-overview&#34;&gt;Project Overview&lt;/h2&gt;&#xA;&lt;p&gt;The program asks for three values:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;The total bill&lt;/li&gt;&#xA;&lt;li&gt;The tip percentage&lt;/li&gt;&#xA;&lt;li&gt;The number of people splitting the bill&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;It converts the bill to a &lt;code&gt;float&lt;/code&gt; and the other values to &lt;code&gt;int&lt;/code&gt; values. The tip is calculated as a percentage of the subtotal, added to the bill, and divided by the number of people.&lt;/p&gt;</description>
			</item>
			<item>
				<title>100 Days of Python: Day000 Band Name Generator</title>
				<link>http://localhost:1313/posts/100-days-of-python-day000-band-name-generator/</link>
				<pubDate>Sat, 28 Feb 2026 09:00:00 -0700</pubDate>
				<guid>http://localhost:1313/posts/100-days-of-python-day000-band-name-generator/</guid>
				<description>&lt;p&gt;Day 000 of the &lt;a href=&#34;https://github.com/victorhugo81/100daysofpython&#34;&gt;100 Days of Python challenge&lt;/a&gt; begins with a small command-line project: a Band Name Generator. The program asks two questions and combines the answers into a possible band name.&lt;/p&gt;&#xA;&lt;p&gt;The project is intentionally simple. It introduces the basic Python ideas needed for interactive programs: variables, user input, strings, functions, and the &lt;code&gt;if __name__ == &amp;quot;__main__&amp;quot;&lt;/code&gt; entry point.&lt;/p&gt;&#xA;&lt;h2 id=&#34;project-overview&#34;&gt;Project Overview&lt;/h2&gt;&#xA;&lt;p&gt;The program asks the user:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Which city did you grow up in?&lt;/li&gt;&#xA;&lt;li&gt;What is the name of a pet?&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;It then joins the two answers with a space and prints the suggested name.&lt;/p&gt;</description>
			</item>
			<item>
				<title>100 Days of Python: Learn, Build, and Improve Your Coding Skills</title>
				<link>http://localhost:1313/posts/100-days-of-python-learn-improve-your-coding-skills/</link>
				<pubDate>Sun, 01 Feb 2026 09:00:00 -0700</pubDate>
				<guid>http://localhost:1313/posts/100-days-of-python-learn-improve-your-coding-skills/</guid>
				<description>&lt;p&gt;The 100 Days of Python challenge is a structured way to practice Python by building one project per day. The &lt;a href=&#34;https://github.com/victorhugo81/100daysofpython&#34;&gt;100daysofpython repository&lt;/a&gt; documents a progression from beginner exercises to larger projects, with each day stored in its own folder.&lt;/p&gt;&#xA;&lt;p&gt;The goal is not only to read Python syntax. It is to apply new concepts, solve small problems, and build a collection of working programs that can be reviewed later.&lt;/p&gt;&#xA;&lt;h2 id=&#34;what-is-the-100-days-of-python-challenge&#34;&gt;What Is the 100 Days of Python Challenge?&lt;/h2&gt;&#xA;&lt;p&gt;The challenge follows a simple idea: spend 100 days building Python projects. The repository describes the work as a way to learn new concepts, create practical applications, and strengthen Python skills.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Python uv: A Faster Way to Manage Projects and Dependencies</title>
				<link>http://localhost:1313/posts/python-uv-modern-package-manager/</link>
				<pubDate>Sat, 24 Jan 2026 09:00:00 -0700</pubDate>
				<guid>http://localhost:1313/posts/python-uv-modern-package-manager/</guid>
				<description>&lt;p&gt;Python projects often begin with a familiar sequence: create a virtual environment, upgrade &lt;code&gt;pip&lt;/code&gt;, install packages, and save dependencies in a &lt;code&gt;requirements.txt&lt;/code&gt; file. That workflow works, but it can involve several separate tools and commands.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://docs.astral.sh/uv/&#34;&gt;&lt;code&gt;uv&lt;/code&gt;&lt;/a&gt; is a fast Python package and project manager created by Astral. It can replace much of the day-to-day workflow around &lt;code&gt;pip&lt;/code&gt;, &lt;code&gt;venv&lt;/code&gt;, and tools such as &lt;code&gt;pipx&lt;/code&gt;, while also generating a lockfile that records the exact dependency versions selected for a project.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Mastering Git: Basic Commands for Version Control</title>
				<link>http://localhost:1313/posts/mastering-git-basic-commands-for-version-control/</link>
				<pubDate>Wed, 21 May 2025 09:00:00 -0800</pubDate>
				<guid>http://localhost:1313/posts/mastering-git-basic-commands-for-version-control/</guid>
				<description>&lt;h2 id=&#34;a-brief-history-of-git&#34;&gt;A Brief History of Git&lt;/h2&gt;&#xA;&lt;p&gt;Git was developed in 2005 by Linus Torvalds, the creator of Linux. The tool emerged from frustration with existing version control systems&amp;rsquo; limitations and was designed to meet the complex needs of the Linux kernel&amp;rsquo;s development. It evolved into an industry-standard distributed system.&lt;/p&gt;&#xA;&lt;h2 id=&#34;introduction-to-git&#34;&gt;Introduction to Git&lt;/h2&gt;&#xA;&lt;p&gt;Git is a distributed version control system. This architecture allows developers to maintain complete project histories locally, enabling offline work and resilient workflows.&lt;/p&gt;</description>
			</item>
			<item>
				<title>The Importance of the .env File in Python Projects</title>
				<link>http://localhost:1313/posts/the-importance-of-the-env-file-in-python-projects/</link>
				<pubDate>Tue, 20 May 2025 09:00:00 -0800</pubDate>
				<guid>http://localhost:1313/posts/the-importance-of-the-env-file-in-python-projects/</guid>
				<description>&lt;h2 id=&#34;what-is-a-env-file&#34;&gt;What Is a &lt;code&gt;.env&lt;/code&gt; File?&lt;/h2&gt;&#xA;&lt;p&gt;A &lt;code&gt;.env&lt;/code&gt; file (environment file) stores key-value pairs that configure application behavior externally from source code. These variables can include API keys, database credentials, secret tokens, debug modes, and email settings.&lt;/p&gt;&#xA;&lt;p&gt;This approach separates configuration from code and can reduce accidental exposure when the file is excluded from version control. A &lt;code&gt;.env&lt;/code&gt; file is not a security boundary, so protect its permissions and use a dedicated secrets manager for production systems when appropriate.&lt;/p&gt;</description>
			</item>
			<item>
				<title>The Role of Databases in E-business</title>
				<link>http://localhost:1313/posts/the-role-of-databases-in-e-business/</link>
				<pubDate>Mon, 09 Nov 2020 09:00:00 -0800</pubDate>
				<guid>http://localhost:1313/posts/the-role-of-databases-in-e-business/</guid>
				<description>&lt;p&gt;&lt;img src=&#34;http://localhost:1313/images/posts/content/the-roles-of-database-in-ebusiness-1024x683.jpg&#34; alt=&#34;The Roles of Databases In eBusiness&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;In today&amp;rsquo;s business world, databases are a core part of almost every information system. Cheaper storage and better tooling have made it easier than ever for organizations of any size to collect and manage their data.&lt;/p&gt;&#xA;&lt;p&gt;That infrastructure scales to handle large data volumes and responds quickly to real-time requests. On the web, a database like MySQL typically works alongside a server-side language like PHP to store and retrieve data dynamically, with HTML rendering the results for the customer.&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
