Monday, September 18, 2017

Replies not working

I just want to apologize to people who have commented and I haven't replied.  For some reason, Blogger is eating my reply comments, so that after I hit "submit" the reply doesn't get saved to the server.

A similar problem also happens to people trying to comment on older posts with lots of comments.  I can't complain about Blogger, it being free and all, but I will need to look into my server situation and perhaps go with a different hosting platform.

Monday, August 7, 2017

Easier way to replicate funky dice for DCC RPG using regular d6s

I recently came across the Dungeon Crawl Classics RPG and have been pretty hooked by the game since then.  The game introduces a lot of very interesting new mechanics into an over-troped hobby, most notably the magic system, the level-0 funnel, the Warrior's Might Deeds, and the dice chain, all of which bring back some of the spice of adventure and originality.

The dice chain is an original game mechanic.  While everyone who has played an RPG is familiar with a modified roll like d10+4 -- that is, roll a ten-sided die and add four to the result -- DCC offers an alternative way to express modifications in terms of changing the die you use, either up or down the dice chain.  The dice chain is
which, if you're familiar with gaming dice or 3D geometry, you realize includes a lot of shapes that don't exist.

In the D20 system of games (such as D&D since 3.5 or Pathfinder), whenever your character attempts something they need to roll for, you most commonly roll a d20 -- a twenty-sided die -- and add whatever modifiers, and try to beat a Difficulty Class for the attempt.  The DCs are usually such that, for instance, a DC 15 is a fairly difficult check.  If you are rolling a check for something you character does well, you will get a positive modifer that you add to your result (like +2, or +6), and if rolling a check your character does poorly, a minus modifier (like -4).  DCC offers an alternative way to think of bonuses and penalties in terms of the dice chain.  Rather than subtracting a modifier, they may ask you to instead roll a d16 to represent low training; or instead of adding a modifier, to roll a d24 or a d30.  Rather than just making your result higher or lower, it actually changes the probabilities by decreasing of increasing the range of possible results.  If the check is DC 15 and you have to roll a d16, success becomes very rare.  If you get to roll a d30 instead, then what is normally a fairly difficult task suddenly seems to your character like no problem.

While it's a brilliant mechanic of the game, after some reading online, I've found that it's also the single most maligned mechanic of the game and represents a pretty big barrier to people joining the game.  Not because they dislike the dice chain in itself, but because where the heck do you get a 16-sided die???

While such dice do exist, they aren't usually available at the Friendly Local Gaming Store.  The standards -- d4, d6, d8, d10, d12, d20 -- can be found at pretty much any game store or online for very cheap, whereas these so-called funky dice are usually only available from small boutique stores online, and aren't cheap.  If you live in the UK or Australia or elsewhere outside the US, then just the shipping costs can be way more than $20.  This represents a pretty big barrier to a lot of people to starting the game.  If you can't get the tools, you can't play the game.

Goodman Games needs to consider offering at least just the crucial d14, d16, d24, d30 to come with the book (or perhaps in a starter set), but until they do, let me offer some ideas on how to simulate funky dice so you can still play the dice chain, at least until you decide to get the actual dice.

There are some ideas on how to do this in one of the earlier sectons of the DCC RPG book, but frankly it's kind of complicated, inelegant, and involves things like ignoring a roll of 8 on a d8 (sure to go over great with players -- especially when they then proceed to roll a 1).

Here are my ideas on how to get around this.  While your Friendly Local Game Shop may not have a 16-sided polyhedron, they almost definitely carry blank d6s (or can get them to you very cheaply).  My work-arounds will involve only modifying blank d6 dice to simulate the funky dice.

Note, there are also dozens of dice roll simulators out there that will simulate any dice roll for you.  These are for people who really want to maintain the "feel" of rolling at the table, without springing for expensive dice.

Reduce the Dice Chain

Firstly, use a "truncated" dice chain.  Part of the reason for the funky dice is to make the transition between dice more smooth.  The biggest offender is the jump from d12 to d20, since the rest go in increments of 2.  The smaller funky dice add some extra smoothness at low numbers, then the d14 and d16 give some transition steps before the d20.  Notice, the jump from d16 to d20, and then d20 to d24 on the dice chain is already a step of 4.  So one possibility is to drop d14 and d7 from the dice chain, while still retaining a bit of smoothness.  (The reason for this is that these are impossible - or very hard- to simulate effectively).

So the new, truncated dice chain is
which, you're noticing, still includes dice like d3 and d16.  I'll tell you how to simulate this next.

Make a d2

The d2 isn't part of the dice chain, and doesn't come up very much in gaming for some reason, but we're going to make some anyway.  This is basically just flipping a coin.  Say that heads is 2 and tails is 1, and you have a d2.  If you'd like, get a wooden or plastic chit and write each side.  While that's as good a d2 as any, flipping a coin doesn't "feel" the same as rolling a dice.  If you have a blank d6, then you can make a d2 by marking it with three 1's and three 2's.  Now you can roll it like a normal die and get the same distribution of results.  Another option is to paint one half green (as an example) and the other half red, and treat green as a 2 and red as a 1 -- this allows you to also use it as a d3 by marking each face with a number, but more on that later.

Make binary dice

A d2 offers two options, and with two options, your standard geek should be reminded of binary.  A binary die is basically a d2, but with 0 and 1 instead of 1 and 2.  I will be calling this a db.  You can make it in any of the ways you make a d2, just number differently.  More effectively, use the coloring option above.  Make the 1s green and the 0s red -- or make the 1s green circles and the 0s red Xs, or the 1s blue and the 0s yellow, or make the 1's a smiley face and the 0's a frowny face.  Using coloration instead of specific numbers will let you use this as either a d2 or a db as needed, and will also let you use this as a d3.

Make a d3

A d3 is actually pretty standard -- some game shops may already be selling these as a d6 numbered 1-3 twice.  If you look closely in the d6s, you will might find some.  If not, they can be created very easily by modifying a blank die.  They can also be coupled to serve as a d2/d3.  I have one that I bought in a store, where half is red and half green, with the numbers 1-3 on the red half and 1-3 on the green half, which serves double duty.  You can also do this simply without modifying a blank die by just rolling a regular d6 and splitting up the range.  Either take 4-6 to be 1-3, or divide the result by two, rounding up.  If taking 4-6 to be 1-3, consider marking those sides as a reminder.

Make a d5

The rule book suggests rolling a d6 and re-rolling on a 6.  Besides being fiddly, one major problem with that is that 6 on d6 is the highest roll.  So a player rolls high, but rather than getting to savor this lucky stroke, they instead have to roll again.  You could avoid this by rolling d6-1 and re-rolling on a 0.  It's the same thing, mathematically, but now they don't feel as bad re-rolling that 1.  But it's even more fiddly now.

This is actually pretty easy, though.  Roll a d10, and take 6-0 to be 1-5.  Or roll a d20 and take 6-10, 11-15, 16-20 as 1-5.  Consider marking those ranges in a different color as a reminder.  You can also roll d10, divide by 2, and round up; or roll d20, divide by 4, and round up.

Make a d7 and a d14

I have no idea how to get this one with dice.  The problem is that 7 is prime and 14 is just 2x7.  This is why I considered dropping them from the dice chain.  If you have a d14, then a d7 is the same procedure used to get d3 from d6, or d5 from d10.

While they can't be effectively simulated with dice (the DCC suggestion is quite fiddly) they can be simulated with other means that were used back in the heyday of RPG gaming during the Great Dice Shortage of '79.  These include spinners, or drawing numbered chits out of a bag.  Another possibility is to make a spinning top/dreidel/teetotum numbered 1-14.  You can get a normal top and -- as evenly as possible -- square off the top edge into 14 notches.  If you go with chits, a spinner, or a top, then the d14 is the only one you need to make, as d7 is then just 1/2 of d14, and the rest can be made with d6s.

Or just consider dropping d7 and d14 from the dice chain.

If you follow the rule book's suggestion for the d7 to use a d8 and re-roll on an 8, then take my suggestion and instead roll d8-1 and re-roll on a 0.  There still isn't any non-fiddly way to get a d14 without rolling d16 or d20 and dropping lots of rolls.

Make a d16

This one requires the binary dice.  Make four dbs.  You will need to make all four visually distinct.  You might have four different base colors, or use four different coloration schemes (viz. one is red numbered 0,1, another is yellow numbered 0,1; or, one is red/green, the other is yellow/blue; or more clear, one is labeled 1000, 0000, the other 0100, 0000, the other 0010, 0000, then 0001,0000).  With these, we are going to create a binary number between 0 and 15.

The logic is similar to the d% by rolling 2d10.  If you understand rolling a tens place with one d10 and the ones place with another d10 to get up to 100, then you should be able to understand rolling four db to get up to 16. When you roll d% from 2d10, then you usually specify, say, the red die is tens, the blue ones.  Or, nowadays, a lot of d10s are numbered 10,20,30,...90,00 to specify they are for the tens place in a d% roll.

The distinction in the four dbs is the same here, except we're distinguishing binary digits.  So the red dice is the 1's place, the blue dice is the 2's place, the green dice the 4's place, and the yellow dice the 8's place (for example).  In this way, you can get d16 by rolling four db, interpretting as binary, and taking 0000 as 16 (similarly to how 0,0 with d% is takn as 100).  Line them up in order, and then the conversion from binary to decimal is as follows:
0001 -  1
0010 -  2
0011 -  3
0100 -  4
0101 -  5
0110 -  6
0111 -  7
1000 -  8
1001 -  9
1010 - 10
1011 - 11
1100 - 12
1101 - 13
1110 - 14
1111 - 15
0000 - 16
Now you have a d16.  (Many of your players will already know this conversion table cold, this being a game by and for nerds).  Consider writing the correct order of the dice down on paper in clear view (e.g. yellow, green, blue, red), perhaps with a visual aid showing their correct order by color, so debates of which is which don't break out; draw squares of the appropriate color on paper in order and have players place the appropriatly colored die on each square.  Numbering with all the zeros (as in 0100, 0010, etc.) also works.

You could also just roll one db four times, starting at 8's digit and going down.  imagine the tension when three 0s come up before the final roll... will it be 0 and give a crit, or a 1 and give a fumble...?

Make a d24

This one is probably the most complicated of the suggestions.  There are two standard shapes for d24, one of which is basically a d6 with square-based pyramids glued onto each side.  That's the one we are going to simulate using a marked d6 and a d4.

Get a blank d6 (preferably a larger one), and divide each face into trangular quarters.  In the central corner of each triangle on each face, write a number 1-4.  Now fill in the numbers 1-24 in each triangle.  The d24 is simulated by rolling the marked d6, then rolling a d4 to determine which of the triangles from the shown face is the result.

The trick here is *how* you put the numbers on the faces.  You want to spread them out as evenly as possible, preferably so that the sum of the numbers on each face is as close to equal as possible.  Might take some thinking to get right.  One possibility I worked out is shown here, so that each face sums to 50 and each opposing triange sums to 25.  The pips are used to indicate the d4 roll for that face.  Since each number 1-24 has only one possibile roll, this gives the same distribution as rolling a d24.
If necessary, cut out and fold over d6 t o see how this fits together

Another obscure option, using the same dice, is to work in heximal notation.  This will probably be way more conceptually confusing to your players, but would work.  Roll d4-1 to represent the 6s place, and a standard d6 as the 1s place.  While binary gets used frequently in computer science, so that the binary d16 not much of a stretch, heximal notation is pretty much useless, and mostly just a neat footnote after learning binary and hexadecimal -- so even most big-time nerds will still get tripped up on heximal notation.  Marking a blank d6 is probably the easier route.

Make a d30

If you get how two d10s can be a d%, then you can understand that a d30 only needs a d3 and a d10.  Consider making a special d3 numbered 0-2 instead of 1-3, and take a result of 0,0 as 10, 0,1 as 1, 1,0 as 20, 1,1 as 11, 2,0 as 30 (and the rest in the obvious way).  This isn't very different from the suggestion in the rule book, except that by labeling the d6 0-2, you make it a bit more obvious.


That's it.  Using only blank d6s from the Friendly Local Game Shop, you can make d2s, d3s, and dbs, and most of a d24, which, together with the "usual" polyhedral dice, can simulate the same rolls as the real thing.  The d14 remains more elusive still, but its place can be dropped from the dice chain without too much shock to the system, if absolutly necessary -- if a d14 is called for, go down to d12 or up to d16 instead.

I think these rolls are a bit less fiddly than the suggestions in the DCC rules book.  The binary dice for d16 probably isn't conceptually simpler, but it involves a lot less rerolling on high rolls, and has the benefit that the result is your result (just in a different number base system).

I should note again at this point, that every one of these can be simulated on a computer without needing to mark any dice at all.

They can also all be simulated with numbered spinners, bags of numbered chits, or with a numbered spinning top/teetotum (a d10, for instance, is just a sort of two-sided top, and the standard 14 and d16 in most DCC dice sets are likewise two-sided tops).  If you have access to wood- or metal-working equipment, you may find the numbered top method to be a more effective method for all of these; just divide the top circle into the proper number of sections and file it down.

All of these are methods for generating uniformly distributed results in the desired ranges.  The numbers generated will have equal probability for each number, as though they were rolled with a fair dice with the desired number of sides.

This should at least help get you started in DCC, at least until you decide if you'd like to shell out the extra money for the funky dice.

If you decide to buy the funky dice, note that d14, d16, d24, and d30 are the only ones you really need, with the lower funky dice being readily generated from these and the standard polyhedra by halving the result.

Hope it helps potential DCC gamers get over that hurdle.

Friday, July 28, 2017

Learning Fortran is a waste of your time

Suppose you are an advanced student of physics, and you're just beginning your first research experience with a new professor.  You're excited about the opportunities this means for your future, fascinated by the implications of the research, and anxious to please.  Your professor tells you you need to run a computer simulation, and this is also exciting; you've never used a computer as a computer before -- usually just as an internet browser.  To get you started, he points you to a reference text with some sample code, or sends you one he has on his hard drive somewhere.

This code will be written in Fortran.  They all are.  All legacy codes are Fortran.

So what is Fortran?  Fortran is a high-level programming language designed back in the 50's.  Here "high-level" means that it is not assembly language, and the programmer does not directly interact with machine elements like bits, bytes, or memory addresses, though Fortran is much "lower-level" than most modern languages like Java or Python, meaning it is only just a step or two above machine code.  The name "Fortran" is short for "Formula Translation," as the language was intended to more directly translate a mathematical formula into computer code; Fortran allowed, for instance, an entire mathematical expression to be written out as a single line of code, as opposed to assembly, which would require multiple lines of register swapping and simple operations to acheive the same result.

You'll get the sample code and look at it, and it will be completely incomprehensible.  They all are.  All Fortran codes are incomprehensible.

Why is this?  There are a lot of things that contribute to the issue.

Saturday, June 10, 2017

The Ukrainians From ZRus Who 'Read' My Blog

If you are a fellow user of Blogger or a similar platform, then you have probably noticed that you get a significant amount of traffic from websites in Ukraine or Russia, many with the specific domain name  You're probably curious about who these Ukrainians linking to your blog might be.  You may even be a little bit flattered that your tiny blog is getting international recognition.

Don't get excited, and whatever you do, do NOT click any link to these websites.  This is a well-known scourge on the blogger community, and clicking the links could infect your computer with malware.

These sites are a malicious scam.  Let me explain how this scam works.

In your Blogger dashboard, under the "stats" tab, you can see a list of referring traffic.  This might be from twitter, facebook, reddit, other blogs, maybe even news publications depending on how popular your site is.  It will also show a number of hits from each source.

Most bloggers on Google's service use this built-in feature to check their blog's traffic - sometimes obsessively.  When you see someone linking to your blog, you want to know why.  You want to click the link there to see what they may have said about your blog post.  And the scammers know this.

They create a webpage, and from that page they generate re-directions to your blog. This is done with computers, and does not mean any actual person in Ukraine ever saw your blog.  I've noticed sites like and the rest of the Russian cottage-industry of reverse-traffic scamming like to use exactly three page views.  Some days, I have a long list of sites, each with exactly three pageviews.  (After this post they may change the number to obscure themselves.)

I'v never clicked any of these links, and neither should you.  Here's why.

When you click the link, you will be redirected to a page that is an advertisement (usually for pornography).  The page also usually contains malware such as trojans or worms that will embed in your computer if you aren't careful.  Nowhere on the website will there be any mention of your blog post, or any link to it, or any people commenting or discussing what you said.

It's just an advertisement with some malware attached.

This is an old scam.  Before, the leader was, which thankfully has been staked to death.  They then spawned a number of others, such as zombiestat, uglystat, mobsterstat, etc.  It was exceedingly frustrating, and many bloggers (myself included) complained loudly to Google for continuing to show these malicious links in our stats menu.

Eventually, Google fixed the problem.  I don't know if they blocked those sites from trafficking their users' blogs, or if they just stopped showing the links in their users' stats pages, but eventually the scourge of vampirestate went away.

However, in the past year, I've been seeing it return (with new domain names), and it's just as annoying as always.

The problem continues to spread because people continue to click on the pages.  Unless you have admin control over your server and domain, there's not much you can do to stop them from creating malicious traffic to your blog.  So here are some things you can do:

1. NEVER, EVER CLICK THEM!!!  This is the most important thing I can say.  For one, for the health of your computer.  For two, because this only works because people keep clicking the links in their stats page.  If we stop clicking the links, this technique will become less successfuly and thus less common (like Nigerian princes, it will probably never truly go away).

2. Always search for unknown domain names before clicking any link in your stats page.  Because of my blogs one (1) popular post, I sometimes get traffic from strange places I've never heard of before.  I never, ever click the link in my stats page, and instead look up the domain first to be sure this is an actual website and not scammers in Ukraine.  If the search shows nothing but whois requests or visitor reports or the domain itself entirely in Russian, then you can bet the ranch you aren't getting legitimate traffic from them.  DO NOT CLICK THESE LINKS even in your search results.  Don't click so-called traffic verifiers about these links either.

If you can't tell what these referring sites are from a quick Google search, then there is no reason to open them at all.

As an example, here is what my traffic looks like at the time of writing:

You see some sites on there.  Those are entirely malware reverse-traffic scams.  An internet search for will show only the main domain, and lots of lists of referral traffic on other websites or sites claiming to tell you who is (don't click those either).  However, also in thus result is Yandex, which is Russian language, but a search of Yandex will show you a nice Wikipedia page explaining that Yandex is a search engine -- basically the Russian Google.  That's a legit hit (though there still isn't any reason to click it).

You'll also see some legitimate traffic there, such as google, facebook stumbleupon, the Brazillian-language blog, as well as  For both of those last two sites, I actually verified through a search beforehand that they were legitimately citing my blog before I ever clicked on them (and they are, and are both neat sites -- if you like science fiction or multiverse ponderings, check em out!).  [Edit: I unlinked the links to there when I realized it would show up in their reports as referral traffic when it wasn't really relevant, but do check them out]

The point is that not every unknown source of traffic is bad, but some of them are, so you should verify first before clicking a link.

Here's another list for completeness:

You see another site, but also some weirder ones, like and Both of these are reverse-traffic scams, though perhaps more benign ones.  For instance, your-bearings is apparently some kind of store for bearings, and there's no reason for them to be linking to a blog about fantasy and science.  These may be part of a traffic-direction campaign -- don't click on those sites either, since it only encourages them.

(Side note: I also see half a Google search result, and it's so frustrating these get cut off.  I have had some very intriguing things show up there before.)

3. This problem is not Google's fault, and they can't stop it, but they can take steps to mitigate its effect on their users.  Report the sites as malicious and ask if they can be removed from your blog's stats reports.  They were able to shut down vampirestats somehow, so they should be able to stop ZRus.

Short story is, is a reverse-traffic scam site, they are not actually visiting your blog, you should not give them the satisfication of ever clicking on them, and they may infect your computer with malware.  Further, some companies (perhaps unknowingly) hire traffic campaigns that end up using the same reverse-traffic scam to generate webviews for obscure commercial sites, so be sure to verify any new pages you see in your traffic results before ever clicking them.

A good rule of thumb may be -- just don't click links in your stats page, and go to the source from a search engine instead if you want to see why you're linked.

Thursday, May 18, 2017

Why does so much time pass in Interstellar?

While on a quest to save the human race, astronauts in the film Interstellar travel to a foreign planet orbiting closely around a supermassive black hole.  Due to the strong gravity, time on the planet is distorted, being artificially compressed.  Seven entire years here on Earth are squeezed down to just one hour of time on the planet.

This is one of the many bizarre effects of Einstein's general theory of relativity, referred to as gravitational time dilation.  I had some students from my physics class recently ask me to explain this phenomenon.  So I prepared what I think is a fairly straightforward explanation of the phenomenon, assuming only a knowledge of 1st semester physics and some simple calculus.

Wednesday, May 17, 2017

The Past Two Years of My Life

I was looking just now, and realized it's been two years since my last update.

This blog is kind of a weird thing. It started as a way for me to vent my thoughts on fantasy and science fiction books, then got kind of science-y. At one point I had a spike on my post about the vampire movie Let Me In.  Then I had that viral Berenst#in Bears post that got passed around the web a lot, inspiring lots of kookiness. I was getting lots of traffic for a while -- until Vice basically rewrote my same idea but on their own website with their names attached.

Since then my traffic has slowly dwindled down to numbers that actually make sense for what my blog is.

Really, what gets me isn't that another site gets my traffic, but that in all the traffic that I got, almost none of them read what I think are some of my coolest posts -- the stuff about using Gauss' Law to calculate the width of Narnia, or using volume contracting spacetimes to travel to other dimensions, or why everything cool in physics is impossible, or how time travel is understood to work within physics.

I haven't posted much (anything) since things sort of died down. I still check in frequently, but never find the impetus to start to writing. Maybe it's the weight of former glory intimidating me.

Wednesday, August 5, 2015

Effective Mandela Theory

There are at least hundreds of thousands (or even millions) of people around the world who were shocked to hear that Nelson Mandela died recently.  Their shock wasn't that a world-famous civil rights advocate had passed away.  They were shocked because they thought
the man had died thirty years ago!

According to an impressively large number of people, Nelson Mandela originally died back in the 80s when he was in prison.  They remember seeing it on the news and hearing about riots that broke out all across South Africa.  It's a very specific memory, and a lot of people share it.  It didn't happen (apparently, anyway), but thousands and thousands of people insist on remembering Mandela's death in prison and the resultant riots, and their accounts are fairly uniform (as uniform as memories ever are, anyway).

Now, people misremember things all the time.  And usually, people can be pretty stubborn about what they remember, especially when it's two memories against each other.  But when presented with something like every single newspaper ever printed that contradicts their claims, most people relent and admit that they're wrong.  With Nelson Mandela's death, the people who swear he died earlier believe this memory so strongly that they will not let go of it, despite being contradicted by every relevant fact in existence.  It isn't because they're just that stubborn, or that stupid.  The memory has a certain quality to it.  For whatever reason, their brain refuses to discard it.

This sort of phenomenon has become known (for better or worse) as the Mandela Effect.  It is when a large number of people share and insist on a fairly cohesive counterfactual memory.