Joshua Parsons Don't Watch, Listen

Don't Watch, Listen is a bold, unscripted media and politics platform dissecting censorship, surveillance, data breaches, and societal decline—one story at a time.

Setting Up the Yahoo Finance API

Setting Up the Yahoo Finance API

Mar 15, 2025 • 15 min read Programming

The Yahoo Finance API, accessed through the yfinance Python library, will serve as the primary market data provider. It provides historical and near-real-time OHLCV data (open, high, low, close, volume) for stocks, ETFs, and cryptocurrencies. While this API is publicly available, it does not have official documentation on rate limits, requiring optimization strategies such as caching, automated retries, and alternative storage solutions to ensure reliable data retrieval.

A key challenge is long-term data storage. Since we will collect and store vast amounts of data over time, this section introduces alternative storage options that are scalable, free, and fast while ensuring seamless integration with GitHub Actions for automated updates.

Godot 4.3 Using ColorRect for Simple 2D Backgrounds

Godot 4.3 Using ColorRect for Simple 2D Backgrounds

Feb 19, 2025 • 4 min read Programming

This paper presents an efficient method for procedurally generating and interpolating a 2D background color in Godot 4.3 using GDScript. The implementation relies entirely on scripting, eliminating the need for manual adjustments in the Godot editor. By leveraging linear interpolation (LERP), the system smoothly transitions between predefined color values over a fixed duration, ensuring a seamless visual experience. This approach is particularly beneficial for procedurally generated environments, menu screens, and dynamic aesthetic modifications in 2D games.

Breaking Down Interpolation (Lerp)

Breaking Down Interpolation (Lerp)

Feb 19, 2025 • 6 min read Programming

What is Interpolation (Lerp(A,B,t))?

Interpolation is a way to estimate values between two known points. Think of it like filling in the gaps between two numbers, positions, or colors smoothly instead of jumping straight from one to the other.

Another way of interpreting interpolation is to try, “guessing the values in between two known points.” If you have two points on a graph, interpolation helps you estimate what lies between them based on patterns.

Godot 43 Creating UI Elements

Godot 43 Creating UI Elements

Feb 16, 2025 • 3 min read Programming

If you’re coding exclusively in Visual Studio Code (VSC) and developing a game in Godot, you’ll need to create and manage UI elements like Labels, Buttons, Health Bars, and Score Counters entirely through GDScript. This guide will walk you through setting up a fully script-driven UI system, ensuring it scales properly and remains organized.

1. Setting Up UI Elements with Code

Since we’re not using the scene editor, we must instantiate UI elements programmatically. UI nodes in Godot fall under the Control class and include elements like:

Godot 4.3 Adding Basic Keyboard Input

Godot 4.3 Adding Basic Keyboard Input

Feb 16, 2025 • 7 min read Programming

Now that we’ve successfully set up a 3D scene, imported a custom 3D model, and made it rotate, it’s time to add user input. In this guide, we’ll modify our script so that pressing the spacebar makes the model jump.


Final Code Structure

Project/
├── Models/
│   └── 000_Snowpuff.glb   # Custom 3D Model
├── Scripts/
│   ├── main.gd       # Root scene script
│   └── skybox.gd     # Skybox configuration
├── Textures/
│   └── default_sky.hdr  # HDRI skybox texture
└── project.godot

1. Understanding Input in Godot 4.3

Before writing code, let’s discuss how Godot handles input.

Godot 4.3 Set Up a 3D Project, Skybox & Import Your Custom 3d Model from VSC

Godot 4.3 Set Up a 3D Project, Skybox & Import Your Custom 3d Model from VSC

Feb 15, 2025 • 11 min read Programming

This guide teaches you how to create a 3D scene programmatically in Godot 4.3, complete with a custom skybox, using only code (no editor setup). We’ll explain core concepts like WorldEnvironment, Camera3D, and SkyMaterial.

Final Code Structure

Project/
├── scripts/
│   ├── main.gd       # Root scene script
│   └── skybox.gd     # Skybox configuration
└── textures/
    └── default_sky.hdr  # HDRI skybox texture

1. Setting Up the Main Scene (main.gd)

🔹 Code

extends Node3D

func _ready():
    # 1. Configure camera
    var camera = Camera3D.new()
    camera.position = Vector3(0, 1, 3)  # Position (X, Y, Z)
    camera.look_at(Vector3.ZERO)        # Look at world origin
    add_child(camera)
    camera.make_current()  # Activate this camera

    # 2. Add skybox
    var skybox = load("res://Scripts/skybox.gd").new()
    add_child(skybox)

🔹 Explanation

  1. Why We Need a Camera:

How to Convert WEBP Files to PNG Using VS Code in Python

How to Convert WEBP Files to PNG Using VS Code in Python

Feb 15, 2025 • 3 min read Programming

If you have a set of .webp images that need to be converted to .png, Python makes the process simple and efficient. In this guide, I’ll walk you through how to convert WebP files to PNG using Visual Studio Code (VS Code) and Python.

Prerequisites

Before we begin, ensure you have the following:

  1. Python Installed
    If you don’t have Python installed, download it from python.org and install it.

  2. VS Code Installed
    Download and install Visual Studio Code from code.visualstudio.com.

Godot 4.3 Understanding Parent and Child Relationships Through an Entity System

Godot 4.3 Understanding Parent and Child Relationships Through an Entity System

Feb 15, 2025 • 7 min read Programming

In our previous section, we introduced custom classes in Godot by moving the get_properties() function into its own dedicated class, ObjectAnalyzer. This helped us keep main.gd clean while improving code organization.

Now, we’re ready to take a big step forward: understanding parent and child relationships in Godot. This will serve as the foundation for inheritance — a key concept in game development that allows us to structure our projects efficiently.

Godot 4.3 Moving Get_properties to a Separate Class

Godot 4.3 Moving Get_properties to a Separate Class

Feb 15, 2025 • 4 min read Programming

So far, we’ve implemented a powerful object analysis system that can dynamically inspect and categorize both node-based and non-node objects in Godot. However, keeping all this logic inside main.gd can clutter the script, making it harder to maintain and expand.

To improve code organization, we’ll move the get_properties() function into its own dedicated class. This will:

  • Keep main.gd clean and focused on high-level game logic.
  • Make get_properties() reusable across different parts of the project.
  • Encourage modular programming , making it easier to expand in the future.

Step 1: Creating a New Script for Object Analysis

In Visual Studio Code, we will create a new script to handle object analysis separately.

Godot 4.3 Expanding Object Compatibility Beyond Nodes

Godot 4.3 Expanding Object Compatibility Beyond Nodes

Feb 15, 2025 • 6 min read Programming

In the previous section, we explored analyzing nodes in Godot using get_property_list(). This gave us the ability to inspect a node’s properties and their respective types. However, in Godot, not all objects are nodes. Many essential data types—such as Vector2, Color, Dictionary, and Array—do not have get_property_list(), which means treating them the same way as nodes would lead to errors.

This section builds upon our previous approach by expanding compatibility to all Godot objects. We aim to ensure that both node-based and non-node objects can be inspected, categorized, and returned in a structured format for further use.

Godot 4.3 Basics

Godot 4.3 Basics

Feb 9, 2025 • 21 min read Programming

In VSC let’s make a new folder in our root directory called Scripts, and then make a new file inside the Sripts folder called main.gd. Once this is made we will go into the Godot Engine and drag and drop the newly made file into the main scenes script found on the right side

Godot Main Scene Inspector

Extends keyword

To know what to extend, match your script to the type of node it’s attached to or the functionality you need. In the case of the main.tscn because we made a Node2D to start, we will extend Node2D.

Setting up Godot 4.3 for Visual Studio Code

Setting up Godot 4.3 for Visual Studio Code

Feb 9, 2025 • 4 min read Programming

NOTE: These articles are written using Windows

Requirements:

Suggested Requirments:

  • VSC Extension C/C++
    • In VSC go to Extensions (ctrl+shift+x), and search and install C/C++

Make your project:

Launch the Godot_v4.3-stable_win64.exe and this will bring up the below window. If this is your first time launching the Godot Engine - Project Manager, your project list will likely be empty.