Chad Perrin: SOB

19 October 2009

I’m a Websense False Positive

Filed under: Geek,Metalog,Profession,Security — apotheon @ 01:42

Earlier today, I received word from a reader that the Websense filtering service is blocking SOB as a “Malicious Web Site”. There is, of course, nothing malicious about the code on this site. Some might consider some of my opinions “malicious”, or at least malevolent, in some ways — I guess. There’s no malware hosted here, though, or anything along those lines. In essence, there just simply isn’t anything to fear here as a security issue that isn’t a problem with millions of other WordPress sites across the Internet (stuff like “spaghetti code” and “PHP” — yuck).

I visited the Websense Contact Us Form (linked here so others can find it — it was an adventure tracking down this form), and sent a message to the Powers that Be at the Websense offices. I explained that I had heard about sob.apotheon.org being blocked as a “Malicious Web Site”, that there’s no malicious code here, et cetera. I asked for any more information about the situation they can provide. I also asked, of course, for the site to be removed from the Websense blacklist for “Malicious Web Sites”. I guess we’ll see how they respond now, if at all.

Of course, if Websense doesn’t handle this in a professional, courteous manner, and help me resolve the problem one way or another, I can probably make some predictions about the future, like The Amazing Kreskin. Given stonewalling, rudeness, the run-around, or any willful misrepresentation, my prediction would be that Websense will receive some extra publicity.

You see, I’m the primary security writer at TechRepublic these days, and false positives in many types of “security” software is a big pet peeve of mine. False positives in communications software, leading to the loss of potentially important communiques from legitimate friends and business partners, can cause more harm than just sifting through the bad to find the good by eye. I’m particularly peeved by false positives when some attempt to communicate of my own, through some communication medium like the Web, is the victim of false positives.

Now . . . with a blacklisting service, I expect there to be occasional errors. In this case, the real acid test will be how they deal with the report of a false positive. If the problem is corrected quickly and professionally, all is well with the world. If not, Websense will deserve any poor publicity it receives as a result.

Obviously, a security writer for TechRepublic is not going to be as big a deal as a technology writer for the New York Times, in the minds of hidebound corporate middle management, but I’m pretty sure that a well-known and respected online resource for IT professionals like TechRepublic won’t fail to touch a few would-be customers of Websense.

I just want to help my readers avoid making a bad decision in their choice of security software and services, after all.

addendum:

I’ve received a response from Websense. The company will, apparently, remove SOB from its filter list at some point in the next day. The problem has been solved.

18 October 2009

Two Tricks for Characterization

Filed under: Geek,RPG — Tags: , — apotheon @ 10:07

(TL;DR Summary: I have a Ruby script that generates random NPC information. It’s far from perfect, and very superficial. I’m working on ideas to add randomized inspiring personalia tidbits for helping develop NPCs with more depth on the fly.)

This is part of my RPG series of entries here at SOB. See the inaugural entry in the series for more details.

Creating NPCs with a sense of depth can be a difficult challenge for a GM sometimes. Even those of us who are good at it when we feel inspired can — and do — easily run afoul of dry spells. Little bags of tricks can collect in the dusty corners of three ring binders, hard drives, and our twisted minds, to help manufacture that depth. Questionnaires that one can fill out to get a sense of an NPC’s youth and family life, perusing newspaper headlines for ideas about formative experiences, drawing on the experiences and personalities of the people around us, and (unfortunately) trite cliches can all be counted among the tools in many GMs’ toolboxes when it comes to building an NPC that is more interesting than a set of stats, a physical description, and a facial tick or funny accent.

I’ve written a stupid little script (in Ruby, natch) that generates character stats, simple physical descriptions, and a couple other ephemera, for when I know I want an NPC but don’t necessarily know what I want. It’s handy for populating taverns and the like, sometimes. Sometimes, it gives me results that are less than strictly wonderful. It really is random, because I haven’t yet come up with a very good algorithm for getting things to fit together in a reasonable manner. Black women with blonde hair, green and violet eyes, and other (should-be) rarities come up all too commonly. Of course, I can always run it half a dozen times and pick out a bit or two from each result to create a whole NPC, if I want to change some details without having to think too hard.

There isn’t a hell of a lot of depth in most of the information, though. It’s superficial stuff, for the most part. Something like this doesn’t lend itself to rich characterization:

Male Dwarf Fighter
with cornrows of silver hair,
intense hazel eyes,
a sallow complexion,
a lean build,
and a vulgar demeanor

  ST  17
  DX  12
  CN  15
  IN  9
  WS  6
  CH  9

That’s exactly how the output looks. The best I’ve got going here is some naive stat prioritization for classes so you don’t end up with this Dwarf Fighter’s Strength being the 6 and his Wisdom being the 17. Other than that, it’s mostly just random, and worse yet it’s all superficial. I’ve been meaning to incorporate some more stuff, and work on a less naive stats-for-classes prioritization, but haven’t gotten around to it.

It’s difficult to come up with something I can produce with a random concept generating script that lends real depth to NPCs, though. I mean, sure, I could come up with a few character concepts with depth, but if I do that I might as well just use them rather than put them all in a database and end up with every eighth character having exactly the same background and motivations.

A couple of interesting possibilities for character depth inspiration that have occurred to me, though, are important objects and motivating emotions. Almost every character should probably have at least one object that’s important to him or her (even if he or she doesn’t physically have it at the moment), and almost every character should have one deep-seated value that motivates at least some of the character’s actions, with some kind of deep emotional underpinning. Perhaps a letter from one’s lost love holds a special place in one’s belongings, tucked between the pages of one’s spellbook, or perhaps it’s a four-leave clover found while playing with other children in childhood during happier days that is pressed between those pages. Maybe regret for having failed to reconcile with one’s father before he passed away taints one’s view of the world, or maybe a desire to prove oneself better than one’s origins makes one driven to excel — or to harass and demean those who remind one of unhappier times.

If someone doesn’t have any valued objects or deeply rooted emotional influences, that in itself should be a remarkable, powerful indicator of that character’s personality. What desolation is it that drives one to view the world so numbly? What did the NPC flee to pursue a path of renunciation of all worldly attachments? A distinct lack of such an object or emotional influence should perhaps come up very rarely — or maybe I should just settle on that when the script absolutely can’t come up with an object or emotional influence that I like for the NPC.

I think inspiration for these characteristics of an NPC’s personalia can be kick-started by randomly selecting from broad categories of generic objects and emotions — especially if one branches out from the obvious and boring. “Love” and “hate” are kind of lifeless, because they’re so overused, but shame and worry can be much more evocative. A letter or preserved plant, as I indicated above in my examples, is much less common and trite than a locket or a father’s sword. Sure, I’ll include the love, the hate, the locket, and the sword in my options, but such overused tropes will be heavily outnumbered by the less worn-thin alternatives.

I just need to remember to work on coming up with good lists of objects and motivating emotions some day soon. Wish me luck.

14 October 2009

Wound Points

Filed under: Geek,RPG — Tags: , , , — apotheon @ 01:23

(TL;DR Summary: This is my variant of the Vitality/Wounds optional rules for dealing with damage. It improves verisimilitude for d20-compatible game systems, as compared with the default Hit Point system. It’s also designed to be simpler and smoother than the Vitality/Wounds system as presented in Unearthed Arcana.)

This is part of my RPG series of entries here at SOB. See the inaugural entry in the series for more details.

In Introducing the Mage Class, Release Candidate 1, I mentioned that I’m using a variation on the Vitality/Wounds system presented in the D&D 3.5 Unearthed Arcana book. I first mentioned something about it more than a year ago — at least as far back as June 2008, in Damage Systems in D&D and Pathfinder and Making Combat Better with the 20+Nd9 Critical System.

The system has undergone a little bit of evolution in how I use it since then. The current form of it, which I developed while thinking about how to put together a listing of house rules to use in a new campaign, looks a little something like this:

Taking Damage

  1. Two stats on the character sheet that are relevant are Constitution and Vitality. Basically, “Vitality” is what we now think of as Hit Points. In that respect, it’s no different from the original Vitality/Wounds system. There isn’t a Wounds total as a separate stat on the sheet, though — there’s just Constitution. This is because, instead of treating the on-sheet stats as pools that can be depleted, I treat them as thresholds. More on that later.

  2. One takes damage as Hit Points. HP are recorded on the sheet as a positive number, rather than subtracted from a Hit Point pool. Some people already do this when tracking HP damage, simply maintaining a static HP pool total and a cumulative total of damage taken, though I think the vast majority probably maintain a static HP pool total and a second number that is that same total minus any HP damage taken so far.

  3. Any time a critical hit occurs, the HP damage gets assessed in two ways.

    • The HP damage is assessed as a Wound Point damage quantity, which is tracked as a cumulative number the same way as normal HP.

    • The HP damage is also assessed as a Hit Point damage quantity, added to the running total of HP damage taken, but before it is assessed it is multiplied by the critical hit multiplier of the weapon. More on that later.

    More on that later.

  4. If someone takes enough HP of damage to exceed his Vitality total, any additional damage is assessed as WP instead.

  5. When HP equals or exceeds Vitality, the character is unconscious. When WP equals or exceeds Constitution, the character’s life functions cease. In practice, the character is dead. More on that later.

Resuscitation

A character whose WPs equal or exceed his Constitution is dead. Of course, they might still be saved by use of magic or heroic lifesaving Heal checks. Every round after the WP total equals the Constitution score, another WP (and another HP, if the character hasn’t already taken as many HP of damage as his Vitality) of damage is automatically assessed, though, so such attempts to save the character should be made quickly.

Apply a -10 penalty to any Heal check made to resuscitate the character. If the result is enough to bring the WP total below the character’s Constitution, the character is healed by that many WPs. At that point, the point of damage every round suffered because of taking more WP damage than his Constitution score halts. Any bleeding damage, however, must be dealt with via a separate Heal check or magical healing attempt, or the character may take more WP damage and end up dying again.

Magical healing just applies to Wound Points as normal — so that any magical healing that can reduce Wound Point totals do so, and if the total is brought below the level of the character’s Constitution score, he has been resuscitated.

Whys and Wherefores

The following is just a listing of some reasoning for some of the decisions I’ve made in adjusting the Vitality/Wounds system.

More On Thresholds

One thing that programming has taught me is that data should not be stored in multiple places. This is particular to programs, of course — and says nothing about backups. Another such lesson from programming is that of simplifying the operations of a program so that, where possible, the same set of steps can be used to perform multiple operations. A character sheet is, in some respects, similar to a program. That similarity helped inspire me to reduce the duplication of data on a character sheet and unify the way different, but similar, operations are handled.

By using Constitution as a threshold for Wounds damage, rather than copying the Constitution to produce a new and separate Wounds stat, I’ve reduced the duplication of data on the sheet. By calling the Wounds damage Wound Points, I’ve made it a parallel with Hit Points, and by calling the total of the Hit Point capacity of the character Vitality and making that a threshold for a positive Hit Point number that accumulates damage taken, I’ve turned the potentially somewhat different pool-tracking Vitality and positive threshold use of Wounds into a pair of identically managed threshold values.

More On Critical Damage

The canonical Vitality/Wounds system in Unearthed Arcana suggests using critical multipliers as an adjustment to the threat range of the weapon. Doing so involved a bit too complex a bit of arithmetic to make it reasonable, though. It isn’t difficult arithmetic — but it is complex enough so that, in the course of play, it is likely to get ignored or fudged. The formula for translating critical multipliers into threat range modifiers looks, in its simplest form, like this (with CM standing in for the critical multiplier number, and TR standing in for the minimum number for the weapon’s threat range in the standard weapon stats; NTR is the new threat range):

NTR = TR - CM + 2

Given a Longsword, with a threat range of 19-20 and a multiplier of x2, that translates to:

NTR = 19 - 2 + 2 = 19

For a Handaxe, thats:

NTR = 20 - 3 + 2 = 19

It’s easy enough to make the necessary modifications to the weapon stats on a character sheet for weapons that are regularly used, but when picking up a weapon (say, during an escape from jail) or when a GM has to deal with off-the-cuff NPCs and random combat encounters, it’s too easy to get details like that lost in the shuffle. The problem, of course, is justifiable laziness. We aren’t playing the game for excuses to do extra arithmetic, after all.

More On Unconsciousness and Death

The way that damage is assessed to Vitality and Constitution by way of Hit Points and Wound Points allows for a character to fall unconscious without dying, if HPs reach the level of the character’s Vitality before the character takes enough WPs to die. It also allows for a character to die before falling unconscious by taking enough WPs in damage to reach the level of his Constitution without doing enough HP damage to knock the character out. It does all of this without having to introduce a separate system for determining whether a character falls unconscious.

Summary

The following is a summarized explanation of the system, and the way it’s currently described on the house rules description I’m putting together for the new campaign:

Hit Points are a measure of vitality rather than actual physical health. As a character tires out, takes bruises and scrapes, and starts lagging behind an opponent with superior skills in combat, his vitality is sapped, leaving him more and more vulnerable to life threatening wounds. A healthy vitality total is equal to the character’s total hit dice plus his constitution bonus multiplied by the number of hit dice — the same as for rolling up hit points when not using this damage system.

Any time a successful critical hit occurs, or the character takes enough hit point damage to exceed his vitality, damage is instead assessed to a wound point total. When the wound point total equals or exceeds the character’s Constitution, his or her life functions cease. Wound points continue to accumulate at a rate of one per round in addition to any cumulative bleeding damage; the character may be restored to life by making a Heal skill check. Any points in excess of 10 are compared to the total wound points, and if the number reduces wound points to below the character’s Constitution score, he or she is resuscitated. If not, the attempt has no effect. If the character is still bleeding, he or she may still die again due to wound points in excess of Constitution; stopping bleeding requires a separate Heal check.

Critical hits do normal weapon damage as wound points, but they also do HP damage using the critical multiplier as indicated in the weapon’s stats.

« Newer PostsOlder Posts »

All original content Copyright Chad Perrin: Distributed under the terms of the Open Works License