QuantityConversion DITA domain

Objective

Provide a data model for quantities (a value plus a unit of measure) that is similar to a glossary entry. By defining a quantity once, it can be referenced repeatedly as needed. Content can explicitly reference the quantity and alternative units of measure. Commonly, this would be instances where SI and US customary units must both be provided; for example, “The length of a football (soccer) pitch must be between 90m (100 yards) and 120m (130 yards)”.

Alternately, the element can implicitly call for alternate units of measure and localized output generators can provide the one appropriate one. Further, output generators can be configured to automatically provide conversions, even if alternate units of measure are not expressed in the XML.

Example/Summary

<quantity>
<datauom unit="
[picklist]" abbrev="[yes|no]"/>
<value>
N.M</value>
<mainuom unit="
[picklist]" abbrev="[yes|no]"/>
<altuom unit="
[picklist]" abbrev="[yes|no]"/>
</quantity>

<quantity> Content Model

Doctype Content model Contained by
[Any, all] ( (datauom) (any number) then (value) (one) then (mainuom) (one) then (altuom) (any number) ) [same as <ph>]

<datauom> Attributes

Name Description Data type Default value Required?
unit Indicates an SI or US customary unit. Picklist of the seven SI base units and one each of the underived US customary units, plus temperature units. ( second | meter | m2 | m3 | kilogram | ampere | kelvin | mole | candela | celsius | foot | ft2 | ft3 | nauticalmile | liter | floz | drypint | ounce | troygrain | fahrenheit ) [?] Yes
visible Indicates that the source-data quantity renders in output. ( yes | no ) no No
abbrev Toggles abbreviation of the unit of measure (@unit). ( yes | no ) yes No

<mainuom> Attributes

Name Description Data type Default value Required?
unit Indicates an SI or US customary unit. Picklist of the seven SI base units and one each of the underived US customary units, plus temperature units. ( second | meter | m2 | m3 | kilogram | ampere | kelvin | mole | candela | celsius | foot | ft2 | ft3 | nauticalmile | liter | floz | drypint | ounce | troygrain | fahrenheit ) [?] Yes
abbrev Toggles abbreviation of the unit of measure (@unit). ( yes | no ) yes No

<altuom> Attributes

Perhaps quantities and their conversion might be best constrained by the unit category or type. They would have the same children as above model.

Quantity type Alternative element name Available @unit data types
Length <lenquantity> ( meter | foot |nauticalmile )
Area <areaquantity> ( m2 | ft2 )
Volume1 <volquantity> ( m3 | liter| ft3 | floz | drypint )
Time <timequantity> ( second | [prefix multipliers, like ms?] )
Mass/Weight2 <massquantity> ( kilogram | ounce | troygrain )
Temperature <tempquantity> ( celsius | fahrenheit )

Footnotes

  1. Fluid and dry volumes are combined to keep the model simple; conversion in output would be constrained only to valid exchanges and, if the altuom@unit in a <FOOquantity> has no conversion for the uom@unit, no alternate value+unit pair is rendered in output. [Yes, the XSLT code to do this proposed automatic conversion and insertion is not trivial! 😊]
  2. From a tech-writing perspective, I do not see a case for making a distinction between mass and weight. Aerospace industry uses S1000 (I think) and they can develop their own conversion domain themselves, for quantities in micro- or zero gravity (varied weight, static mass)! 😜

Rambling About Gaming

I vividly recall the smell of a book of memeographs. The tables, the tables, so complex and compelling.
I remember that the games were raw, unpolished. I remember how the publications were so simple in execution but carried a palpable weight of Importance. How to solve these mazes?!
I knew that I was just reading a book or an article, but I could sense the depth of thought behind it, and I could viscerally feel the compulsion to play, play, play. I was ten, and I woulda played all night. Dragon magazine often kept me up thinking about how to use (or, more often, fix) its additions!
Many memories of conventions: the hallways full of crazies, the lounge showing doctor who or something, us sequestered into a banal meeting room to play whatever got pitched by a guy who couldn’t even begin to sort out the rules (multiple sessions I played that weekend began and ended with character creation).
But that was also a big SCA con, and it also had the poor man’s solution (dowels, foam); and as much as we drooled over the armor, we could make boffers for a dollar. This was the same con where I wandered into a side room full of hardcore mini guys, and (a) they were dismissive (I was maybe eleven) and (b) their conversations were so deep into simulation numbers and states that I only now (2014) recognize the shit they was talking about.
Looking back, that was the con that owned me. UNCG gave me more than two Bachelor’s degrees (years later): they gave me a passion I’ll never lose.
Flash forward:
My friends and I routinely played all night at sleep overs. One night in particular, I recall that we played a horror game (well run by Steven) that left us so unsettled that nothing would do but a walk around the neighborhood during sunrise. I checked around corners on that walk. Seriously.
Flash forward:
I recall a convention game at UNCG where they used two DMs to handle multiple players in competition: we ran dungeon tournament simultaneously. We also played Toon. A lot of that Stellar Con is echoed in the photos I see of game masters running from a sort of stage. The dms were using a classroom, and it was so compelling!
My oldest friends (Trent and Steven) ran that game… and to their credit, they didn’t give a shit that they knew me: pure umpires. But this was also still early in the ‘pure dungeon’ times (1984?) and they were young, so they probably came to that rules-purity from first principles.
Flashback:
I recall puzzling over blue book. I recall writing solutions in the margins. I recall playing, being stupified, and spending hours, days, redesigning. I never had the balls to send a letter to Dragon… but I rewrote many AD&D systems (including my own mana system, before Gygax) before the age of thirteen.
The game store, 1980. Flashing back to Day One:
Wow. Chainmail right there in my face. [38 years later, the White Books fetch hundreds from collectors.]
These $3 books just sitting on a low rack with no significance: the proprietors paid bills with train and early R/C hobbiests. And in those days, there was overlap: minis guys used train stuff.
But dad’s wallet and a smart vendor prevented me from buying what I now realize was not a child’s game. Blue book was my Christmas present. Dad, did you have any idea how much you would influence your son with that $10?
Back in the store:
The light through the dusty, poster-plastered windows. The terrain tables and the gorgeous miniatures (for them, the default; for me, staggering).
Later:
Dad and I playing D&D on the front patio, sunbathing, rolling dice between the lounge chairs. Top ten happiest moments of my life, and I should let my father know how well he raised me.
Apologia:
But we were talking about the industry.
Those hobby stores were so weird. Stuffy. A plastic bag in a rack, however, might change your worldview so fundamentally that you’d never look back, even as you wondered who put you on this crazy train.

Best Practices for Graphics in Modern Publishing Pipelines

The following best practices for creating and publishing graphics are application-agnostic and can be done in everything from open source software to top-flight, tools-integrated component content management systems. They work in nearly every common output media; and exceptions are noted when they apply. I employ Microsoft ® Windows® OS terminology and keyboard shortcuts, but nearly every other OS has similar shortcuts or tools that accomplish the same effects.

Capturing screen shots

  • Ensure that you are using a ‘classic’ desktop theme with no gradients, glass effects, or other uncompressible effects applied to the window chrome (title bar, borders, scroll bars, title bar buttons).
  • Set your desktop resolution to the highest it can support for ‘version 1’ of the application; and note that resolution so that you can return to it in later versions.
  • Do not use font scaling.
  • If manually configurable, use font smoothing (almost always enabled automatically, in modern OSs).

This approach ensures that your files will compress efficiently and remain consistent year after year, so that you can update screens selectively instead of in toto.

  • For native applications, use Alt+Print Screen to capture only the active dialog.
  • For web-based applications, use a capture application that allows you to capture only the browser viewport.

Both of these methods eliminate the need to carefully crop to pixel precision in your raster-art image-manipulation program.

  • If you must manually crop, do so to a hard, visible edge whenever possible (rather than a whitespace edge).
  • Avoid using ‘tear’ or ‘fade out’ effects when you must crop to whitespace, because they are hard to consistently apply and they greatly increase final file size. Instead, draw a hard, solid line for it in your image manipulation program; and note the line color and weight for later.

Creating line art

  • No matter what vector-art application you use to generate line art (Inkscape, Microsoft Visio®, LibreOffice Draw), shrink your canvas to the drawing contents prior to saving.
  • Save line art as either SVG or PDF.
    • Exception: If you are generating compiled HTML Help, you must export as raster art. If so, rasterize it to 96 dpi (common screen resolution) to avoid scaling issue in the HTML. In that case, save it to PNG.
  • Always save the typeset file using the same file name as the image-manipulation application’s source file name. If necessary, append a suffix to the source and typeset file names to distinguish them, though if you follow the above best practices, the file extension will also distinguish them and make a suffix redundant.

Applying callouts to captured images or line art

  • Create a library of callout objects in your vector-art application.
  • Always use line art and text (which is itself vector art) to make callouts.
  • Gradient and shadow effects might or might not affect final file size, depending on your vector-art image manipulation application. Use at your own risk. Do not use shadows unless the callouts overlap the image.
  • If you are using overlapping callout and lines, use colors that will consistently contrast with the bulk of the application’s colors. Otherwise, you are almost guaranteed to end up needing to use shadow effects or contrast-increasing callout borders (line around line, container or line around text)
  • Do not use words as callouts:
    • Use alphabetic callouts for pointing out image elements that you intend to define in typeset text below the typeset image.
    • Use numeric callouts for enumerating sequences; and if you use a containing shape, make it a different one than the containing shape for defining callouts. Either set these numerals to the step numbers of the task that will refer to them; or use a different type of numeral system (for example, Roman numerals or Greek alphabet) and set them sequentially.
  • Keep those object in linked layers so that you can easily copy all of their layers, paste them into new layers, and edit the text component of the callout.
    • Exception: If you elect to use only text for callouts, without surrounding circles, squares, shadows, or other offsetting effects, then you will not need more than one text layer and, as such, nothing else linked to it.
  • If you intend to have callouts off to the side of the image rather than completely overtop of the image, you have two options, each with its own consequences:
    1. All side callouts must be on the right side of all images, which can quickly become constraining.
    2. Side callouts require additional attention to detail or a typesetting concession:
      • The leftmost edge of left-side callouts must always be an exact distance from the left edge of the image.
      • You must commit to always centering the image when it is typeset.

      Failure to apply one of these two approaches will lead to the effect of your images seeming to ‘randomly’ slide left and right relative to the page margins.

Saving raster-art images without callouts

  • Always save as PNG.
    • Exception: If an output format does not support PNG… first consider going to a different output format; but if not, then save as 100% quality JPG. If you want a smaller file size in final output, post-processing the output file is a better way to compress than ‘ruining’ your source format right out of the gate.
  • Always save the typeset file using the same file name as the image-manipulation application’s source file name. If necessary, append a suffix to the source and typeset file names to distinguish them, though if you follow the above best practices, the file extension will also distinguish them and make a suffix redundant.

Saving raster-art images with callouts

  • See “Creating line art” above, so that the callouts remain vector art (and both SVG and PDF support embedded raster art).

Decentralized social networking with “socnet”

Proposal: New internet protocol I’d call “socnet”.

  • Similar to RSS, it’s a subscription protocol delivering data via XML file format.
  • Users can create and host ‘social data’ in any tool and on any server, or using a site like Facebook.
  • Other individuals request to connect to the socnet feed of a user, who then accepts them, but can limit–at the individual level–which feed elements (files and folders) the individual can read.
  • Any tool requiring socnet data is granted it by the reading individual. So your contacts app would point at your socnet aggregator app; your calendar app, too; and so forth.
  • Status updates and media sharing are just like normal RSS, basically: a content category, but based on one entity (user, business, group) instead of a site or search.

Result: A platform-independent social networking protocol that abstracts user data out of sandboxed services.

Major Bonus: Contact data is only maintained in one data store: the user’s! No more obsolete contact details, for those to whom you subscribe. Personal calendars could be similarly driven. Anything you’d need to share and sync that currently requires manual data entry or linking.

Voice-Only Smartphone

Basic design: a brick in your pocket with a giant battery, all the RAM, CPU, and storage. A Bluetooth earbud with also a giant battery (must last a day always on).

Use cases: Leverage all the voice-activated functions of current chat bots.

User merely speaks all commands, text messages, calendar events, etc.

Bluetooth keyboard and Wi-Fi screen pairing, when you gotta type to configure or install.

End result: A smart device that never dies (if charged daily) and JUST WORKS. Talk to ‘yourself’ and let the system click icons and type on a tiny screen.

Language-Agnostic Information Mapping

Today

  1. A given quantum of information is sourced in a root language, which could be a single language organization-wide or multiple languages.
  2. Structured markup languages provide metadata and semantics irrespective of eventual output formats.

Concept

Continue the abstraction of information in 2 by eliminating 1 above as well: content is divorced from format and language.

Implementation

  1. Codify grammar into conditions, objects, actions, results, and all other relevant dictional objects. (Consider the constructed language Unker for models of logical, nonlinear grammar diagrams.)
  2. Document conceptual, procedural, and reference information as information maps that diagrammatically describe the information.
  3. Develop Dictional Style Sheets (DSS) that render the information maps into textual, visual, or even multimedia deliverables. (For textual DSS, additional transformation via CSS and such continues as in B above).

Simple Example

Intent

“The door-open chime sounds and the door-open dashboard light illuminates when a door is ajar while the key is in the ignition.”

Information Map of Objects and Relationships

COND:[(OBJ:car-door:any)open AND (OBJ:key)inserted]
<=>
RES:[(OBJ:door-chime)on AND (OBJ:door-dash-light)on]

COND:[(OBJ:car-door:any)closed AND [ (OBJ:key)inserted OR (OBJ:key)removed] ]
<=>
RES:[(OBJ:door-chime)off AND (OBJ:door-dash-light)off]

REL:alert-types(OBJ:door-chime, OBJ:door-dash-light, …)

DSSs

[Magic happens here. LOTS of object:style mappings, but only need to be done once for each dictional output. Free translation; free infographics; free texts: all from running the information maps through DSSs and then output generators that can handle the renders. A tiny example:]

OBJ:key == “ignition key” | singular-only |

Outputs

Conceptual Contexts

“The door-open chime sounds and the door-open dashboard light illuminates when a door is ajar while the key is in the ignition.”

“When the door is closed, the door-open chime does not sound and the door-open dashboard light does not illuminate, regardless of whether the key is in the ignition or not.”

Procedural Contexts

“To test the door-open chime and the door-open dashboard light, insert the ignition key into the ignition switch and open a door.”

Troubleshooting Contexts

“If the door-open chime is sounding and the door-open dashboard light is illuminated, one or more doors is ajar. You can stop the alerts by either closing the open door or by removing the key from the ignition.”

Infographics

[You’d have graphics mapped to objects and relationships in the DSS that, when generated as output, show up like, say, an Ikea or LEGO manual. In fact, see Lego Digital Designer for a great model of a user interface for assembly mapping by sub-assemblies and stages.]

As you can tell if you’ve read this far, this isn’t a new idea: there are conlang folks who’ve thought about this stuff for decades, but not typically from the perspective of one:many translation (rather more like many:one ‘interfaces’ via written and/or spoke languages).

And I also just realized that many of the OBJ-REL information maps could be scraped straight out of software code! *headsplode*

Memorial Day

Memorial Day always puts me into an emotional conflict.

When does respect for honorable and dutiful sacrifice begin to sanction the ill wills and greed that required it? Do we have any more righteous wars left in us? Did we ever?

I find myself thinking that, just like Valentine’s Day, this is another shitty holiday. Love deserves more than one calendar entry, so surely pain and loss does as well. The men and women lost to an aggressive will are remembered daily by their loved ones; why, as a nation, can’t we find time enough every day to do the same?

And maybe, just maybe, in that remembrance decide that throwing more children into the meat grinder won’t work any better than it did millennia ago?

Memorial Day is aptly named. Remember why war is the ultimate failure of everything that makes us human.

Timing Social Media Messages For Service And Show Industries

Every restaurant, bar, pub, and show club wants to leverage social media. These media are free services; the people who choose to follow your business want to hear from you; and when done well, they can replace a lot of expensive, targeted advertising. Even better if your message makes your clientele tell others to follow you: valuable savings, exciting events, exclusive shows, and a sense of belonging turn triers into regulars. Assuming that is the case—that you don’t spam them with pointless noise but only post conscientiously, with “news they can use”—then social media will be a win-win investment for any business owner.

Unfortunately, all of your competitors are aware of these benefits and opportunities; and they are flooding Twitter feeds, Facebook timelines, and email inboxes with their best efforts and offers. Couple that with the fact that many users of social media only check occasionally, and your problem as an advertiser becomes one of distinguishing your announcements and offers from the rest.

Setting aside good copy writing and compelling visuals and links (a topic, perhaps, for a future article) the single best way to make your message stand out is, in a word, timing. This article presents what I feel is an optimal schedule of post timing for common attractions in the service and show industries, to maximize viewers and thus guests.

Note: I am assuming your principle target market is nine-to-fivers, not swing-, split- or third-shift workers or service industry employees themselves. I feel, however, that once you’ve grasped the basics I present here, you will be able to apply the timing principles to clientele with different work hours.

Specials

Specials include food, drink, and possibly value-adds like free parking or valet service.

Some establishments vary specials frequently, and it is those that will benefit the most from social media. If you, however, have locked into a routine that is rarely changed, treat it more like a regular event (below).

Food

When do you think about where you might like to go for lunch or dinner? Obviously, around lunch or dinner time! So this one is, on the surface, a no-brainer: post around 11 AM for lunch specials and around 5 PM for dinner specials. That’s when people are checking smartphones and making plans with others.

But that is just the low-hanging fruit. Look to how the major chains advertise on television, for even more good timing tips. Do you serve breakfast (or brunch on the weekends)? Then post the specials at around 10 PM on weekdays and perhaps a bit later on weekends—you know when your guests end their Friday and Saturday nights… or mornings!

Drink

First, I would suggest that you include drink specials when you post your food specials; but use good judgement! If your clientele favors a pint or martini with lunch, then by all means include it with the 11 AM post. If you’re more family-oriented, include drink specials only with the dinner specials post, perhaps only on Fridays and Saturdays.

If you run a show club and open for happy hour, or if you are a dining establishment that has live music during or after dinner, the 5 PM timing is also good for you, but absolutely include drink specials when you post to promote an evening’s event. So, odds are good that you will have food, drink, and the event in a single post at that time.

Note: I am a resident in a state where there is no happy hour, per se: drink specials must be honored from open to close to reduce binge drinking during rush hour (kind of makes sense, no?). If your local laws differ, then by all means be sure to post about an hour before a limited-duration happy hour.

Events

There is a vast variety of events that can be hosted at service or show venues: live music, a band line-up, pub trivia, singles nights, ladies nights, poker clubs. The list is as diverse as the creativity of venue owners and the cultural richness of your region.

Many events have common timing objectives, however. You want the punters to know about them as soon as possible; you need to remind them as they get closer; and you want to catch the eye of someone who is at loose ends and is looking for fun. That said, regularly occurring events behave much like daily specials: more than one or two posts about each event will be perceived as pushy or desperate.

Major Events

I characterize a major event as a one-off event booked well in advance for which people typically plan and budget. Tickets usually must be bought, sometimes early to be sure they don’t sell out; babysitters must be scheduled, sometime early to be sure they won’t be out; and reservations must be made for dinner, to complete the big night out.

These are the best times to post information about major events:

  • When the event is booked: Get the news out as early as possible. As for the time of day to post, most nine-to-fivers do not actually check their feeds during the work day (unless planning for a get-together that very day, as with specials above). So post either in the early morning as people check in before starting their day, or just after work hours as people get home and catch up, but not both! Whichever works with your schedule. For example, a show venue might post before locking up in the wee hours; a restaurant might post before the dinner rush (if applicable, as an addendum to the night’s specials post).

    Note: For the date timings below that do not specify a time, pick the time of day as with this date timing.

  • The day before tickets go on sale: Your fans will want to be ready at the sales web site or window, ready to reserve their access. Don’t make them miss out!
  • Two hours before tickets go on sale: Get folks excited and remind those who forgot to get ready. In many cases, this will entail an early morning post, as ticket outlets often open for sales around 10 AM. Don’t sleep in!
  • One week before the event: Everyone with advance tickets already knows, sure; so use this post to both inform and build anticipation. Perhaps offer a value-add to the post: a link to a popular or evocative song by the (headlining) performer(s); a recent addition to the line-up; or even a joke, if you can manage humor. Don’t let anyone seeing the post think, “I know, I know! STFU, already!” **clicks Unsubscribe**
  • The day of the event: Work out the time of day that best suits your principle demographic for the event, asking yourself when they will be checking their feeds for something to do tonight. Generally, I recommend around 5 PM (in conjunction with your specials post, as I mentioned above).
  • Near the end of the penultimate act: Nothing will excite the curious browser as much a picture (or short video) of your venue heaving and shaking the rafters! As a bonus, you’re not likely to be spamming your attendees… and if you are, if they’re staring at their smartphones instead of the act… well, take note of that and bring it up with whomever is in charge of bookings at the next meeting.
  • NEVER again: Yes, I said it: posts about how great the show was or how packed you were will more-likely cost you goodwill than behave as a morning-after kiss to your attendees. Nope, nah. Not worth it. Post, perhaps, to the band’s page or feed to thank them; and let any knock-on views see you not as advertising but as conscientious.

No two major events are the same, and so no hard-and-fast timings will work for every situation. Adjust the above accordingly, while always keeping in mind that your posts should be of value to your guests and you should value your guest’s time more than their dollars!

Regular Events

Much like food and drink specials, regular events can become repetitious to the point of irritation, if not timed effectively and used sparingly.

In general, include the pitch and details of the event with your 5 PM specials post, both so that the otherwise unoccupied folks can be reminded and so that those who might be put off by the event will know to pass you by that evening. While the latter might seem detrimental to the night’s takings, trust me: a new or fledgling customer that would find such activity an irritant rather than a compliment will be unhappy that you did not inform them of it as you enticed them with your chef’s latest masterpiece or $1-off well drinks.

Finally, if a regular event has established a following and become virtually a part of your business identity, consider splitting it off into its own page or feed, and encourage folks to join that one before and after the event for several weeks. When the new page or feed has gained traction, limit posts on your primary feed to very irregular reminders, for customers whose interests might have changed over time.

Succeed With Grace

In closing, much of the above advice focuses on a general principle: use social media to bring value to your guests, not to bring revenue to your establishment. The former will guarantee the latter, so long as you respect the most valuable assets that your customers have: time and attention.