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
Maroonberry
Smoothie time !
Raspberry, blueberry, strawberry, and banana with just a splash of orange, named in honor of our neighbors at Roanoke College
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
Strange little archive
[Verse 1]
Cut-up days in a coffee stain
Tiny notes in the margin rain
One more link in a paper chain
(keep clicking, keep clicking)
Flat cat stares from a JPEG frame
Inside jokes with a hundred names
Pocket worlds in a scrolling lane
(itโs nothing, itโs everything)
[Chorus]
Strange little archive
I lose my life in your sidebar sky
Strange little archive
Brain taking snapshots every time I slide
Strange little archive
Canโt look away from your restless mind
Strange little archive
(strange little, strange little)
[Verse 2]
Postcard dream of a thrift-store god
Mascot mask and a hotel lobby dog
Half-typed thought in a colored fog
(so specific, so terrific)
Old cartoons in a lunchbox glare
Time-stamped ghosts in a folding chair
You were there
I was almost there
(we were never there at all)
[Chorus]
Strange little archive
I lose my life in your sidebar sky
Strange little archive
Brain taking snapshots every time I slide
Strange little archive
Canโt look away from your restless mind
Strange little archive
(strange little, strange little)
[Bridge]
[Spoken
Tight over bass and drums]
One tab open
Two tabs open
Seventeen tabs open
Is this a map
Or just a mood?
Is this a diary
Or a door?
[Chorus]
Strange little archive
I lose my life in your sidebar sky
Strange little archive
Brain taking snapshots every time I slide
Strange little archive
Canโt look away from your restless mind
Strange little archive
(strange little, strange little)
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
Day 20,623 doodle

Watching the Manila and Guatemala episodes of Somebody Feed Phil, scribbling on the tablet.
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
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.

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.


Superman always knew the wealthy
Holler General

๐โ๏ธ โ๏ธ๐
theyโre on a coffee date
๐๐
May I take your order?