20 December 2015

Kickstarter status

I have backed a total of 76 Kickstarter projects since January 2012. (19 per year. Yes, that may be a bit excessive.)

  • 1 is ongoing
  • 44 have delivered my reward
  • 10 are underdue
  • 16 are overdue
  • 1 was cancelled but restarted (was then successful and is included in the underdue count above)
  • 1 was unsuccessful but tried again (was then successful and is included in the delivered count above)
  • 1 was unsuccessful but the product is now available anyway (and I have one)
  • 2 were unsuccessful

Among the overdue ones are some that have delivered some (but not all) of the reward. There are many that do appear to be making progress. There are only a few that I have completely given up hope for.

Not counting the ongoing, underdue, cancelled, and unsuccessful: That’s 44 delivered out of 60 (73%).

Let’s break down the overdues...

  • 1 month
  • 1 month
  • 3 months
  • 4 months
  • 4 months
  • 4 months
  • 5 months
  • 6 months
  • 1 year
  • 1 year & 8 months
  • 2 years
  • 2 years & 2 months
  • 2 years & 2 months
  • 2 years & 10 months
  • 3 years
  • 3 years & 4 months

I haven’t kept track of when the ones that delivered did, so I’m not sure how late to write them off. (I mentally write them all off as soon as I pledge anyway.) Of the 2 year or more ones, there’s a couple that show good signs of life and which I expect to—eventually—deliver.

07 December 2015

Commenting code

At some point I took to heart admonitions to not write comments that simply repeat what the code clearly says. A discussion with a co-worker, Achint, not too long ago made me realize that this is bad advice. And I should have know better.

“Don’t repeat yourself.”

—Dave Thomas & Andy Hunt

In (human) language, redundancy is a feature.

—me

In programming, the DRY principle is rightly lauded. Not just for code itself but for every bit of information in a software system.

But it’s the opposite for human language. In this case, redundancy makes things clearer. Saying something in both English and code will help the human reader (including your future self) understand the code better and faster.

Certainly, there are situations in which code is clear enough on its own, but—in general—it’s probably better to err on the side of more comments. I’ve seldom seen (or written) code that had too many comments.

But I have sometimes seen code with too many comments. The most common is doxygen boiler plate without any useful content. The other is some of the code written in “literate coding” style.

05 December 2015

Gun control

Personally, I have no desire to own a gun.

I cannot agree with either extreme on this issue.

I don’t believe any guns should be banned outright. I think people should have the freedom to own any sort of gun they want...provisionally.

I also believe that we should regulate them. In at least some cases, heavily. There are lots of things we do regulate—in some cases heavily—that I’d argue for deregulating before guns.

04 December 2015

A 2-axis model of RPGs

I’ve said many times that I don’t find the threefold model of role-playing games very useful. I do think things in that vein are needed, though. The most important question when selecting an RPG system isn’t something like genre; it’s play-style. Here’s something I think might be useful.

On one axis, we have “Let’s create a story!” on one end and “Let’s see what happens!” on the other end.

On the other axis, you have mechanical complexity. This could also (depending upon context) be a measure of how much the game or the participants expect to “stick to the rules”. The “stick to the rules” attitude is often associated with more mechanical complexity, but I think the correlation can be loose.

I thought it would be cool to have pithy abbreviations like AD&D alignments. (NC for “narrative-driven + complex mechanics”. CS for “character-driven + simple mechanics”.) But...shrug.

It is really important that both axes are continuums, although I’m sure everyone would ignore that it practice.

01 December 2015

Frasier Speirs on replacing an iPad with a laptop

A brilliant piece by Fraser Speirs: Can the MacBook Pro replace your iPad

It would be easy to argue with many of its points, but that is the point. The iPad Pro (and the iPad before it) is more about providing different options than replacing anything.

 

23 November 2015

Pencil versus finger

What you can and cannot do eith an Apple Pencil on the iPad Pro

I think one of the smartest things Apple did with the pencil is to distinguish use of the pencil from using fingers.

21 November 2015

Exclusive Potter

Gruber wrote:

I’m intrigued about the strategic implications of an exclusive like this. But as a book reader, somehow it feels wrong for books to be “exclusive” to a proprietary software platform.

But while this edition of the books are exclusive to iBooks, the books themselves are available on many platforms. And available unencumbered by copy protection.

20 November 2015

Armor makes you harder to hit

You find this argument regarding role-playing games about whether armor should absorb damage or make you harder to hit. (GURPS tried to make it do both, but I believe they gave up on that in 4/e.) It is a silly argument because tabletop RPG mechanics can’t be complicated enough to really simulate the difference.

But forgetting that and just considering the question...I’m going to think-out-loud on a topic I am far from an expert on.

Armor does absorb damage. But because it does, it would be foolish to aim a blow at the armor. As anyone can quickly discover. So, one instead attacks the gaps in an opponent’s armor. Which is what the period fighting treatises advise. So, the upshot is that—in practice—armor makes you harder to hit rather than absorbing lots of damage.

Well...no doubt there are exceptions. Some weapons are designed to minimize the effect of certain armor. Even then, attacking a gap will usually be more effective. So, I think this is indeed the exception rather than the rule.

19 November 2015

New Star Trek series on CBS All Access

About the new Star Trek series CBS announced...

Now, only making it available via their (apparently lousy) subscription (with commercials) streaming service is certainly not setting it up for success.

But it premiers January 2017.

What are the chances that CBS All Access still exists in January 2017?

18 November 2015

iPad Pro review on Wired.co.uk

I haven’t read many iPad Pro reviews. I guess because I knew I was going to buy one and make up my own mind about it. But then I came across the “review in comic form” that led me to this review on Wired.co.uk.

Because no, the iPad Pro is not a laptop. If you largely work with words, via a complex content management system, and enjoy your laptop already—as is true for most journalists who have reviewed the thing, not coincidentally—then it might not be for you.

If you’re interested in the iPad Pro at all, I think the whole review is worth reading.

For me, the iPad has effectively been a laptop replacement because I’ve always preferred a tablet to a laptop. (I just never found a tablet that was good enough before the iPad.) Before the iPad, I simply went without a laptop.

But whether the iPad is a laptop replacement or not is a minor issue at best. While an iPad doesn’t have a keyboard and mouse/trackpad, it does have a touchscreen. It will never be as good at the things keyboards and mouses/trackpads do well are as they are. But likewise, there are things a touchscreen does well that a keyboard and mouse/trackpad never will do as well.

For music and graphics—to name just two creative endevours, a touchscreen can be better than a keyboard and mouse/trackpad.

And while writing is more the domain of the keyboard than the touchscreen, I wonder if there aren’t places in the writer’s overall workflow where a touch interface might be better than a keyboard.


A side note: I am happy that Microsoft is pursing the route of trying to build all these options (keyboard, mouse/trackpad, touchscreen, & precision stylus) into a single system. I’m neither convinced that it will work or that it won’t. It is the fact that I was always disappointed in their tablet offerings before and the ways they’ve disappointed me with other products that keep me from buying what they’re selling today.

17 November 2015

Book v. iPad Air v. iPad Pro

I put together an online iCloud photo album with some pictures comparing books with the same or equivalent e-book on iPad Air and iPad Pro.

While the iPad Air is a better size for typical novels and articles, the iPad Pro is (IMHO) better for textbooks† (like technical books and RPG books) and comic books.

Digest-sized RPG books are often better on the Air. Although, the Pro does allow viewing two of them side-by-side.

Unfortunately, to get the two books side-by-side I had to load them into different apps. (In this case, iBooks and PDF Expert.) Although I haven’t played with PDF Expert enough to know what it can do. My PDF app of choice, GoodReader, hasn’t been updated to support side-by-side or to fully support the iPad Pro yet.

Being able to view two arbitrary pages in the same PDF side-by-side could be useful too. While you could do this with the two apps workaround, it would be better if a single app added such a feature. GoodReader has the ability to open multiple pages from one PDF in separate tabs, so that seems a reasonable addition to better support the iPad Pro.

But being able to view a book at full iPad Air size on one side of the Pro while having another app—e.g. Pages, UX Writer, Evernote, etc.—at full iPad Air size on the other side seems promising.

†Ironic that the word “textbook” seems รก propos to me here since what distinguishes these from typical novels and articles is that they have lots of images, tables, and diagrams in addition to text.

20 October 2015

Should GSL string_view should be string_ref instead

(Another one for C++ programmers)

Time for some bikeshedding.

It looks to me like GSL string_view and the library fundamentals TS (hereafter LFTS) string_view have different goals. Also, I have heard it said that the “_view” in LFTS string_view was meant to emphasis that it was read-only.

Perhaps GSL string_view should be called string_ref to distinguish it from LFTS string_view and because it isn’t strictly a “view”?

LFTS string_view’s goals are to be a (as much as possible) drop-in replacement for “const std::string&” without the memory allocation and copying that it sometimes requires. GSL string_view’s goals, however, are safety and being able to replace any use of a raw char array as a function parameter. These differences manifest in (at least) two ways. First, LFTS does not allow modification of the underlying data while GSL string_view does. (Although a const GSL string_view can be used.) Second, LFTS string_view copies all the const member functions of std::string while GSL string_view—just an alias for GSL’s array_view—prefers free functions for string-specific operations.

It doesn’t look like it will be easy to serve all of those goals without getting ugly. As much as it would be a shame to have two versions of somewhat similar concepts.

(I’m not as familiar with N3841 array_view yet, so I’m unsure if there is an analogous issue for array_view.)

Update (6 November 2015): Good news. In the wake of the October 2015 meeting in Kona, GSL’s array_view and string_view will be renamed span and string_span.

19 October 2015

Parameterize by data member in C++

(For the C++ programmers in the audience.)

This is the story of me finding an unused tool at the bottom of my C++ toolbox and figuring out what it did.

I started with some structures that looked like this. (And, of course, changing the structures was not an option.)

struct Foo {
mint a;
mint b;
mint c;
mint d;
m/*etc*/
};

const int foo_count = 10;

struct Bar {
mFoo foo[foo_count];
m/*etc*/
};

I needed to write some code that looked something like this.

int foo_calc_a(const Bar& bar1, const Bar& bar2)
{
mint result = 0;
mfor (int i = 0; i < foo_count; ++i)
mmresult += bar1.foo[i].a - bar2.foo[i].a;
mreturn result;
}

But I needed a function like that for multiple members of Foo, and I didn’t want to copy & paste that function for each data member.

I could do it the old school way using offsetof. (I’ve fancied it up with C++-style casts and a C++11 lambda.) And then we have an example call for member a.

int foo_calc(const Bar& bar1, const Bar& bar2, std::size_t offset)
{
mauto f = [&offset](const Foo& foo) {
mmreturn *(reinterpret_cast(
mmmreinterpret_cast(&foo) + offset));
m};
mint result = 0;
mfor (int i = 0; i < foo_count; ++i)
mmresult += f(bar1.foo[i]) - f(bar2.foo[i]);
mreturn result;
}

auto result = foo_calc(bar1, bar2, offsetof(Foo, a));

Of course, we get no help from the compiler here since we’ve told it, “Trust me!”. (While writing this version, I did write two bugs that the compiler missed. The improved version of the function—which I’ll show you later—gave the right answer as soon as I got it to compile.)

That works, but surely we can do better! I tried a few other solutions, but we’ll skip to the one I settled on.

While I was reading something else, I noticed a mention to “pointer to data member” that suggested it was more than what I thought it was at face value. This lead me to...

The operators −>∗ and .∗ are arguably the most specialized and least used C++ operators.

—Bjarne Stroustrup, The C++ Programming Language (4th edition), §20.6

The funny part was that I immediately recognized that I’d read this section before, though clearly I never fully grokked it.

You get a PMD (pointer to member data) with the ampersand operator.

&Foo::a

What type is it? It is a “int Foo::*”. A pointer to an int member of Foo.

int Foo::* pmd = &Foo::a;

The thing is, this isn’t really a pointer. It is an offset. Although it is a typed offset. Like any offset, we need a pointer to an instance to “add it to” to make it a pointer. How do we do that? With those specialized operators mentioned above.

Foo foo;
Foo* p_foo = &foo;
foo.*pmd;
p_foo->*pmd;

...and thus, foo_calc becomes...

int foo_calc(const Bar& bar1, const Bar& bar2,
mint Foo::* pmd)
{
mint result = 0;
mfor (int i = 0; i < foo_count; ++i)
mmresult += bar1.foo[i].*pmd - bar2.foo[i].*pmd;
mreturn result;
}

auto result = foo_calc(bar1, bar2, &Foo::d);

Viola!

But at what cost? You should, of course, measure for your own environment. For my code, this was no slower than using offsetof. There’s really no reason for it to be, since it is essentially the same thing. Just with some different syntax and the compiler checking your work more.

So, if you’re tempted to use offsetof, use a “offsetpointer to member data” instead.

14 October 2015

Exploring Our Matrix: “The Message is to You”:

In the spiritual life, there aren’t too many absolutes I can make, but this is certainly one. On the spiritual journey, the message is always to you. The message is always telling you to change.

Now, what most people do is they use religion to try to change other people. It’s always someone else that needs changing. No. Stop it. Once and for all. Whatever happens to you in your life is a message to you.

Oh the ego wants to avoid that. So we look for something out there to change–somebody not like me is always the problem.

—Richard Rohr

I don’t think I could agree with that more.

30 September 2015

Making an Apple Music playlist

The task: I have a list of songs that I want to make into an Apple Music playlist using iTunes on my iMac.

Step 1: Search My Music. If I already have the song in my library, that is likely the version I want in the playlist.

If it weren’t for step 2 below, this wouldn’t need to be a full, separate step. I’d search My Music and—if the song wasn’t there—one click would switch me to searching all of Apple Music.

The good news: If I find the song in My Music, it is easy to add it to my playlist. On to the next song. Otherwise...

Step 2: Search Wikipedia for the song to find which album (or other information) will distinguish the version I want.

Apple Music almost never has just a single version of a song, but it gives me precious little context to help me distinguish them from one another. I’ve learned from experience that things go a lot smoother when I check Wikipedia before searching Apple Music or the iTunes Store.

I’m not suggesting that a service should choose a definitive version for me, but it would be nice if it gave me some useful context. This sort of context seems in-line with Apple and Beats’ “people over algorithms” stance. In fact, I’d argue that this fits it moreso than mere curation.

Step 3: Add the song to My Music. Apple Music doesn’t allow you to add a song to a playlist unless you add it to your My Music first.

Well, I did find ways to do it, but it didn’t really work. The song wasn’t added to the playlist. Or if it was, it remained invisible.

Step 4: Search for the song (again) in My Music, and add the song to the playlist. Finally go to the next song on the list.

Compared to Spotify: Doing the same task in Spotify suffered, of course, from the issue of step 2 as well. Although it benefited from not having steps 1 or 3. Once I’d found a song, I could add it directly to my playlist. My biggest complaint about Spotify when creating a playlist was not being able to see the search results and the playlist side-by-side—which is also a problem in iTunes.

So... Even leaving out step 2, creating an Apple Music playlist with iTunes is shockingly clunky. It is hard to believe creating a playlist wasn’t an important enough use case to get better treatment. And a music service that wants to truly differentiate itself from the competition should perhaps look farther than just algorithms and farther than just curation.

A side note: Apple Music’s curation (over competitors’ algorithms) is touted as a distinguishing feature. I’d argue that Spotify’s shared user playlists are more useful curation that all of Apple/Beats “experts”. The ideal service would have both and ensure they both worked well.

24 September 2015

Will the iPad Pro get pro apps?

Why there is no Sketch for the iPad?

On the one hand, I certainly expect a developer to know their business better than I do.

On the other hand, this certainly sounds a lot like the same logic I heard from my competitors for not supporting the Mac back-in-the-day (the latter half of the 1990s) when my company was making a third of our profits from the Mac.

It’s ironic that Apple sells its products for a market willing to spend premium prices, yet the App Store has this perceived race-to-the-bottom justified by developers’ skepticism that the same market is willing to pay premium prices.

From products to platforms

Microsoft’s and Adobe’s subscriptions do not appeal to me. Although perhaps that has as much to do with my experience as a customer of both companies than with the subscriptions themselves. I’m glad they’re support the iPad, but I want apps from smaller developers too.

Would trials or upgrade pricing or other things “solve” the problem? Surely it could help, but this looks more like a perception problem to me. Although, sometimes the way to address a perception problem is to address the perceived problem. But those “solutions” have their own downsides.

Meanwhile, the Omni Group seems to be doing fine selling iPad apps for $50 each.

As an iPad user, someone who wants good apps, and someone willing to pay for them; this is something I worry about. Whether true or not, how many apps is this conventional wisdom keeping off the platform?

23 September 2015

JetBrains

...or “What for brains?”

Final update on the JetBrains Toolbox announcement

I’d been waffling on whether to buy JetBrain’s CLion when they announced their move to a subscription model. They’ve made the decision easy for me.

I do like to see companies admit their mistakes, and I like to reward that. But this has all the hallmarks of a leadership that is customer-unfriendly and not smart. I am not going to reward that.

22 September 2015

Modes and guitar

I find the use of modes in guitar instruction generally unhelpful.

The first problem is when modes are used simply to name positions. A mode is what notes get emphasized, not where on the fretboard you are playing them. You can play Mixolydian in the position that’s called Ionian. Using the mode names for positions simply confuses things for no reason.

The second problem is that modal playing is one style. And not a style for beginners. Modes should be introduced much later than they often are and only if the student is interested in that sort of style. Just as in music theory courses. Introducing modes early simply creates confusion for no good reason.

21 September 2015

Quarterstaff

The quarterstaff and its use—as described by 15th & 16th century sources—differs greatly from what we tend to see in movies, on TV, or in games.

You may have heard various reasons for the name “quarterstaff”, but the truth is that we don’t know.

The “short staff” of George Silver’s Paradoxes of Defence (1599) is 8–9 feet. (Contrasted against the 12–18-foot “long staff”.) This was not simply a scavenged branch (or a wizard’s walking stick) but a purpose made weapon, often with iron shod tips. Perhaps even sharped. It would, of course, be made of a hard wood like ash.

I haven’t found information about a period source for the diameter. Perhaps 1¼–1½ inches?

While the hands were presumably repositioned during use, the “default” grip would be to have one hand near the butt end and the hands about 1–1½ feet apart. Much like the use of other pole weapons.

To—as is my wont—apply this to role-playing games: A walking/wizard’s staff and a quarterstaff should be different things. A wizard’s staff used as a weapon ought to be treated as an improvised weapon. A quarterstaff should certainly not be free. For D&D, wizards should not get quarterstaff proficiency. (Indeed, oD&D and B/X do not allow magic-users to wield quarterstaves.)

If applied to my classic D&D melee weapons, perhaps a quarterstaff should become a large weapon?

On a related note: Did Gandalf use his staff as a weapon? (Spoiler: No.)

20 September 2015

Why don’t fans like Jar Jar?

From “Jar Jar Binks: A Digital Star is Born”:

Lucas doesn’t care too terribly much that some folks have a problem with Jar Jar. “I think the comic-relief character is an important dramatic device,” he says. “Some of the fans that want The Phantom Menace to be The Terminator don’t like the idea that there are comic characters in it. I certainly am not going to make a grim bloodfest out of Star Wars.”

I think Lucas is wrong. While there may be some fans for whom this is true, I think most fans who don’t like Jar Jar don’t like him because this comic-relief character is much too much the focus of The Phantom Menace. He detracts/distracts from the story rather than enhancing it.

(Which is why I’d love to see The Phantom Edit.)

I also suspect this is a direct result of Lucas experimenting with ways of filmmaking—doing pre-production, production, and post-production somewhat concurrently. My guess is that this process obscured the “big picture” from the filmmakers.

19 September 2015

Wizards’ closing their fora

Wizards of the Coast are shutting down their community fora.

Back with D&D3e came out, I was an active participant. Back then, I accessed them through an NNTP client instead of through the web site. (I still think NNTP worked better for such things than web sites.)

When I went “back to basics” with RPGs, I often spent time in their out-of-print forum. My “I used to think...” page was originally a post there.

They tried to turn it into a social network called Gleemax in 2007, which seemed poorly executed and was shutdown by 2009.

By the time D&D5e was in the works, I could still log in to comment on articles posted on their site but got an error when trying to log into to the fora.

I certainly spent more time on Dragonsfoot, ENWorld, and various other RPG-related fora; but the Wizards’ fora were always a fixture of that landscape. I spend almost no time on such fora today. Mainly because I’ve chosen to spend that time other—though not necessarily better—ways. So, I can’t really say whether this is a good decision or a bad one.

18 September 2015

Food network without cable

We love the Food Network in my household. And while we still have a U-verse subscription and DVR, most of our TV watching these days is on-demand via iOS apps or Apple TV. (And...to a lesser extent...Amazon Video via iOS or Roku.)

Unfortunately, the Watch Food Network app is not great. It frequently drops when using AirPlay. It frequently crashes. Those problems would be mitigated some if it remembered your place and resumed playing from there, but it never does. To add insult to injury, trying to manually jump forward to where you were is frustrating. In the best case it makes you rewatch all the commercial breaks you’d already sat through, and you eventually find the place despite not having the help of a good scrubber UI. If it should crash, however, it sends you back to square one. There are episodes we haven’t finished watching because several attempts to resume failed.

The worst part is that our experience with this app is making us not want to watch Food Network at all.

Here’s the deal: We pay $12 a month for Hulu without commercials. We would watch enough Food Network, that we’d be willing to pay the same $12/month for just a Food Network subscription without commercials.

But...it would require an app on par with the other big streaming services. (e.g. I hear the people behind the MLB streaming service have helped out others in this department.) And it should allow downloading episodes for offline viewing.

And if anyone from Food Network reads this...while I have your attention... Why is there no way I pay you to watch Feasting on Asphalt?

17 September 2015

Early RPGs

One important thing to understand about the first role-playing games is that the people who created them were already role-playing when playing other games. So their role-playing games weren’t designed as rules for role-playing. They didn’t need rules for role-playing in other games, so why would they need them in a role-playing game? Rather, the rules were designed to not get in the way of role-playing.

This is why the combat system† in original D&D is anemic compared to the wargames with Gygax’s or Arneson’s name on them. This is why the combat in the main three classic Traveller books is anemic compared to the wargames Marc Miller had previously designed.

†While original D&D said to use Chainmail, neither of the creators did so in practice. Arneson said he abandoned Chainmail early on in favor of developing the “alternate” combat system. Gygax said he never used Chainmail for D&D combat.

16 September 2015

On genre

Surf and power pop are not what they say they are.

Surf music is only called that because—at the time it was named—it was popular among surfers. You can claim that the dimed reverb is meant to sound like the waves and such, but I remain unconvinced. In any case, most surfers today probably aren’t surf music fans, and most surf music fans probably aren’t surfers.

Power pop has never been popular. Of course the “pop” refers to the elements of pop music—at the time that power pop was named—which power pop uses. “Pop” here isn’t saying that power pop is popular; it is simply referencing other music that was popular.

Some people are very strict about genre.

It isn’t surf if it isn’t played on white Fender Jazzmasters with 11-gauge strings through a dimed Fender spring reverb tank and a vintage Fender amp. And if a voice appears at all, it is not surf.

(Note: While the Beach Boys and similar vocal acts are similar to surf music, the genre applies to instrumental music. I think most reasonable people, however, would call Wipe out surf despite the words.)

It isn’t power pop unless it has crunchy guitars, melodic vocals and vocal harmonies, minimal guitar solos, and no influence from the blues.

Such strictness is understandable, if overzealous. It is really hard to draw the lines between everything that is in the genre and everything that is outside of it. (And that’s just with songs. It’s even harder to classify bands into genres.) In reality, there will always be gray areas. But saying “I know it when I hear it” doesn’t really help anyone know what you’re talking about.

But, the point is: These labels helped me discover music I might not have otherwise. So, I’m not willing to dismiss genre as useless.

15 September 2015

Guitar pedals: learning and problem solving

Previously posted to Google+

I’ve always been more of a multi-effects guy than a pedal guy. But lately my pedal collection has been expanding. Then came the point at which I wanted to use my pedals with headphones. (And—in particular—solving this would also let me use them with the Jamhub.)

I could plug them into one of my multi-effects units and use its headphone jack. But none of my multi-effects units have stereo inputs, and I do have stereo pedals.

I could run them into a couple of amps and then plug the headphone outs from the amps into two channels of the Jamhub†. That seems like overkill.

It turns out, though, that the last pedal in my chain—a Digitech Jamman—has a headphone out! This works, but it didn’t sound very good.

It also turns out the Digitech Trio will add speaker emulation if you just use its mixer out. It’s only mono, but putting it after the last mono pedal seems to work. (It seems like most stereo effects don’t need speaker emulation the way some mono effects do.)

In the long run, it’d probably be good to put a Sansamp in the Trio’s place, but I was happy to be able to find a short-term solution with what I already have.

†Or some other way of combining the two mono signals into a stereo signal. The Jamhub is probably the easiest way to do it that I have on-hand.

14 September 2015

Angry birds 2

I have—altogether—spent $21.90 on Angry Birds games. Only $2.98 of that was in-app purchases. (Which bought level packs rather than bennies.) As they’ve moved to “free to play”, they’ve made less-and-less off me. It is at zero now.

(Presumably I am an outlier, and they made up for the loss from people like me by getting more out of others.)

The sadder thing, though, is that I am not enjoying Angry Birds 2. I haven’t quite put my finger on it, but somehow the gameplay has changed in ways that have taken all the enjoyment out of it while remaining superficially the same.

13 September 2015

Forget about the mobile internet

Forget about the mobile internet:

For as long as the idea of the ‘mobile internet’ has been around, we’ve thought of it a cut-down subset of the ‘real’ Internet. I’d suggest it's time to invert that—to think about mobile as the real internet and the desktop as the limited, cut-down version.

For as long as I have known† about the internet, I have believed that there should never be the idea of a limited, cut-down version.

And even if I believed that the cut-down “mobile internet”‡ ever made sense, it is long past the time to have forgotten it.

†And I’m old enough to remember the days before the web. And the days before gopher.

‡For all its faults, as I recall, WML had some nice improvements over HTML when it came to forms.

12 September 2015

Dragon+

Wizards of the Coast has an iPad electronic magazine called Dragon+. The app seems good. It would be a pleasure to read. Except their really nothing worth reading there. sigh

So...constructive criticism... Let me reรฏterate my review of the D&D 5e Players Handbook: Not enough backgrounds; too much of everything else.

Generally, I approve the idea not to publish lots of crunchy add-ons. But backgrounds can be as much creamy as crunchy.

That said, we know what happened with 2e kits. That said, I’m not convinced that is a reason to not do it rather than a reason to try to do it better.

But then, I’d prefer a book of backgrounds rather than trying to keep track of them in a periodical. Although I want to like Dragon+, I don’t really think magazines make sense anymore.

11 September 2015

Apple September 2015 post mortem

Assuming there will not be any more big announcements this fall, I like having them all at one event.

My midnight blue watch band has been ordered.

I will order the new Apple TV. We already use our Apple TVs a lot, and this one is better.

No new 4-inch iPhone. No anodized “iPod touch” blue iPhone. sigh No new feature that I’m not willing to live without.

With the old subsidy from AT&T, upgrading every two years was a no-brainer. My bill would not go down once my phone was paid off, so I would be paying for a new phone whether I bought one or not. But that’s not the case anymore.

(Actually, it isn’t entirely clear to me whether the subsidy with 2-year contract is still an option or not. Apple doesn’t show it as an option, but AT&T still lists that option with the current phones.)

The AT&T Next program—the payment plan that replaces(?) the subsidy—seems unnecessarily complicated, and I’m not sure I like it. Since I usually hand my old phones down to someone, I don’t want to be locked into a trade-in. And what if something happens to my phone so it isn’t in acceptable trade-in condition? It may be great for someone who upgrades every year, but it doesn’t look great to me...yet.

And now there is Apple’s iPhone Upgrade Program, which I haven’t seen enough details about.

So, at the moment, I’m not planning to get an iPhone 6s.

I think I will get an iPad Pro. For graphics editing and music, I think I’ll find the larger screen useful. For running RPGs and some other things, I think side-by-side apps on the iPad Pro will be useful. I am confident it won’t replace my iPad Air 2. It will just occupy use-cases between my iPad and my iMac.

For me, I’d rather have an iPad Pro than a MacBook Air. After all, my favorite drawing app (InkPad) and my favorite word processor (UX Write) are iOS apps without Mac equivalents.

(And after comparing the size of the iPad Pro to my clipboard—see previous post—it seems like the size I’ve always wanted a tablet to be.)

I’m also planning on getting an Apple Pencil. The iPad Pro + Apple Pencil looks to be about the same price as a 13-inch Cintiq. But a Cintiq is just an accessory to a computer, not a stand-alone tablet. (There are certainly advantages to a Cintiq over the iPad Pro, but still...)

The new Smart Keyboard...I’m not currently interested in. I’ve been pretty happy using a Bluetooth keyboard with my iPad. I’ll try it out the next time I get to an Apple Store.

How big is the iPad Pro?

The iPad Pro is big, but let’s put that in context.

The clipboard I use is 12×9 inches.

The iPad Pro is 12×8.7 inches.

A US-letter size sheet of paper is 11×8.5 inches.

(With 1-inch margins that becomes 9×6.5 inches.)

The iPad Pro screen is 10.3×7.7 inches.

The iPad Pro screen is roughly equivalent to US-letter size paper with ⅓ inch margins.

02 September 2015

Why I didn’t back LightLead

I considered but didn’t back the LightLead Kickstarter.

Price is not an issue. I’ve had so many instrument cables fail that I’d pay $55 for a 15″ cable if I know it is reliable. And a LightLead has advantages over a traditional cable. While I may not have experience with LightLead to know that it would be reliable, it would be something I’d be willing to take a chance on.

The biggest issue for me is batteries. I’m an amateur musician. (Well...except for that one paying gig.) As much as I might try, I don’t get a chance to play every day. When I do get a chance, I don’t want to deal with figuring out what batteries might have failed. I avoid active pick-ups. I avoid effects that can only run off batteries. I don’t want batteries in my cable. If there were some sort of “phantom power” option, then I might have considered LightLead.

(What I’m imagining as a better way to power it is a small box between the amp and the LightLead that has a power input. While this would mean running some copper alongside the fiber in the LightLead, I assume copper for power has less issues than copper for an instrument-level audio signal. The box could still isolate the circuit that powers the instrument end of the LightLead.)

01 September 2015

What I hope to see from Apple (Fall 2015)

What I hope to see from Apple this fall:

A new 4-inch iPhone. While the iPhone 6 may have brought new customers to the iPhone (and brought some old customers back), it would be foolish to, at the same time, lose the customers that were happy with the smaller phones. So far, I have upgraded my phone every “s” year. I don’t want a bigger screen, but—depending on what else is on the table—I may still upgrade. I’m hoping, though, that I won’t have to weight a bigger screen against other factors.

Better colors. The iPhone 5c was a success by any sensible measure. Imagine how much better it could have been with decent colors. Even among the people I know who have and love their 5c, nobody seems to really love any of the colors.

I’m very curious about a bigger iPad should one finally appear. I tend to agree with John Siracusa that, in many ways, the iPad represents the future of personal computing. While conventional personal computers will always be around (and I’ll always have one), more and more of our personal computing should move towards appliances like the iPad.

There are so many creative endeavors that don’t require a keyboard. That said, using the on-screen keyboard isn’t so bad. A few weeks ago I wrote an actual, useful C++ program on my iPad using the on-screen keyboard, Textastic, and codepad while at my daughter’s martial arts class. I didn’t feel as if I was doing this in spite of the system. The only slightly frustrating part was the process of copying the code, switching over to Safari, and pasting it in codepad. (A fully solvable issue.) I, personally, would have been much more frustrated trying to balance a laptop on my lap and hunch over it. And I think we’ve only scratched the surface of the kind of code editing we could do on an iPad.

Of course, a real keyboard works beautifully with my iPad. For me, the ability to add a keyboard when I want it trumps having to deal with one when I don’t.

I’m not convinced there is ever any need for an iOS mouse. Even on my iMac I have (surprisingly) found I prefer Apple’s track pad over their mouse, and an iOS touch screen can do pretty much anything a track pad could. Tyype has long done a great job of this. I hope iOS 9’s “Easy text selection” brings that to most apps.

A bigger screen could be great for some games, music applications, and graphics applications. And iOS 9’s long-awaited Split View would be even better with a larger screen. But being bigger could be more awkward for a hand-held device. At what point does it make more sense as a drafting-table-like desktop device rather than a hand-held?

I don’t think a bigger iPad would replace my 9.7-inch iPad, which increases the chance of the data I want not being on the device I’m using. The “cloud” helps with that some, but it doesn’t make it go away.

While I’m excited for a new Apple TV, I also fear Apple going overboard with it. I often find the gesture-based Remote app more frustrating than the simple buttons of the physical remote... (although the app beats the remote for text entry) ...so I’m not excited about a touch-enabled remote. And as much as I like Siri on my phone and watch, I’m not so sure about it with my TV.

But I’m prepared to recant all of this once I see what they have to offer and get to play with it. ☺︎

13 August 2015

A note about C++ std::accumulate

For any C++ programmers...

When using std::accumulate, the return type is inferred based on the third parameter. So be sure that the third argument is the same type you expect it to return. See this example.

(For some reason codepad’s C++ compiler complained about using 0ULL, so I used static_cast<uint64_t>(0) instead.)

29 May 2015

Dear Fender...about the amp section of your site

I couldn’t find a way to submit website feedback on the Fender site, so I’m posting it here.

On 29 May 2015, I got a marketing e-mail from Fender entitled: The Ideal Amp For Your Sound. Here’s a brief outline of the contents:

  • The ultimate amp for creativity
    Mustang™ I (V.2)
    ...easy to record, edit, store and share your music.
  • Affordable onstage versatility
    Champion™ 40
    ...an ideal choice as your first stage amp.
  • Beautiful acoustic amplification
    Acoustasonic™ 90
    ...perfect for the acoustic guitarist...
  • The standard for gigging guitarists
    Blues Junior™ III
    ...ideal for the go-anywhere guitarist who needs to hit the stage or studio at a moment’s notice.
  • Clear, deep and powerful
    ’68 Custom Twin Reverb®

This is great! (And the full e-mail was even better without being too wordy.) It’s a real shame that—as a marketing e-mail—so few of your potential customers will receive this. And even for most of them, it will likely end up in their spam folder.

This is exactly what I should—but never have—found when I go to your web site and click on amplifiers. The site is great for someone who already knows your products. It does nothing, however, to help the customer who is trying to figure out what Fender amp is right for them.

I usually spend a while digging around trying to figure out why I might want one of your amps over another...but I end up frustrated and none the wiser for my time investment.

Make this e-mail the starting point for the guitar amp section of your site.† I’m sure you could make it even better. (If nothing else, the Twin Reverb® section doesn’t say what sort of guitarist it is good for like the other sections do.) Then back up each of those selections with another page that explains what other Fender amps that kind of guitarist might also consider and why.

(†Don’t lose the navigation that allows those who know what they want to go directly to it, of course. That’s a strength that you want to keep.)

13 May 2015

The information age

I was about thirteen when Mandelbrot’s The Fractal Geometry of Nature was published, and I wanted to read it. I checked the school libraries. I checked the public library. I asked bookstores to order it. I had my dad check the University of Houston library. All to no avail.

Today, I was reminded of it, did a quick search, and bought the e-book version.

I will not be surprised if it contains nothing that is, today, available freely on the web.

22 March 2015

Rust monster

The rust monster is one of those D&D monsters that is interesting because it requires different tactics than usual.

Well, it has the potential for that to make it interesting. When the PCs encountered one in my Skylands campaign, standard tactics worked just fine, and the PCs never saw its special ability in action. The character with the highest AC—who might have been reluctant to attack if he’d known what a rust monster was—took it on essentially by himself. The rust monster never scored a hit.

The rust monster presents two dangers: One to metal armor and one to metal weapons. Let’s look at weapons first.

I was using the Rules Cyclopedia description, which says...

A successful attack roll indicates that the rust monster’s body is hit, which does not harm the weapon.

I see now, however, that Moldvay wrote...

If a character hits a rust monster, or if a rust monster hits a character with its antenna, it will cause any metal armor or weapons touching it to immediately rust

If I had used the Moldvay description, the players would have discovered the danger to weapons.

We could do a middle-ground approach. Only the antenna cause rust, but give each attack against the rust monster some chance of hitting the antenna instead of the body. And allow anyone who is specifically avoiding the antenna to do so with at a penalty.

But that’s more complication than I want. So I’ll run rust monsters the Moldvay way in the future.

Aside: So often when I find a difference between another edition (or a retro-clone) and Moldvay/Cook/Marsh D&D, I prefer the latter. It’s the organization, though, that has me using the RC and the Creature Catalog at the table.

To me, the rust monster’s danger to armor, however, is the more interesting aspect. Once the danger is realized, it is easy enough for the PCs to change weapons. It is harder to change armor. But that danger is never realized if the rust monster can never land a hit.

I’m not a big fan of “touch AC” as a generalized rule. I want characters to have a single armor class as much as possible.

Using “touch AC” as a special rule for a specific monster, however, I think fits in the classic D&D style. So I’m liking the idea that a rust monster’s attacks ignore armor.

(Thanks to everyone one G+ who participated in the discussion about this back in December.)

21 March 2015

Size-based combat modifiers in D&D

(Here’s a post I started a long time ago. My group has started up another 3e campaign, though, so time to finish it up and publish it.)

In 3e D&D, a “small” creature gets a +1 to attack rolls (which makes it easier for them to hurt others in combat) and a +1 to Armor Class (which makes them harder to be hurt in combat). Conversely, a “large” creature gets a -1 to attack rolls (which makes it harder for them to hurt others in combat) and a -1 to Armor Class (which makes them easier to be hurt in combat). Bigger and smaller creatures have larger and smaller modifiers in the same vein.

Here is the relevant section from the d20 SRD

The problem here is that 3e often falls for a fundamental mistake about how the underlying combat system works. The attack roll was formerly called a “to hit” roll, but if you analyze the entire system, you see that thinking of this roll as actually determining whether an attack made contact doesn’t really make sense. Attack rolls, armor class, damage rolls, and hit points really have to be treated together as an abstract system.

If you say that because larger creatures are easy to hit than smaller creatures and thus give the larger creature a penalty to Armor Class, you haven’t really represented that larger creatures are easier to hit. What you’ve done is made the larger creature less effective in combat. The D&D combat system doesn’t answer the question of whether an attack hits. It answers the question of how effective each combatant is.

You can say that adjustments to constitution scores, hit dice, and hit points make up the difference. In truth, however, they really don’t.

It might work, however, to reverse the modifiers. Giving small creatures a penalty to attack rolls and AC would make them less effective in combat, which is what I would expect the general rule to be. Giving large creatures a bonus to attack rolls and AC would make them more effective in combat, which—again—is what I would expect the general rule to be.

20 March 2015

How not to sell car insurance

The Internet is for ranting about things you find offensive, right? And this blog is about “thinking out loud”...

A car insurance commercial that implies that today “men are superior drivers” is an idea that would be entertained as anything but pure stupidity offends me.

Also, trying to use a logical fallacy to dispute stupidity. (i.e. If group A really were superior drivers, group B could still contain good drivers.)

Also, a commercial that tries to refute a sexist sentiment by changing a woman’s voice into a man’s voice.

The thing more surprising than this thing actually being aired is that it is still being shown.

19 March 2015

Gold Apple watches (revisited)

A gold Apple watch will not be useless in two years. It will likely be able to perform the same function that other gold watches do—show the time—as long as the battery can still be recharged. It may not last as long as a comparably priced mechanical watch, but neither will it be worthless as soon as a cell phone. (And just because many people buy a new phone every year or two, that doesn’t mean that lots of people aren’t happy to use them longer.)

It seems that the amount of gold in a gold Apple watch is likely a very small fraction of the price. I think, however, that the point that Apple products tend to hold their value well stands. They probably won’t hold their value as much as a Rolex, but I expect them to hold their value at least as well as an iPhone.

11 March 2015

Magazines

When I (often) say that magazines make no sense today, it really isn’t for the reasons people seems to assume.

For instance, it has little to do with economics. (Or...at least...basic economics.)

Today each bit of content can be published individually. It can be searchable & updatable. Instead of being collected based on when it was published, it can be linked together and cataloged in thousands of different ways at once.

There is no denying that there are people who are passionate about magazines and who are still producing some compelling works. But from a strictly functional perspective, I don’t think they make any sense.

10 March 2015

Wish list: HEMA video game

I backed CLANG, but in the end, I don’t think I’ll ever be very satisfied with a motion control sword fighting game.

What I’d really like is a HEMA-based game along the lines of Bushido Blade.

09 March 2015

IPhone and sentences

The word “if” is not normally capitalized. If it comes at the beginning of a sentence, however, it is.

The word “iPhone”, despite being a proper noun, is not normally capitalized. IPhone, when it is the first word of a sentence, however, ought to be capitalized.

08 March 2015

The problem with Google search

Google and blogs

Google changed everything by creating a search engine that was resistant to gaming the system. The problem is, of course, that users don’t pay to use it. And Google is a for-profit business. It was only a matter of time before it stopped serving the interests of its users. Users are no longer the customers; they are the product.

07 March 2015

Limited only by your imagination

Role-playing games are limited only by your imagination.

It is humbling each time you realize that what you saw as the game’s limits were really limits of your own imagination.

06 March 2015

WWJD

What would Jesus do?

Not to knock the sentiment behind it, but I’m not sure that...really...that’s a question we should be asking ourselves. I’m not convinced Jesus was meant as an exemplar as much as a teacher.

e.g. If Jesus is God, and if He told us that we are not to judge because to judge is God’s place, not ours... Then what we should do is different than what God, and therefore Jesus, does. Perhaps God as Jesus meant to be an exemplar and thus limited Himself to doing what we should do. But are we sure.

shrug In the end, I guess I find that kind of line of argument unpersuasive per se. We shouldn’t get so caught up with logic puzzles as much as trying to understand what the gist of the message.

In any case, when reading scripture, I tend to pay more attention to what it tells us Jesus said than what it tells us He did.

05 March 2015

Jesus and fundamentalism

Jesus spoke out against the ways of the fundamentalists of his time. But he never taught that we should directly oppose them. His teaching is that I should concentrate on doing the right thing and not waste time judging others.

(The best I seem to do is that I sometimes keep myself from expressing my judgements. I am still working on the actually not judging.)

So, I have come to accept that fundamentalism is always going to be there. Because the fundamentalists are vocal, they are going to widely been seen as exemplars of the faith even though they are not. That is not for me to correct, as much as I might want to. The task laid for me is not to fight that but to simply worry about my own path.

Doing so, I can sow seeds among those who I have direct contact with. But sowing the seeds is not the purpose but a side-effect. If I am making choices in order to sow seeds, I am not sowing authentic seeds. When I concentrate on my path, then the seeds will sow themselves.

04 March 2015

Spelling reform

The problem with those who are argue for English spelling reform is that they think everything should be spelled the way as they pronounce it. But not every native English speaker pronounces everything the same way. Arguably, one of the primary reasons English spelling became more uniform was so that speakers from different areas (even within the same country) could read each other’s writing.

03 March 2015

The Pebble Time

While I am planning to get an Apple Watch, there is a lot to like about Pebble. And their next one looks even better.

Pebble Time Kickstarter

02 March 2015

Maker Shack

(The usual “catching up on long waiting blog drafts” once again means this about old news...)

The Rise of RadioShack

Radio Shack was the “maker store” of my childhood. Too bad they didn’t manage to adapt to serve today’s maker scene.

01 March 2015

Gold Apple Watches and upgrades

I don’t think a solid-gold Apple Watch needs to be upgradeable. Because it is solid-gold. Gold never becomes obsolete. There are companies that will pay you a significant portion of the original purchase price for your year-old iPhone so you can upgrade. There will certainly be companies that will buy a year-old, solid-gold Apple Watch for an even more significant portion of your original purchase price so you can upgrade.

(Of course, we’re talking about subsidies with the phone, but still...solid gold.)

Edit: follow-up

28 February 2015

Apps for RPG judging

Here are some of the iOS apps I have used when running role-playing games.

Goodreader: Good reader is a PDF (and other types of files) viewer. You can have several PDFs open at the same time and easily flip between them. It now even lets you have multiple tabs viewing different pages in the same PDF. You can add your own bookmarks to PDFs that lack them.

I have even used the annotation features to stock a map, which works OK.

Evernote: I have an RPG notebook in Evernote. I have tags for monsters, encounters, treasures, house rules, campaign ideas, setting ideas, preparation tips, and more.

UX Write: All my campaign notes are stored on Dropbox. UX Write is my word processing app of choice for viewing/editing them on iOS. One of the nice things about UX Write for this is its automatically populated outline that makes it quick to jump to the part of a document you need.

Dropbox: Besides keeping all my campaign notes in Dropbox, I also use it to share documents and images with my group. e.g. When the PCs discover a map, I may hand them a paper copy, but I also pull up the Dropbox app and copy it from my campaign notes into the shared folder.

Battle Map 2: I’ve experimented with using Battle Map 2 on a TV. Also used it a few times when one or two players were telecommuting to a game. It worked OK, but it wasn’t great.

Hex Map Pro: I’ve tried using this one on a TV too. Also wasn’t great.

Old School: This is an app for planning and running classic D&D combat encounters. I have only actually used it a couple of times, but it worked well.

Lotto Machine: This was created to randomly pick lotto numbers. You tell it the range of possible numbers and how many to choose. You have six PC and need them in a random order for some reason? You can make everyone roll a die and reroll ties. Or you can tell Lotto Machine that you need 6 numbers from 1 to 6. Need to randomly pick three of the PCs for some reason? Ask for 3 from 1 to 6.

InitiativeBoard: I haven’t actually used this one yet, but it looks handy for tracking individual initiative in any game.

An RGP koan?

“What can a mage do once they are out of spells?”

That isn’t a question about the game. Answering that (and similar) questions is the game. That is what makes role-playing games different from conventional games.

18 February 2015

Role app

Role is an iOS app (Android version “coming soon”) designed to aid in the playing of a traditional role-playing game.

The app is based on its own system. You can download a copy of it off their web site, and you could easily play it without the app. You can get a bit lost with just the app, so it may be worth reading it before trying to play with the app. (Although, it may be more likely that you get lost in the app because you’re expecting more than is there rather than not understanding the system.)

This system is very light. It is very similar to Risus without the emphasis on humor. So no complaints there.

The app itself doesn’t really do much, though. About all it does is “roll the dice” for you; determine failure, success, or critical success; and track XP. As it currently lacks the ability to save your characters or adventures, it is really hard to see the point. And you might think that the app would communicate and coรถrdinate with the other players’ apps, but it doesn’t. It does nothing to make the GM’s job easier that Notepad doesn’t do. There may be potential here, but it is severely unrealized thus far.

(And rolling actual dice is a huge part of the fun for me.)

They are positioning it as a “party game”, though I don’t think that excuses the lack of saving. That does seem to be one of the features they are working on, though.

It has a few character templates and more that can be purchased. There is very little to making a character here (make up three skills) so the templates don’t really seem to be much value. On the other hand, a free-form system like this really benefits from examples. shrug The templates seem so intent on supporting any genre that they come across as supporting only a very specific kitchen-sink genre. I personally didn’t find them inspiring.

There are also a few adventures and a few more to purchase. They have, however, too much setting and not enough adventure. Especially considering the apparent aim towards one-shots over campaigns.

It is nice to see an app that aimed to support very traditional role-playing in the “no miniatures” mode. But basic functionality (e.g. saving) is missing, what they have needs to be refined (e.g. genre-specific character templates and a bit more depth to the adventures), and they need to figure out how such an app could really help the GM.

01 February 2015

Reliable

I have come to depend on my iPad both when running and when playing RPGs.

10 January 2015 was the first time I was getting ready to run a game and found myself thinking about having contingencies in case my iPad had issues.

My iPad Air 2 is undoubtedly the best iPad I’ve had yet. Except it doesn’t feel as reliable. Too often, in the few months I’ve had it, it has locked up or spontaneously rebooted. Once it appeared completely dead for a while.

Is it iOS? Is it the iPad Air 2? Is it a flaw in just my particular iPad? Is it the extensions I’m using that iOS has enabled? I don’t know.

(System extensions were always the biggest culprit of technical issues on the Mac. As happy as I am with the extensibility iOS 8 has enabled, I’m less happy to have the uncertainty that comes with them.)

Of course, the iPad is still the tablet that has most met my expectations.

31 January 2015

C sizeof structure member

Something I don’t think I’ve run into with C before.

It can be so hard to come up with a sensible example. So just ignore whether you think I should be doing this. Assume that something similar made sense in context.

typedef struct Foo {
    char uuid[37];
    int value;
} Foo;

char main_foo_uuid[sizeof(Foo.uuid)] = "";
//Compile error!

Doing sizeof(Foo) is fine, but sizeof(Foo.uuid) is not.

One solution is do declare a dummy instance of Foo.

Foo dummy;
char main_foo_uuid[sizeof(dummy.uuid)] = "";
//Works!

But there’s a trick to avoid declaring the dummy: Cast NULL to a pointer to Foo, and use that as your dummy.

char main_foo_uuid[sizeof(((Foo*)NULL)->uuid)] = "";
//Works!

Which makes you wonder why the language couldn’t just support sizeof(Foo.uuid).

30 January 2015

Proto rule zero

Rule zero over the years

That is a good article.

Though I think “rule zero”—in some sense—actually predates D&D.

On the Pied Piper forums; Mike Mornard, Rob Kuntz, and Gary Gygax talked about Chainmail games where rulings were made on-the-fly to deal with things players wanted to do that were not covered by the rules. Such as setting fire to the woods enemy units were holed up in. Mike in particular made the point that “what is not forbidden is allowed” was the way the Lake Geneva wargamers played before D&D.

Unfortunately, those PPP forums seem to no longer be online. (And the PPP forums may have had multiple incarnations.)

29 January 2015

Runequest Archive Products Being Retired

Runequest archive products being retired at OBS

This is extremely myopic. One of the great benefits of e-books is that books don’t have to go out-of-print and (potentially at least) become hard-to-find.

What is the message they’re sending to customers who would like to buy these books? If someone wants to give them money for these products instead of (or in addition to) the more recent books, that customer doesn’t care why they’ve been “retired”. They just hear, “No, we don’t want your money.” At best.

28 January 2015

User friendly

A Brief History of User Interface

That is a great video, and nothing here is meant as criticism of it. After all, it is meant to be brief.

It always bothers me a bit, though, when the fact that there was user friendly software before the windows/mouse GUI gets glossed over. The GUI was undeniably a big paradigm shift. (Being graphical by default, discouraging modes, being more event-driven, being more consistent, &c.) But there were plenty of people who wanted to—and did—make computers more accessible before it.

27 January 2015

Other people’s code

Programmers dread reading code written by another programmer. Why is it so hard to read other people’s code? I don’t know, but here are some thoughts.

In C, it is because of the limited ability to express abstractions. Code of any complexity tends towards using function pointers and macros and other techniques that obscure things.

In some languages, like Perl, it is because everyone uses a different subset of the language. In the extreme case, this can also mean completely different styles of programming in the same language.

With some languages, like Scheme, it is because the ability to build powerful abstractions means that code of any complexity essentially becomes another language embedded in the original. To understand the code, you have to learn this new, project-specific language.

26 January 2015

Winter NAMM 2015

Products that looked interesting to me while watching the Winter NAMM 2015 coverage...

Digitech Trio: The Trio puts the old Band in a Box software into a pedal along with chord detection. So, instead of programming the chords and rhythm by hand, you just play the chords and rhythm, then the BiaB bassist and drummer join in.

Note that the BiaB software is fairly sophisticated. It will play fills. It will play busier parts at slower tempos and sparer parts at faster tempos. It could also do keyboard parts, so maybe we’ll get a Quartet pedal in the future if the Trio sells well.

So far, I only saw one demo where they talked about what the optional external footswitches do, and the choices seemed questionable. I hope that will be configurable.

It seems like there would be some potential for a pedal like this that was also a looper. Or maybe they could make it support the same sync feature as the Digitech loopers.

The Eric Johnson Tone Capsule: I’d already been impressed by what I’d been hearing about the new Blues Cube amp. It turns out that they have a socket on it that you can plug a “tone capsule” into. This one is designed to tweak the amp to make it deliver something closer to EJ’s tones.

The fact that it glows and looks like a tube is awesome.

So far, it doesn’t look like there’s anyway to get the BC’s original tones without unplugging the tone capsule. It would be nice if you could have the original tones and the tweaked tones all on tap.

IK Multimedia iRig PowerBridge: This is a great idea. A single solution to charging an iOS device while having an audio or MIDI interface connected.

The downside is that the Mini-DIN connector they’re using probably means it is only compatible with IK’s on interfaces. You’d really like it to have a Lightning connector like Apple’s HDMI adapter. I’m guessing Apple makes that option impractical for them. The next best choice would be USB. But that might still make it more expensive and more complicated.

You can argue that it is in IK’s interest to make it only work with their own interfaces. I disagree, but...shrug

Z.Vex Pedal Thief: Allows you to swap an effects loop between a mic and a guitar. I’m thinking this will be handy to use with loopers that don’t have multiple inputs.

Big Ear N.Y.C. More More More: Three boosts in one box.

Mooer Wahter: What’s cool about the Wahter is that it is a compact wah pedal with fold-out sections to make it more compact while travelling. I hadn’t seen that before.

Boss ES-8: I have to wonder why Boss didn’t already have a switching system for pedals like this in their line. I also wonder if it really is a “game changer” compared to similar systems that were already available. But it does look very nice.

It is a bit disappointing that it doesn’t appear to have a lot of support for stereo pedals. Loop 7 has a mono send and a stereo return, and loop 8 has stereo sends and stereo returns.

I think these are all the (single size) Boss pedals that have stereo in: DD-7, RV-5, TE-2, RC-1, and the RC-3. Although you probably don’t want both an RC-1 and an RC-3 in the same rig, you might want all of them and all the others. The TE-2 strikes me as a very special purpose pedal, so I think you’d want a DD-7 along with it. Lots of people like to have at least two DDs set to different delay times. With the ES-8, you’d have to put all of these in loop 8 or put them after the ES-8 outputs. Either option means you aren’t getting the biggest benefit of the ES-8.

Looking at pedals with mono in and stereo out: DM-2W, DD-3, BF-3, CE-5, CH-1, MO-2, PS-6, OC-3. You have much fewer options using these with the ES-8. Only one of these can go into loop 7 in stereo mode.

Still, for most guitarists that probably isn’t as big an issue as I’m making out of it. Mono is plenty for most guitarists.

Fender Limited Edition Sandblasted Telecaster: Looks pretty nice. I’m a sucker for Teles and anything blue. But what looks even nicer is...

Fender Special Edition David Lozeau Art Stratocaster, Dragon Art: Blue and a dragon.

Reverend Descent Baritones: Reverend has some cool guitars, and baritones always catch my eye.

Antares ATG-1 Floor Processor: This was originally announced and “coming soon” in...what...2012? I still plan to buy one as soon as they’re available. I stopped holding my breath years ago.

25 January 2015

Rude

Thoughts occasioned upon hearing the song “Rude”...

...or “You keep using that word; I don’t think it means what you think it means.”

There is nothing rude about giving an honest opinion when asked for one. It is rude, however, to dismiss someone’s opinion after asking for it just because it wasn’t the opinion you thought they should have.

If you were going to “marry her anyway”, then you shouldn’t have asked.

I’m not going to say that you have to have her father’s blessing to marry her, but since you asked for it, I have to assume that it is important to you. So perhaps you should consider striving to understand his objections and commit yourself to winning his approval. Rather than simply ensuring that he will never respect you.

24 January 2015

Toon house rules

In prepping to run Toon, the cartoon role-playing game, I came up with a few alternate rules.

This one is straight from the Tooniversal Tour Guide: When a character falls down, instead of the player sitting out for three minutes, they lose three turns.

Not really a rule...just a way to keep track of lost turns. When a player or character loses turns, the Animator hands the player one token (like a poker chip) for each turn lost. When the cycle of turns comes back to that player, they hand in one token.

When a character successfully Dodges a Fire Gun, there is a 50% chance of ricochet. (Normally it is either zero or always depending on whether you’re using the “superstar” rule.)

Each session each player may hand out one Plot Point to another player’s character. Players don’t have to hand out this Plot Point, but they don’t get to save it past the end of the session.

The animator makes all Tracking rolls. The Animator makes two rolls. If the 1st roll succeeds, the 2nd roll is ignored. If the 1st roll fails, the 2nd roll is consulted. If the 2nd roll succeeds, the character knows they’ve lost the trail. If the 2nd roll fails, the character thinks they’re still on the trail, but they’re actually on the wrong trail. (This is slightly different than the original superstar rule.)

There will probably be more as we play it more.

23 January 2015

Thought upon second watching of Malificent

So, the fae gave Aurora the gift of always being happy and graceful. If they’d just done that for Stefan...

22 January 2015

Voting on our next RPG

(This is only incidentally about RPGs and mostly about voting methods.)

I took the opportunity of choosing the next RPG my group would play to try out an instant-runoff election. Which has also led me to learning more in-depth about voting methods.

The first thing to say is that this election is a bit weird because there are more candidates than voters. The second thing to say is that any election method used with three or more candidates has to make compromises. There is no perfect solution.

The actual voting was conducted via OpaVote. Each voter had to rank the 11 choices from most favorite to least favorite.

Instant-runoff voting (IRV) was probably a poor choice for this particular application, but it worked for picking the first-place winner. One of the criticisms of IRV is that it can fail to elect the Condorcet winner when there is a Condorcet winner. A Condorcet winner is a candidate who would beat all other candidates in one-on-one contests. In this case, there was a Condorcet winner, and the IRV method choose it.

I then tried to rank the other candidates by removing the winner and running the election again. This seemed to work OK for the first-, second-, and third-place. Then I started to run into one of the limitations of IRV.

Say you have three candidates: A, B, and C. Four of the voters choose A as their first choice, B as their second choice, and C as their third choice: A>B>C. Three of the voters vote: B>C>A. The last three vote: C>B>A.

A wins the first IRV round. One of the first-round losers needs to be eliminated for the second round (the runoff). The losers, however, are tied. If you eliminate B, then C wins. If you eliminate C, then B wins. If you eliminate both B and C, A wins. But B is the Condorcet winner who would beat both A and C in one-on-one races. The OpaVote IRV method chooses to break these sorts of ties randomly, which seems insane to me.

In practice, the larger the number of voters, the less likely you are to run into this. With a small number of voters, however, it becomes more likely.

The problem with just choosing the Condorcet winner is that there isn’t always a Condorcet winner. There are various methods that use Condorcet and then use some sort of “completion rule” if there is no Condorcet winner. Two of the best seem to be ranked pairs (Tideman) and beatpath (Schultz). Both of these also have the ability to rank all the candidates rather than just declaring the first-place winner. Due to my small number of voters, though, even these had to declare a five-way tie for third place.

So, I came up with my own way to break the tie. (Although, no doubt, this is an already known method. Perhaps Condorcet-IRV?) I ranked them by largest number of votes in the most preferred rank. e.g. Two voters picked D&D3e as their first choice, but no voters had chosen any of the others in the tie as their first choice. So, I gave third-place to 3e. (Which was where it placed in my IRV-based ranking attempt too.)

So, the final ranking I came up with is...

  1. Toon
  2. Shadowrun
  3. D&D3e
  4. Forbidden
  5. Dragon Age
  6. Star Frontiers
  7. Dragon Warriors
  8. Dungeon Crawl Classics
  9. Lejendary Adventures
  10. Lords of Creation
  11. SLASH!

I should also mention the Borda method. I’ve been aware of it, but I’ve never been particularly fond of it. Although I think it might have potential if the scores were calculated differently. It favors “broadly acceptable” winners rather than majority winners. Though there is an argument that that might be appropriate for this case. Here are the Borda results... (There were a couple of ties.)

  1. Shadowrun
  2. Toon
  3. D&D3e and Star Frontiers
  4. Dragon Age
  5. Dungeon Crawl Classics and Forbidden
  6. Dragon Warriors
  7. Lejendary Adventures
  8. SLASH!
  9. Lords of Creation

I’m now much less of a fan of IRV than I was. I think I agree with those who say a Condorcet winner, when there is one, ought to be the overall winner despite the drawbacks of the Condorcet methods. I am undecided on which of the completion rules I prefer.

The ironic thing that kept hitting me while reading about voting methods is that you could have a vote to choose a voting method.

Besides OpaVote, Eric Gorr’s Condorcet calculator was helpful in trying different counting methods.

08 January 2015

What is great about C++?

There is plenty that is not great about C++, but I do enjoy the language. So I wonder why. This may be a reason.

A myth from Stroustrup’s article on C++ myths: “For efficiency, you must write low-level code”

You can say that often people over-emphasize efficiency. You can certainly point to places where C++ has failed at this or where the implementations have not yet lived up to the promise. But C++ does demonstrate that you do not always have to trade efficiency for abstraction.

07 January 2015

Magic in RPGs: Effects > mechanics

Five problems with magic in D&D

I’ve written about some of the things in this article before, but this is the bit I want to talk about today:

If your first answer was “a person who casts one spell, then has to sleep before re-memorizing it out of a book no matter how many times he's previously cast it”, then you're almost certainly someone that plays Dungeons & Dragons, and for one reason or another never bothered to question why magic works the way it does.

When I think about wizards, what pops into my head? Someone who is reluctant to use magic.

This is possibly the most common theme in stories about magic. Characters who use magic are either evil, reluctant to use magic, or both. Or the whole point of the story was that they should not have used magic when they did.

Too often magic in RPGs is criticized based on its mechanics rather than its effects. I don’t care that the mechanics of magic in Decipher’s Lord of the Rings RPG didn’t match the mechanics of magic in Middle-earth as described by Tolkien in his letters. What matters to me is that they made the effects of the magic system fit what is described in the books.

Now, I’m up for arguments about mechanics that might do a better job of getting the results you want. But first we’ll need to agree that magic in an role-playing game likely serves a very different role than it does in stories.

06 January 2015

Quagmire

Jon Peterson’s article on the making of a D&D module at TSR: Quagmire!

I’m not so sure that the process itself was so bad as the execution.

05 January 2015

JMAP

FastMail is proposing/developing a replacement for IMAP.

(IMAP is one of the protocols that many e-mail clients use to talk to e-mail servers. For instance, it is how my iPhone gets my e-mail for all my e-mail accounts.)

My first reaction was negative.

First, I’m not convinced that many of the innovations in e-mail are all that useful. Secondly, today’s climate seems so opposed to these kinds of standards, the seem stacked against it.

But IMAP has bigger problems than end-user features. IMAP has technical issues that keep it from being good at the things it does support. They’ve convinced me that JMAP makes sense.

The bigger issue here is that we seem to be moving further and further from interoperable standards. Companies claim that the standards keep them from innovating. But on the whole, I’m not seeing a lot of benefits to end users in trade for this lack of interoperability. Instead, lock-in seems to encourage companies to care less about what is good for their users.

I’m hoping JMAP will be able to buck that trend.

04 January 2015

Invalid and ubiquitous; D&D’s key innovation

Jon Peterson’s year-in-review linked to this article about mana that he had contributed to.

How could the concept of mana as a generic spiritual force become invalidated and ubiquitous at the same time?

That kind of thing strikes me as utterly normal.

The first modern role playing game, D&D’s key innovation was to combine the rule systems of tabletop wargaming with the setting of fantasy fiction and the interpersonal improvisation and role-playing that had been percolating in gaming and fan communities for years.

That may be the best, most concise explanation of what D&D did that I’ve ever read. It is clear (especially if you read Jon’s book) that all the elements were in play before D&D. D&D brought them together. Which ought to be unsurprising, because that’s how these kind of things usually happen.

03 January 2015

Available capacity

Over at iMore, they’d published a piece titled: “Apple sued for false advertising by plaintiffs that don't understand iPhone digital storage” It seems they’ve since removed or edited it. But I’m responding to it anyway.

Just because it is industry practice to advertise total capacity instead of available capacity doesn’t make it right. It makes zero sense to advertise any capacity other than what’s available for the user’s use. A number that is always some arbitrary size bigger than what is usable doesn’t tell the customer anything anything.

The fact that available capacity varies is no excuse. They just have to advertise a conservative value that they know will always be available for the user’s use. (Available at the time of sale. If a system update would take up all the headroom, the user can be warned about that before updating.) If things change more than expected so that new devices come with less available space than that conservative value, they need to update their specs and advertising accordingly.

Will that be expensive? I’m sure it will be, but cost is not an excuse for not being honest with your customers.

It isn’t just Apple that needs to change. It’s the industry.

02 January 2015

Jon Peterson

It is hard to understate the influence that D&D has had on computerized games. Today, gamification is bringing that influence to all kinds of software beyond games. It is surprising that more historians aren’t doing a better job of telling the story of D&D.

But Jon Peterson and those who have been working with him are doing some great work. His book, as good as it is, is quite a long read. But check out some of the shorter things he wrote during the last year in his 2014 year in review.