this post was submitted on 26 Oct 2026
24 points (81.6% liked)

Programming

28967 readers
254 users here now

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you're posting long videos try to add in some form of tldr for those who don't want to watch videos

Wormhole

Follow the wormhole through a path of communities !webdev@programming.dev



founded 3 years ago
MODERATORS
 

AI used, but this post is not AI.

As previously mentioned, I have some photos I want to name. They come in like 20261019_12345678.jpg, which is a date and then a timestamp. The problem in this use case comes when I am reviewing photos taken within seconds of each other. Reviewing them later, is the best photo 20261019_12345678 or 20261019_12345987?

I'm aware that I can use a Digital Asset Manager (DAM) for this task. These are what semi-pro photographers use, for example digiKam or DarkTable. I think my approach can integrate with other tools nicely. This is about making filenames more useful and less ugly. The files can still be sorted after that point. That approach cannot be automated, and this is about minimal intervention. I intend to use a DAM to sort these photos further.

So the task becomes adding English words to filenames. The only hard part is getting a suitable list of English words. After searching and asking here, I didn't find any that were tightly dedicated to being non offensive and extremely boring. My list is also focused on computing and filename related uses, so ambiguous words of that nature ("program") are also excluded.

This wordlist could be nice in any situation where a raw timestamp, hash, or set of words ("Charming Ferret") is used. It's meant for humans. Machines don't need to read English and they don't get offended. I will use this for photos and voice memos to start.

Starting wordlist:

  • I combined SLIP 39 and BIP 39 for about 1500 words. The final wordlists were 278 and 156 words long (156 has fewer filename collisions, explained below).
  • I added 5 words to cover X and Z - xeno zeal zest zeta zinc

I used Sonnet 5.5 to create an app that allowed me to hand-label the 1500 words as "boring" (good) or "not boring" (bad). I labeled A-D myself and then sent my labeled data and the categories to Claude and had it spit out the rest. Overzealously removing "good" words is not a big problem because I ended up with 278 viable words anyway. Claude's list of "good" words contained over 80% good words. I don't think I removed more than 50 words from its list.

I also tried to give this job to Jev, but it didn't seem to understand the problem. It may be too subjective or esoteric (does a model that small understand "wave" can be colloquially a file type?).

Good properties:

  • high edit-distance between words in a short number of characters. (BIP 0039 does this in 4 characters)
  • non offensive
  • non exciting (see my last post)
  • all 26 english letters covered
  • not too many words with the same first 3 or 4 characters (repeat, replace)

Frowned upon word types:

  • filename collisions: using my computer as a testbed (5 million files and folders), I used Everything to exclude the most prolific words and first-4-char substrings. "Program" had 840k results. "ease" had 386k results, many from "release". "starting" is the most prolific in beige-156, with 30k results. In the larger beige-278 list, results range from 840k for program, to 50k for install, to 40k for axis.
  • anything exciting. Colors, good/bad opinions ("exciting", "impressive"), animals, etc. were frowned upon. I wanted to avoid implying anything about the contents of a file from the filename.

The wordlists are in the comments.

top 5 comments
sorted by: hot top controversial new old
[–] littletranspunk@lemmus.org 1 points 2 hours ago

Make it extra beige with

Eighgzekyoote Docyument Chelle script Reut folder Phaiel manager Ehrawr code

[–] aev_software@programming.dev 5 points 4 hours ago* (last edited 4 hours ago)

I'll have missed whether you intended to add these words to the date and time stamps in the file names, or whether you intended to replace them. The former drastically increases permutations and thus lowers the risk at generating collisions, especially at subsecond intervals.

Recently I implemented an idea for this I first saw with Keybase: to generate a security key based on 9 or 10 dreary dull words. Each subsequent word increases the permutation power exponentially, meaning the initial list doesn't even have to be all that long.

How fast do camera shutters shut? How many subzero pictures do they take? Does it differ from one model to the next? And: is your storage system capable of keeping up when you have it rename every photo it receive?

[–] howdy@lemmy.ml 3 points 4 hours ago

I love posts like this. Congratulations on doing a thing. respect

[–] BigHeadMode@lemmy.frozeninferno.xyz 5 points 6 hours ago (1 children)

Here are the two wordlists, sorted by filename prevalence.

beige-wordlist-156

starting
decorate
treat
merit
multiple
mandate
imply
expect
explain
quarter
ruler
prepare
category
exceed
describe
primary
finding
agency
forecast
admit
hanger
hearing
permit
dictate
equip
careful
recall
educate
identify
calcium
ordinary
evaluate
length
quantity
execute
likely
herald
reaction
enforce
closet
ancient
industry
gesture
often
champion
ambition
ranked
decision
grant
organize
duration
dominant
relate
meaning
maximum
together
blanket
fused
improve
flexible
fancy
aspect
grasp
repeat
gravity
losing
engage
depart
exclude
declare
costume
observe
frequent
increase
modify
apart
making
crunch
cubic
lift
fraction
submit
deal
fragment
leader
bolt
alto
belong
amount
bracelet
hesitate
capacity
cause
funding
trend
carbon
floral
exact
amuse
omit
mixture
beam
inherit
stay
genre
herd
involve
junior
emphasis
briefing
adorn
cowboy
purchase
dough
diminish
brave
bulb
devote
being
agree
envelope
budget
coal
fiscal
much
civil
payment
unfold
cradle
zeta
zeal
glance
obtain
carve
genuine
xeno
aluminum
chew
faint
says
midst
ceramic
buyer
usual
phrase
yield
ajar
paid
enlarge
mild
humidity
furl
zinc
depict
judicial
zest

beige-wordlist-278

program
package
profile
source
extra
include
plot
move
heat
type
install
valid
intend
cover
index
huge
main
manual
zone
language
level
object
class
network
item
group
kind
manager
hand
various
bundle
quick
plan
advance
lend
round
provide
order
axis
very
deploy
random
replace
step
volume
simple
large
kernel
review
method
expand
material
machine
fact
metric
force
element
counter
cards
render
inform
crystal
single
should
require
regular
guard
carpet
general
detect
listen
result
gather
aide
inside
depend
width
domain
extend
true
dynamic
have
flip
mixed
course
living
join
capture
ending
away
hybrid
march
firm
echo
moment
exchange
forward
perfect
piece
clock
greatest
idea
beyond
total
response
percent
credit
bucket
clay
lift
deal
together
repeat
length
cubic
bolt
alto
champion
fused
apart
observe
ancient
multiple
discuss
exact
treat
omit
beam
making
stay
fancy
herd
primary
engage
herald
category
fragment
grant
bulb
cowboy
expect
being
coal
execute
fraction
much
carbon
prepare
finding
gravity
organize
trend
inherit
genre
junior
cause
maximum
depart
duration
civil
leader
crunch
purchase
payment
quarter
mixture
submit
zeta
losing
explain
budget
exclude
zeal
aspect
flexible
obtain
brave
hanger
practice
amount
xeno
estimate
agree
equip
relate
chew
reaction
says
carve
remind
identify
ruler
evaluate
modify
funding
floral
dough
starting
describe
unfold
costume
imply
briefing
gesture
closet
ancestor
recall
decision
usual
capacity
ordinary
improve
agency
yield
phrase
amuse
belong
envelope
ajar
cradle
enforce
hearing
faint
easel
increase
paid
declare
likely
meaning
decorate
ambition
blanket
formal
steady
mild
industry
merit
emphasis
fiscal
glance
forecast
careful
often
genuine
furl
quantity
ceramic
overall
involve
permit
exceed
ranked
bracelet
zinc
endorse
enlarge
helpful
realize
buyer
zest
admit
aluminum
devote
midst
depict
indicate
dictate
frequent
mandate
grasp
dominant
calcium
diminish
educate
humidity
hesitate
adorn
judicial

You can alphabetize them at any number of sites such as https://wordcounter.net/alphabetize

Who are you callin' fancy, cowboy?!

I'm offended!

:P