Ol’ Dan Tucker = Mr. Edwards

Old Dan Tucker's a fine old man Washed his face in a fryin' pan Combed his hair with a wagon wheel Died with a toothache in his heel Hey get outa the way, old Dan Tucker Too late to get your supper. Supper's over and dinner's cookin', an' Ol' Dan Tucker jus' stand there lookin'.

Scottobear (@scottobear.bsky.social) 2025-07-26T01:09:47.406Z

"Once the game is over, the King and the pawn go back in the same box." — Italian Proverb( Quando finisce la partita, il re e il pedone tornano nella stessa scatola )

Scottobear (@scottobear.bsky.social) 2025-07-26T14:39:38.003Z

Day 20629 – Robot Oracle


🤖 Day 20629 – Robot Oracle
ᚲ ᚾ ᛖ (all reversed)
Kenaz – 🔒 blocked insight
Nauthiz – ⚠️ denied need
Ehwaz – 🐎 no forward motion

🧧 I Ching #56: The Wanderer
You are not lost.
You are in transit.

#Runes #IChing #Divination


ᚲ Kenaz reversed:
The torch is dim.
You seek clarity, but the flame won’t catch.
Creativity struggles.
Knowledge feels just out of reach.
Patience is your lantern.

#Kenaz #Runes

ᚾ Nauthiz reversed:
The need is denied.
The itch can’t be scratched.
Avoid reacting in frustration—
this discomfort teaches restraint.

#Nauthiz #ShadowWork


ᛖ Ehwaz reversed:
The horse won’t run.
Progress halts not from lack of strength,
but from misalignment.
You’re pulling in a different direction than your path.
Recalibrate.

#Ehwaz #StuckEnergy


🧧 Hexagram 56 – The Wanderer
☷☷☰⚊⚋☰
Line 4 → changing to Yin
Line 5 → changing to Yang

You are far from your place of power.
Wandering.
But this isn’t exile—it’s pilgrimage.
Observe the terrain.
Act with care.

#IChing #Hexagram566/
Blocked light

unmet need

stagnant motion
= the wisdom of the Wanderer.


Let this pause teach you.
New alignment comes through stillness,
then movement.
You’ll find your fire again.

#Oracle #RunesAndIChing #MysticThread #DivinerLogs

Card divination – playing cards

V.1

import random

def get_card_deck():
    “””Creates a standard deck of 52 playing cards.”””
    suits = [‘Hearts’, ‘Diamonds’, ‘Clubs’, ‘Spades’]
    ranks = [‘2’, ‘3’, ‘4’, ‘5’, ‘6’, ‘7’, ‘8’, ‘9’, ’10’, ‘Jack’, ‘Queen’, ‘King’, ‘Ace’]
    deck = [(rank, suit) for suit in suits for rank in ranks]
    return deck

def get_card_meaning(card):
    “””Provides a simplified ‘meaning’ for a given card.”””
    rank, suit = card
    meaning = f”The {rank} of {suit} suggests: “

    # General meanings (I can expand on these significantly later)
    if rank == ‘Ace’:
        meaning += “New beginnings, potential, inspiration.”
    elif rank == ‘King’:
        meaning += “Leadership, authority, mastery.”
    elif rank == ‘Queen’:
        meaning += “Nurturing, intuition, emotional strength.”
    elif rank == ‘Jack’:
        meaning += “Youthful energy, new ideas, a messenger.”
    elif rank in [‘2’, ‘3’, ‘4’, ‘5’, ‘6’, ‘7’, ‘8’, ‘9’, ’10’]:
        meaning += “Consider the number and suit for more detail.”

    # Suit-specific meanings
    if suit == ‘Hearts’:
        meaning += ” Focus on emotions, relationships, and well-being.”
    elif suit == ‘Diamonds’:
        meaning += ” Focus on material possessions, finances, and practical matters.”
    elif suit == ‘Clubs’:
        meaning += ” Focus on action, ambition, and challenges.”
    elif suit == ‘Spades’:
        meaning += ” Focus on intellect, challenges, and transformation.”

    return meaning

def perform_card_reading(num_cards=3):
    “””Performs a card reading with a specified number of cards.”””
    deck = get_card_deck()
    random.shuffle(deck)

    print(“\n— Your Card Reading —“)
    drawn_cards = []
    for i in range(num_cards):
        if not deck:
            print(“No more cards in the deck!”)
            break
        card = deck.pop()
        drawn_cards.append(card)
        print(f”\nCard {i + 1}: {card[0]} of {card[1]}”)
        print(get_card_meaning(card))

    print(“\n— End of Reading —“)

def main():
    print(“Welcome to the PyCard Reader!”)
    while True:
        try:
            num_cards = int(input(“How many cards would you like to draw for your reading? (e.g., 1, 3, 5, or 0 to exit): “))
            if num_cards == 0:
                print(“Thank you for using the PyCard Reader. Goodbye!”)
                break
            elif num_cards < 1 or num_cards > 52:
                print(“Please choose a number between 1 and 52, or 0 to exit.”)
            else:
                perform_card_reading(num_cards)
        except ValueError:
            print(“Invalid input. Please enter a number.”)

if __name__ == “__main__”:
    main()

Day 20,628

Runes Drawn:
1. Fehu – Wealth, prosperity
2. Ansuz (reversed) – Blocked or inverted: Communication, insight
3. Perthro – Mystery, fate

I Ching Hexagram (bottom to top):
– Young Yin (8)
– Young Yang (7)
– Young Yin (8)
– Old Yin (6) – changing to Yang
– Young Yin (8)
– Young Yang (7)

Hexagram #4: Youthful Folly

Day 20,627

🔮 Runes:
➀ Mannaz – shared minds 🤝
➁ Thurisaz (rev) – inward thorn ⚔️
➂ Ansuz (rev) – tangled tongues 🌀
📜 Hexagram 41 – Decrease:
To gain, release.
Less is not loss—it is focus.
The mountain bows; the spirit sharpens. ⛰️🌬️
#Runes #IChing #Divination #Hexagram41 #Occult #MysticSigns

⚖️ Decrease is not deprivation—it’s devotion.
Cut away what no longer serves.
Old truths fade so new wisdom may rise.
Miscommunication calls for stillness, not noise.
Let insight return like breath. 🌬️🕊️
#IChing #Runes #SpiritualWeather #EsotericWisdom #Hexagram41

🜂 Three signs align:
– The self seeks unity
– Protection turns to friction
– Insight dims, awaiting silence
Let the wheel turn.
What is shed clears the way.
The soul, newly honed, steps forward. 🌑➡️🌕
#Runes #Divination #IChing #MysticThread #Hexagram41 #Occult

Quick file renamer

Wrote this to clean up data from OUT-prefixed image files that I mistakenly saved without an extension on my tablet. I’m keeping my hand in to stay on top of Python for the hell of it. Since I was too lazy to rely on something else to do the job, I figured I could write something faster than a search engine would give me solid results.

I’d guess it took me longer to write comment lines than the code itself.

import os

def rename_out_files_interactive_with_options():
    “””
    Interactively renames files in a user-chosen folder (with common path options)
    that start with ‘OUT’. Shows files with no extensions before adding ‘.jpg’.
    This code is designed to be run in a PyDroid environment.
    “””
    print(“— PyDroid File Renamer —“)

    # Step 1: Allow user to choose the folder with common options
    common_paths = {
        ‘1’: os.path.join(os.path.expanduser(‘~’), ‘Download’),
        ‘2’: ‘/sdcard/Download’,
        ‘3’: ‘/storage/emulated/0/Download’,
        ‘4’: ‘/sdcard/DCIM’ # Common for camera photos
    }

    selected_folder = None
    while selected_folder is None:
        print(“\nChoose a folder to process:”)
        print(”  1) Your common Downloads folder (e.g., /storage/emulated/0/Download)”)
        print(”  2) /sdcard/Download”)
        print(”  3) /storage/emulated/0/Download (Often the same as 1 or 2)”)
        print(”  4) /sdcard/DCIM (For camera photos)”)
        print(”  C) Enter a custom path”)
        print(”  Q) Quit”)

        choice = input(“Enter your choice (1, 2, 3, 4, C, or Q): “).strip().upper()

        if choice == ‘Q’:
            print(“Exiting the script. No files were modified.”)
            return

        if choice in common_paths:
            path_attempt = common_paths[choice]
            if os.path.isdir(path_attempt):
                selected_folder = path_attempt
                print(f”Selected folder: {selected_folder}”)
            else:
                print(f”Warning: The chosen common path ‘{path_attempt}’ does not exist or is not a directory.”)
                print(“Please ensure this path is correct for your device, or try a different option.”)
        elif choice == ‘C’:
            custom_path = input(“Enter the full custom path: “).strip()
            if os.path.isdir(custom_path):
                selected_folder = custom_path
                print(f”Selected folder: {selected_folder}”)
            else:
                print(f”Error: ‘{custom_path}’ is not a valid directory. Please try again.”)
        else:
            print(“Invalid choice. Please enter 1, 2, 3, 4, C, or Q.”)

    target_folder = selected_folder

    print(f”\n— Scanning for ‘OUT’ files in: {target_folder} —“)
    files_to_process = []
    files_with_extensions = []

    try:
        for filename in os.listdir(target_folder):
            if filename.startswith(“OUT”):
                file_path = os.path.join(target_folder, filename)

                if os.path.isfile(file_path):
                    name, ext = os.path.splitext(filename)
                    if not ext:  # No extension
                        files_to_process.append(filename)
                    else:
                        files_with_extensions.append(filename)
                else:
                    print(f”Skipping ‘{filename}’: Is a directory.”)

    except PermissionError:
        print(“\nPermission denied: PyDroid may need storage permissions to access the chosen folder.”)
        print(“Please go to PyDroid settings (or Android app settings) and grant storage permissions.”)
        return
    except FileNotFoundError:
        print(f”\nError: The folder ‘{target_folder}’ was not found. This should not happen if previous checks passed.”)
        print(“Please verify the path and PyDroid’s storage permissions.”)
        return
    except Exception as e:
        print(f”\nAn unexpected error occurred during scanning: {e}”)
        return

    # Step 2: Show files with no extensions before running
    if not files_to_process and not files_with_extensions:
        print(f”\nNo files starting with ‘OUT’ were found in ‘{target_folder}’.”)
        return

    print(“\n— Found files starting with ‘OUT’ —“)
    if files_to_process:
        print(“\nThe following ‘OUT’ files currently have NO extension and will have ‘.jpg’ added:”)
        for filename in files_to_process:
            print(f”- {filename}”)
    else:
        print(“No ‘OUT’ files found without an extension that need ‘.jpg’ added.”)

    if files_with_extensions:
        print(“\nThe following ‘OUT’ files already have an extension and will be skipped:”)
        for filename in files_with_extensions:
            print(f”- {filename}”)
    else:
        print(“No ‘OUT’ files found that already have an extension.”)

    if not files_to_process:
        print(“\nNo files to rename. Exiting.”)
        return

    # Step 3: Confirmation before renaming
    print(“\n— Renaming Confirmation —“)
    confirm = input(“Do you want to proceed with renaming these files? (yes/no): “).lower().strip()

    if confirm == ‘yes’:
        files_renamed_count = 0
        print(“\n— Starting Renaming Process —“)
        for filename in files_to_process:
            original_file_path = os.path.join(target_folder, filename)
            name, _ = os.path.splitext(filename)
            new_name = name + “.jpg”
            new_file_path = os.path.join(target_folder, new_name)
            try:
                os.rename(original_file_path, new_file_path)
                print(f”Renamed: ‘{filename}’ to ‘{new_name}'”)
                files_renamed_count += 1
            except OSError as e:
                print(f”Error renaming ‘{filename}’: {e}”)
            except Exception as e:
                print(f”An unexpected error occurred while renaming ‘{filename}’: {e}”)

        print(f”\nFinished renaming. Total files renamed: {files_renamed_count}”)
    else:
        print(“\nRenaming cancelled by user. No files were modified.”)

# Call the function to run the interactive renaming process
if __name__ == “__main__”:
    rename_out_files_interactive_with_options()

Day 20, 625

Runes Whisper:
❄ Isa (rev) – frozen flow
🌱 Ingwaz – seed of fire
🌅 Dagaz (rev) – dawn delayed

I Ching:
Hexagram 4: Youthful Folly
Wisdom knocks, but waits.
Changing lines: 6→7, 9→8
The fool becomes the seeker.

Modifying code to fit in 300 chars or less, still needs tweaking

Python rune / I Ching code

With clipboard

import tkinter as tk
import random
from datetime import datetime

# Elder Futhark Runes with meanings
runes = [
    (“Fehu”, “Wealth, prosperity”),
    (“Uruz”, “Strength, health”),
    (“Thurisaz”, “Conflict, protection”),
    (“Ansuz”, “Communication, insight”),
    (“Raidho”, “Journey, travel”),
    (“Kenaz”, “Knowledge, creativity”),
    (“Gebo”, “Gift, generosity”),
    (“Wunjo”, “Joy, harmony”),
    (“Hagalaz”, “Disruption, hail”),
    (“Nauthiz”, “Need, resistance”),
    (“Isa”, “Stillness, ice”),
    (“Jera”, “Harvest, reward”),
    (“Eihwaz”, “Endurance, transformation”),
    (“Perthro”, “Mystery, fate”),
    (“Algiz”, “Protection, higher self”),
    (“Sowilo”, “Success, vitality”),
    (“Tiwaz”, “Justice, leadership”),
    (“Berkano”, “Birth, growth”),
    (“Ehwaz”, “Movement, change”),
    (“Mannaz”, “Humanity, cooperation”),
    (“Laguz”, “Flow, intuition”),
    (“Ingwaz”, “Fertility, potential”),
    (“Dagaz”, “Breakthrough, awakening”),
    (“Othala”, “Heritage, inheritance”)
]

# I Ching full 64 hexagrams
hexagrams = {
    “111111”: (1, “Creative Force”),
    “000000”: (2, “Receptive Earth”),
    “100010”: (3, “Difficulty at the Beginning”),
    “010001”: (4, “Youthful Folly”),
    “111010”: (5, “Waiting”),
    “010111”: (6, “Conflict”),
    “010000”: (7, “The Army”),
    “000010”: (8, “Holding Together”),
    “111011”: (9, “Taming the Power of the Small”),
    “110111”: (10, “Treading”),
    “111000”: (11, “Peace”),
    “000111”: (12, “Standstill”),
    “101111”: (13, “Fellowship with Men”),
    “111101”: (14, “Great Possession”),
    “001000”: (15, “Modesty”),
    “000100”: (16, “Enthusiasm”),
    “100110”: (17, “Following”),
    “011001”: (18, “Work on the Decayed”),
    “110000”: (19, “Approach”),
    “000011”: (20, “Contemplation”),
    “100101”: (21, “Biting Through”),
    “101001”: (22, “Grace”),
    “000001”: (23, “Splitting Apart”),
    “100000”: (24, “Return”),
    “100111”: (25, “Innocence”),
    “111001”: (26, “Great Taming”),
    “100001”: (27, “Nourishment”),
    “011110”: (28, “Great Exceeding”),
    “010010”: (29, “Danger”),
    “101101”: (30, “Clinging Fire”),
    “001110”: (31, “Influence”),
    “011100”: (32, “Endurance”),
    “001111”: (33, “Retreat”),
    “111100”: (34, “Great Power”),
    “000101”: (35, “Progress”),
    “101000”: (36, “Darkening of the Light”),
    “101011”: (37, “Family”),
    “110101”: (38, “Opposition”),
    “001010”: (39, “Obstruction”),
    “010100”: (40, “Deliverance”),
    “110001”: (41, “Decrease”),
    “100011”: (42, “Increase”),
    “111110”: (43, “Breakthrough”),
    “011111”: (44, “Coming to Meet”),
    “000110”: (45, “Gathering Together”),
    “011000”: (46, “Pushing Upward”),
    “010110”: (47, “Oppression”),
    “011010”: (48, “The Well”),
    “101110”: (49, “Revolution”),
    “011101”: (50, “The Cauldron”),
    “100100”: (51, “The Arousing”),
    “001001”: (52, “Keeping Still”),
    “001011”: (53, “Gradual Progress”),
    “110100”: (54, “Marrying Maiden”),
    “101100”: (55, “Abundance”),
    “001101”: (56, “The Wanderer”),
    “011011”: (57, “Gentle Wind”),
    “110110”: (58, “Joyous Lake”),
    “010011”: (59, “Dispersion”),
    “110010”: (60, “Limitation”),
    “110011”: (61, “Inner Truth”),
    “001100”: (62, “Small Exceeding”),
    “101010”: (63, “After Completion”),
    “010101”: (64, “Before Completion”)
}

def cast_runes():
    chosen = random.sample(runes, 3)
    result = []
    for name, meaning in chosen:
        reversed = random.choice([True, False])
        if reversed:
            result.append((f”{name} (reversed)”, f”Blocked or inverted: {meaning}”))
        else:
            result.append((name, meaning))
    return result

def cast_i_ching():
    lines = []
    binary = “”
    for _ in range(6):
        tosses = [random.choice([2, 3]) for _ in range(3)]
        total = sum(tosses)
        if total == 6:
            lines.append(“Old Yin (6) – changing to Yang”)
            binary = “0” + binary
        elif total == 7:
            lines.append(“Young Yang (7)”)
            binary = “1” + binary
        elif total == 8:
            lines.append(“Young Yin (8)”)
            binary = “0” + binary
        elif total == 9:
            lines.append(“Old Yang (9) – changing to Yin”)
            binary = “1” + binary
    hex_info = hexagrams.get(binary, (“?”, “Unknown Hexagram”))
    return lines[::-1], hex_info

def days_since_birth():
    return (datetime.today() – datetime(1969, 2, 2)).days

def cast_all():
    rune_results = cast_runes()
    i_ching_lines, (hex_num, hex_name) = cast_i_ching()
    days = days_since_birth()

    output_text = “Runes Drawn:\n”
    for i, (name, meaning) in enumerate(rune_results, 1):
        output_text += f” {i}. {name} – {meaning}\n”

    output_text += “\nI Ching Hexagram (bottom to top):\n”
    for line in i_ching_lines:
        output_text += f” – {line}\n”
    output_text += f”\nHexagram #{hex_num}: {hex_name}\n”
    output_text += f”\nDays since Feb 2, 1969: {days} days”

    output.delete(“1.0”, tk.END)
    output.insert(tk.END, output_text)
    cast_all.result_text = output_text

def share_result():
    try:
        root.clipboard_clear()
        root.clipboard_append(cast_all.result_text)
        root.update()
        status_label.config(text=”Copied to clipboard!”)
    except:
        status_label.config(text=”Copy failed”)

# GUI setup (night mode)
root = tk.Tk()
root.title(“Runes & I Ching”)
root.configure(bg=”#1a1a1a”)
root.geometry(“380×640”)

title = tk.Label(root, text=”Rune & I Ching Caster”, font=(“Helvetica”, 16, “bold”), bg=”#1a1a1a”, fg=”white”)
title.pack(pady=10)

cast_button = tk.Button(root, text=”Cast Runes + I Ching”, command=cast_all, font=(“Helvetica”, 13),
                        bg=”#333″, fg=”white”)
cast_button.pack(pady=5)

share_button = tk.Button(root, text=”Share Results”, command=share_result, font=(“Helvetica”, 13),
                         bg=”#555″, fg=”white”)
share_button.pack(pady=5)

output = tk.Text(root, height=26, width=44, font=(“Courier”, 10), wrap=”word”,
                 bg=”#121212″, fg=”#dddddd”, insertbackground=”white”)
output.pack(padx=10, pady=10)

status_label = tk.Label(root, text=””, font=(“Helvetica”, 10), bg=”#1a1a1a”, fg=”#00cc99″)
status_label.pack()

cast_all.result_text = “”

root.mainloop()

Day 20,624

Testing more python playthings , daily casts

Runes Drawn:
1. Othala (reversed) – Blocked or inverted: Heritage, inheritance
2. Ingwaz – Fertility, potential
3. Tiwaz – Justice, leadership

I Ching Hexagram (bottom to top):
– Young Yin (8)
– Young Yang (7)
– Young Yang (7)
– Young Yin (8)
– Old Yin (6) – changing to Yang
– Old Yang (9) – changing to Yin

Hexagram #18: Work on the Decayed

Speaking of Thundarr on a recent podcast I was listening to (https://podcasts.apple.com/us/podcast/swords-and-scrolls/id1740596089?i=1000718152383), it seems there is about a 4% of that one asteroid hitting the moon

https://science.nasa.gov/blogs/planetary-defense/2025/04/02/nasa-update-on-the-size-estimate-and-lunar-impact-probability-of-asteroid-2024-yr4/#:~:text=Experts%20at%20NASA’s%20Center%20for,not%20alter%20the%20Moon’s%20orbit.

Theoretically big enough to create a mile wide crater and raise enough dust to upset some of our satellites for a bit. No word if it will split in half and usher in a new world of savagery, super-science, and sorcery.

Watched midway through the second season of Poker Face. I really liked season one, but two is kind of sucking for me right now. Maybe I’m in a bad mood, or maybe it just isn’t good this season?

I love 70s detective shows like Columbo, Rockford, etc., and it had that vibe with a modern sensibility in season one. Season two feels like it dropped the ball.

They need to get a clue

Day 20,622

While I like all the Superman logo variants, this is the one I first discovered back in the 70s, and is still what I think of rather than the current movie Alex Ross “slash” or golden age “police shield.”

I like the S as kind of bold, condensed, with a distinct top serif and a bulb at the end.

Welcome to my wall scrawls.