Indiana native. Purdue grad. Programmer / Dev Ops in trade. Dog owner. Husband and father. Have questions? Ask!
136 stories
1 follower

What if Europe and North America switched populations?

1 Share
Just how equal in size are the populations of Europe and North America?

Read More
Read the whole story
10 days ago
Central Indiana
Share this story

D&D character names - generated by a neural network

1 Share

There are algorithms called artificial neural networks that can learn to imitate examples of just about anything. They’re used in all sorts of everyday programs, translating languages, identifying photos, colorizing drawings, delivering ads, and tons more. 

It turns out neural networks may also be a dungeon master’s best friend.

I’ve trained neural networks to invent new Dungeons & Dragons spells (part 1, part 2) and also trained them to name new D&D creatures. It worked very well (Shield of Farts, anyone?), thanks to the spellbooks and monster manuals I could use as datasets. But there weren’t any datasets for another big aspect of Dungeons & Dragons: all the characters who populate these worlds. So, over the past few months, readers have been helping me to build a dataset - which has now reached a staggering 20,908 entries.

For each character, people entered a name, a race (human, dwarf, elf, etc), and a class (wizard, rogue, bard, cleric, etc). Some of the races and classes got to be quite inventive - there’s a penguin, a fey corgi, a black pudding, and a sentient bucket. So I gave this huge weird list to a neural network to see how convincing it could sound.

With nearly 21,000 examples, the neural network could indeed sound convincing. Much of the time, the names matched the character type - at least as often as in the original dataset (which had 5 characters named Frank and 12 named Tim). 

Rose - Human Assassin
Dwarg - Half-orc Paladin
Liandra - Elf Wizard
Oron “The Star” Cartere - Dragonborn Sorcerer
Silvar the Blackblade - Half-elf Barbarian
Hank - Half-orc Ranger
Jayne Arryn - Half-elf Wizard
Annata Shortscale - Dragonborn Witch
Fyrry - Half-Elf Ranger
Rinas Mistfern - Human Ranger

Other names made perhaps less sense.

The Cart - Kenku Rogue
Nine Case - Dark Elf Fighter
Rump - Kenku Cleric
Gubble Daggers - Tabaxi Monk
Bog - halfling wizard
Jameless - Dwarf Champion Barbarian
Rune Diggler - Halfling Rogue
Borsh the Bardlock - Human Paladin
Spullbeard - Dwarf Fighter
Tovendirgle - Human Ranger
Pinderhand The Bugs - Gnome Wizard
Rune Wash - Human Wizard
Stumbleduckle - Human Paladin
Dawne Shift the Monkz - Dwarf Barbarian
Magnus Tieforian the magnificent von Cloriam Cyital DuP Ever - Dwarf Barbarian
E Ch BISHL NEBe Garte II Cr D McLGHJ T U E AA t Rat lek TF Horn hand tree Whistle - half-orc barbarian

One thing I like is all the new character races and classes that the neural network discovered. I don’t know what most of them are, but you’ll be the only one in your party.

Kelph - Burryman Ranger
Arczi-Sian - Human Dogminer
Jho the Chrishpup - kuborg fighter
Archein Morgurowood - Human Weaponic Bloodlind
Bubblebottom Donder - Half-faerie Dewlze Cleric
Altis Helder - Mander Human Star-Caver Pottlebard
Bender - half-alf paladin
Devith “Kurgbore” Mustwost - Fetchlen Cleric
Varian Amerth - blackbear Bard
Merellios Rose - Rope Gnome Wizard
Mothrek McKingfoot - halfling inquisitive
The Cowben - Human Opera
Ayrell - Forest gnome Arcane Wood Hunter

One type of name the neural network did very well: silly compound names. This pretty much settles the question of whether a neural network would be totally on board with naming something Boaty McBoatface: it totally would.

Here is what it thinks dwarves should be named.

James Crucklebottom - Dwarf Wizard
Frank Firethorn - Dwarf Wizard
Willian Stonefrown - Dwarf Fighter

Actually, you know what? Pretty much everyone needs a name like this. 

Kavar Blunderwood - Goliath Monk
Hadrie Trumbledutch - Halfling Rogue
Prinkina Timberspull - gnome sorcerer
Arrina Cuprest - Human Sorcerer
Tretcher Twestybeard - Dwarf Witch
Ponny Stonecharles - Human Monk
Ashrata Dangstrider - Ratfolk Rogue
Den Splatterwoof - Halfling Druid
Wolfrit Rockhole - Human Sorcerer
Beddar Jacklebottom - Halfling Cleric
Azrara Stoutfrogg - Half-orc Monk
Lord Filedawn - Halfling Warlock
Gripple Ravenhorn - Human Assassin
Balfeart Wolfspleam - Dwarf Fighter
Eldric the Bizzlebree - Human Warlock
Pig Haystalker - Human Assassin
Ladie Barewalker - Tiefling Warlock
Fay Blutterlocket - Dwarf Paladin
Millian Kricklebottom - Kobold Sorcerer

I’ve posted the entire original dataset here, and you can access a huge export of generated characters there as well. If you want the list plus a few extra that I deemed not quite appropriate for the main blog, enter your email here and I’ll send them to you.

Also! I’m still crowdsourcing a dataset of character bios (I used some of the names for this experiment). If you’d like to help, use this form.

Read the whole story
15 days ago
Central Indiana
Share this story

Ranking Smaller College Towns


I recently revisited Bloomington, Indiana (home of Indiana University, my alma mater) and Charlottesville, VA (home of the University of Virginia). They got me thinking about college towns, so I pulled some data for various of them in this size class.  These are communities roughly in the 125,000-250,000 population range that are home to major flagship (or similar) universities.

I have 11 on my list. For this size class of community, I believe the best unit of analysis is the county. These are metro areas and can have outlying counties. But those counties are typically rural (as opposed to the urbanized suburban counties of major metros). In my view they skew more than illuminate the data. So I use county where feasible. Some data is only available at the metro level. And because Virginia’s cities are all independent cities, I combined Charlottesville with Albemarle County where possible.

With that, let’s dig in.


Here’s a list of my college town counties sorted by population.

Rank College Town County 2017
1 Washington County, AR (Fayetteville – University of Arkansas) 231,996
2 Brazos County, TX (College Station – Texas A&M) 222,830
3 Champaign County, IL (University of Illinois) 209,399
4 Tuscaloosa County, AL (University of Alabama) 207,811
5 Tippecanoe County, IN (West Lafayette – Purdue University) 190,587
6 Boone County, MO (Columbia – University of Missouri) 178,271
7 Centre County, PA (State College – Penn State University) 162,660
8 Charlottesville-Albemarle County, VA (University of Virginia) 155,721
9 Johnson County, IA (Iowa City – University of Iowa) 149,210
10 Monroe County, IN (Bloomington – Indiana University) 146,986
11 Clarke County, GA (Athens – University of Georgia) 127,064

Here’s how those places fared in terms of population growth since 2010.

Rank College Town County 2010 2017 Total Change Pct Change
1 Brazos County, TX 195,662 222,830 27,168 13.89%
2 Washington County, AR 203,970 231,996 28,026 13.74%
3 Johnson County, IA 131,293 149,210 17,917 13.65%
4 Tippecanoe County, IN 173,045 190,587 17,542 10.14%
5 Boone County, MO 163,168 178,271 15,103 9.26%
6 Charlottesville-Albemarle County, VA 142,703 155,721 13,018 9.12%
7 Clarke County, GA 117,481 127,064 9,583 8.16%
8 Tuscaloosa County, AL 194,993 207,811 12,818 6.57%
9 Monroe County, IN 138,511 146,986 8,475 6.12%
10 Centre County, PA 154,280 162,660 8,380 5.43%
11 Champaign County, IL 201,541 209,399 7,858 3.90%

Texas is killing it, of course. Fayetteville I don’t know much about, but it’s close to Bentonville (home of Wal-Mart), so may be drawing off that. Iowa City is growing at a Sunbelt rate, and we’ll see that it looks good on some other stats as well. Illinois is a shrinking state, and even a quality college town like Champaign is growing at a low rate.

Gross Domestic Product

Here are the college town MSAs sorted by real per capita GDP.

Rank College Town Metros 2016
1 Iowa City, IA 51,303
2 State College, PA 49,309
3 Charlottesville, VA 48,418
4 Fayetteville-Springdale-Rogers, AR-MO 45,627
5 Columbia, MO 44,391
6 Champaign-Urbana, IL 44,352
7 Lafayette-West Lafayette, IN 40,276
8 Tuscaloosa, AL 40,046
9 Athens-Clarke County, GA 36,850
10 Bloomington, IN 36,193
11 College Station-Bryan, TX 33,730

Again we see Iowa City doing great. Also State College. Champaign and West Lafayette, despite high quality STEM programs, aren’t especially impressive. Bloomington not looking so good.

Here is how real GDP per capita has changed since 2010.

Rank College Town Metro 2010 2016 Total Change Pct Change
1 State College, PA 42,112 49,309 7,197 17.09%
2 Fayetteville-Springdale-Rogers, AR-MO 39,100 45,627 6,527 16.69%
3 Columbia, MO 41,782 44,391 2,609 6.24%
4 Charlottesville, VA 45,986 48,418 2,432 5.29%
5 Athens-Clarke County, GA 35,027 36,850 1,823 5.20%
6 College Station-Bryan, TX 33,207 33,730 523 1.57%
7 Champaign-Urbana, IL 43,834 44,352 518 1.18%
8 Iowa City, IA 50,745 51,303 558 1.10%
9 Tuscaloosa, AL 40,005 40,046 41 0.10%
10 Lafayette-West Lafayette, IN 40,766 40,276 -490 -1.20%
11 Bloomington, IN 39,335 36,193 -3,142 -7.99%

Yikes. Bloomington, which I take a special interest in since I went to school there, is dropping like a stone. That’s double-plus-ungood. West Lafayette also lost ground economically. This should be deeply concerning inside the Hoosier State.

Iowa City is not so strong here, but is starting off a high base. State College also started on a higher base but is killing it. Fayetteville is also looking good.


My county level jobs data is out of date, so I used the metro series. Here’s the ranking by metro, which no surprise roughly follows population. The values are in thousands of jobs.

Rank College Town Metro 2017
1 Fayetteville-Springdale-Rogers, AR-MO 253.5
2 Charlottesville, VA 117.0
3 College Station-Bryan, TX 116.5
4 Champaign-Urbana, IL 110.2
5 Tuscaloosa, AL 107.6
6 Lafayette-West Lafayette, IN 102.9
7 Iowa City, IA 101.5
8 Columbia, MO 99.4
9 Athens-Clarke County, GA 96.8
10 State College, PA 78.0
11 Bloomington, IN 76.0

And here is growth since 2010.

Rank College Town Metro 2010 2017 Total Change Pct Change
1 Fayetteville-Springdale-Rogers, AR-MO 200.3 253.5 53.2 26.56%
2 College Station-Bryan, TX 101.7 116.5 14.8 14.55%
3 Charlottesville, VA 102.9 117.0 14.1 13.70%
4 Lafayette-West Lafayette, IN 91.2 102.9 11.7 12.83%
5 Athens-Clarke County, GA 85.8 96.8 11.0 12.82%
6 Iowa City, IA 90.2 101.5 11.3 12.53%
7 Tuscaloosa, AL 96.5 107.6 11.1 11.50%
8 Columbia, MO 89.5 99.4 9.9 11.06%
9 State College, PA 74.4 78.0 3.6 4.84%
10 Champaign-Urbana, IL 107.6 110.2 2.6 2.42%
11 Bloomington, IN 74.4 76.0 1.6 2.15%

It’s another poor showing for Bloomington. Champaign is also not looking so hot. Fayetteville is rocking.


Here are the college towns ranked by median household income. I used MSA here to grab Charlottesville.

Rank College Town Metro 2016
1 Charlottesville, VA 62,523
2 State College, PA 60,266
3 Iowa City, IA 57,777
4 Columbia, MO 52,752
5 Fayetteville-Springdale-Rogers, AR-MO 51,848
6 Lafayette-West Lafayette, IN 51,410
7 Champaign-Urbana, IL 50,564
8 Tuscaloosa, AL 46,086
9 Bloomington, IN 43,693
10 Athens-Clarke County, GA 43,165
11 College Station-Bryan, TX 42,233

My observation of Charlottesville was that it was a posh town. I’m not surprised to see it so high on the list. State College and Iowa City again doing well, but Bloomington again doing poorly. Again, the top tech oriented schools in Champaign and West Lafayette aren’t that impressive.

For the change, I’m switching to county and dropping C’ville off the list. (MSA data isn’t available for 2010 because of metro redefinitions. I could use per capita income but my database needs updated for that). Note that unlike GDP per capita, these numbers are not inflation adjusted. The percentage number in brackets is the percent of the US average.

Rank College Town County 2010 2016 Total Change Pct Change
1 Tippecanoe County, IN 37,983 (75.9%) 51,361 (89.1%) 13,378 35.22%
2 Centre County, PA 44,746 (89.4%) 60,266 (104.6%) 15,520 34.68%
3 Boone County, MO 41,006 (81.9%) 52,752 (91.6%) 11,746 28.64%
4 Monroe County, IN 36,392 (72.7%) 43,582 (75.6%) 7,190 19.76%
5 Washington County, AR 38,278 (76.5%) 45,679 (79.3%) 7,401 19.33%
6 Johnson County, IA 49,226 (98.4%) 58,064 (100.8%) 8,838 17.95%
7 Brazos County, TX 35,407 (70.7%) 41,559 (72.1%) 6,152 17.38%
8 Champaign County, IL 45,254 (90.4%) 50,335 (87.4%) 5,081 11.23%
9 Tuscaloosa County, AL 43,450 (86.8%) 47,787 (82.9%) 4,337 9.98%
10 Clarke County, GA 34,230 (68.4%) 34,999 (60.7%) 769 2.25%

Here West Lafayette shines. They had substantial growth and went from 76% to 89% of the US average. Pretty good. State College is again doing well. Athens not so hot.

These are the numbers, with a minimum of analysis. I’m sure that commenters will have much more to say.

Read the whole story
20 days ago
Central Indiana
Share this story

Genealogy of the Saudi royal family

1 Share

[ Note: None of this is a joke, nothing here is intended humorously, and certainly none of it should be taken as mockery or disparagement. The naming conventions of Saudi royalty are not for me to judge or criticize, and if they cause problems for me, the problems are my own. It is, however, a serious lament. ]

The following innocuous claim appears in Wikipedia's article on Abdullah bin Abdul-Rahman:

He was the seventh son of the Emir of the Second Saudi State, Abdul Rahman bin Faisal.

Yesterday I tried to verify this claim and I was not able to do it.

Somewhere there must be a complete and authoritative pedigree of the entire Saudi royal family, but I could not find it online, perhaps because it is very big. There is a Saudi royal family official web site, and when I found that it does have a page about the family tree, I rejoiced, thinking my search was over. But the tree only lists the descendants of King Abdulaziz Ibn Saud, founder of the modern Saudi state. Abdullah was his half-brother and does not appear there.

Well, no problem, just Google the name, right? Ha!

Problem 1: These princes all have at least twenty kids each. No, seriously. The Wikipedia article on Ibn Saud himself lists twenty-one wives and then gives up, ending with an exhausted “Possibly other wives”. There is a separate article on his descendants that lists 72 children of various sexes, and the following section on grandchildren begins:

Due to the Islamic traditions of polygyny and easy divorce (on the male side), King Abdul Aziz [Ibn Saud] has approximately a thousand grandchildren.

Problem 2: They reuse many of the names. Because of course they do; if wife #12 wants to name her first son the same as the sixth son of wife #2, why not? They don't live in the same house. So among the children of Ibn Saud there are two Abdullahs (“servant of God”), two Badrs (“full moon”), two Fahds (“leopard”), two each of Majid (“majestic”), Mishari (I dunno), Talal (dunno), and Turki (“handsome”). There are three sons named Khalid (“eternal”). There is a Sa'ad and a Saad, which I think are the exact same name (“success”) as spelled by two different Wikipedia editors.

And then they reuse the names intergenerationally. Among Ibn Saud's numerous patrilineal grandsons there are at least six more Fahds, the sons respectively of Mohammed, Badr (the second one), Sultan, Turki (also the second one), Muqrin, and Salman. Abdulaziz Ibn Saud has a grandson also named Abdulaziz, whose name is therefore Abdulaziz bin Talal bin Abdulaziz Al Saud. (The “bin” means “son of”; the feminine form is “bint”.) It appears that the House of Saud does not name sons after their fathers, for which I am grateful.

Ibn Saud's father was Abdul Rahman (this is the Abdul Rahman of Abdullah bin Abdul-Rahman, who is the subject of this article. Remember him?) One of Ibn Saud's sons is also Abdul Rahman, I think probably the first one to be born after the death of his grandfather, and at least two of his patrilineal grandsons are also.

Problem 3: Romanization of Arabic names is done very inconsistently. I mentioned “Saad” and “Sa'ad” before. I find the name Abdul Rahman spelled variously “Abdul Rahman”, “Abdulrahman”, “Abdul-Rahman”, and “Abd al-Rahman”. This makes text searches difficult and unreliable. (The name, by the way, means "Servant of the gracious one”, referring to God.)

Problem 4: None of these people has a surname. Instead they are all patronymics. Ibn Saud has six grandsons named Fahd; how do you tell them apart? No problem, their fathers all have different names, so they are Fahd bin Mohammed, Fahd bin Badr, Fahd bin Sultan, Fahd bin Turki, Fahd bin Muqrin, and Fahd bin Salman. But again this confuses text searches terribly.

You can search for “Abdullah bin Abdul-Rahman” but many of the results will be about his descendants Fahd bin Abdullah bin Abdul Rahman, Fahd bin Khalid bin Abdullah bin Abdul Rahman, Fahd bin Muhammad bin Abdullah bin Abdul Rahman, Abdullah bin Bandar bin Abdullah bin Abdul Rahman, Faisal bin Abdullah bin Abdul Rahman, Faisal bin Abdul Rahman bin Abdullah bin Abdul Rahman, etc.

In combination with the reuse of the same few names, the result is even more confusing. There is Bandar bin Khalid, and Khalid bin Bandar; Fahad bin Khalid and Khalid bin Fahd.

There is Mohammed al Saud (Mohammed of (the house of) Saud) and Mohammed bin Saud (Mohammed the son of Saud).

There are grandsons named Saad bin Faisal, Faisal bin Bandar, Bandar bin Sultan, Sultan bin Fahd, Fahd bin Turki, Turki bin Talal, Talal bin Mansour, Mansour bin Mutaib, Mutaib bin Abdullah, and Abdullah bin Saad. I swear I am not making this up.

Perhaps Abdullah was the seventh son of Abdul Rahman.

Perhaps not.

I surrender.

Read the whole story
34 days ago
Central Indiana
Share this story

#1376; In which Much is read

2 Comments and 5 Shares

all fiction is autobiography

Read the whole story
73 days ago
Central Indiana
Share this story
2 public comments
101 days ago
This stings.
Louisville, KY
102 days ago
it. me.
South Burlington, Vermont

Candy Heart messages written by a neural network

1 Share

Around Valentine’s Day in the US and UK, these things called candy hearts (or conversation hearts or sweethearts) appear: small and sugary, bearing a simple, short Valentine’s message. There are only room for a few characters, so they read something like “LOVE YOU” or “CALL ME” or “BE MINE”.

I collected all the genuine heart messages I could find, and then gave them to a learning algorithm called a neural network. Given a set of data, a neural network will learn the patterns that let it imitate the original data - although its imitation is sometimes imperfect. The candy heart messages it produced… well, you be the judge.

The neural net did produce some that would pass for - and arguably improve upon - the standard messages.



Others were in the same spirit, but perhaps not quite as effective.


ME MY <3

Others were, um, strange. I don’t know what they mean, but some of them might work on me.



These will probably not be one of the standard messages anytime soon.



There was yet another category of message, a category you might be able to predict given the prevalence of four-letter words in the original dataset. The neural network thought of some nice new four-letter words to use. Unfortunately, some of those words already had other meanings. Let’s just say that the overall effect was surprisingly suggestive. Fill out the form here and I’ll send them to you.

Also, if you need more love help from the neural network, check out the pick up lines it wrote.

Heart pictures made using


Read the whole story
83 days ago
Central Indiana
Share this story
Next Page of Stories