Who'd'a thunk it? The Universal(ish) Translator is in alpha, and it's coming from Microsoft
Very, very neat stuff -- according to this article in Ars Technica, they're getting to the point of demo'ing Skype Translator, which, no shit, does on-the-fly translation of spoken word for you while you're on a call. It's sounds like it's a bit slow and limited at this point (just English/Spanish for the full experience), but getting from a proof of concept to something generally usable for real is probably just engineering and data.

I have to agree with the article: the pieces have been there for a while, so this isn't *intellectually* astonishing, but still -- it's one of those "we're catching up with our science fiction kind of fast" moments. And it does remind one that Microsoft hasn't completely ceded the high-tech terrain...

Sometimes, retro is more than just a style choice...
I tend to just send most of my Kickstarter links directly to Facebook these days -- part of a general philosophy that FB is good at light-contact links without much depth, and LJ gets saved for stuff that I consider real content. But some still deserve a post here.

Today's example is the Hemingwrite, which is kind of horrifyingly brilliant because of what it is *not*. It is *not* a tablet, *not* a browsing device, *not* a general-purpose PC. It's simply trying to be the freaking *typewriter* for the 21st century, focused on churning out words and nothing else.

I suspect I would find some of their decisions frustrating, but I get where they are coming from. It contains basically no word-processing features, not even cut-and-paste -- the theory is that the Hemingwrite is for creating text, and you then sync it to a real computer (one-button sync to your favorite cloud word processor) for editing. The theory is clearly that writing is modal: that when you are writing, you should *write*, and not be thinking about the editing. (Much less social networking.) So this is a device that is highly optimized for that one task.

That said, the hardware decisions look smart. The screen is e-ink, and it has an old-fashioned, serious keyboard; the result is that the thing looks preposterously retro, very much like the earliest toy laptops. But of course it holds a million pages, lets you work on multiple documents at once, and claims an expected month of battery life.

I don't write seriously enough to need one of these -- most of my writing is LARPs, and the process is about 90% design, 10% writing. But my gadget lust is piqued by such a clever device; if I really was writing a lot, I'd actually think about this...

Right, this is why "mostly functional" is always a dangerous phrase
[For the programmers.]

As I have burbled many times before, Scala is a lovely language: powerful, concise, and flexible. Sometimes flexible like rope, and occasionally flexible like a noose. (Somewhere, I have a button that says, "There is not now, and never will be, a language in which it is the slightest bit difficult to write bad code." This is a reminder of that.) Scala is a functional language, but specifically and intentionally *not* a pure-functional one. You can have state and side-effects, and you are responsible for using them in a judicious way.

Gradually over the past two years, I've been moving more and more towards functional techniques, and have gotten to the point where "var" always causes me to twitch slightly, but I haven't entirely foresworn them. The problem is, vars can interact with functional programming techniques *really* badly.

Today's example came from my rewrite of the system to use Autowire. This is a nice little library for marshaling commands across the wire -- now that Querki's client is itself written in Scala, this means that I can simply call the server from the client, and *poof*, it mostly just works. No farting around with hand-coded JSON or intermediate languages to describe the API: I just give the API in ordinary Scala, provide an implementation on the server, and call it from the client. It's quite lovely.

The thing is, though, my server-side code generally requires *context* that the client doesn't know about -- the calling User, the current state of this Space, that sort of thing. The main structure is called the RequestContext, and it is laced all over Querki. But of course, the client knows nothing about that, so how do I work it into my calls?

That is, my server-side code looks somewhat like this:
... req is the request; local rc param is the RequestContext
route[ThingFunctions](this)(req).foreach { result =>
  senderSaved ! ClientResponse(result)                  
The "route" macro takes the given request, interprets it as a request to the ThingFunctions trait, unmarshalls it, calls that method on "this" (which implements ThingFunctions), remarshalls the result, and returns that as a Future that my code then sends back to the client once the call has resolved. Basically, it does most of the scutwork boilerplate. But there is no way to pass that "rc" into the called function. What should I do?

My old-fashioned reflexes led me right down the primrose path to hell here:
var _theRc:Option[RequestContext] = None
... req is the request; local rc param is the RequestContext
_theRc = Some(rc)
route[ThingFunctions](this)(req).foreach { result =>
  senderSaved ! ClientResponse(result)                  
_theRc = None
That is, stuff rc into a variable that the implementation can get to. (Note that this is all inside an Actor, so it's effectively single-threaded; I wasn't *that* dumb.) Yes, the implementing code would sometimes have to copy this into a closure if it needs to do something asynchronous, but that's *kind* of obvious, so I could roll with it. And I did have a twitch from the "var", but it works just fine, right?

Yeah, not so much. Remember the above paragraph, which says that route returns a *Future* of the result? That is, it returns asynchronously, so that the implementation can be async if necessary. Which means that the actual re-serialization can happen well after the above code resolves.

And the thing is, functional code does *not* always work the way you expect. For example, deep inside one of the implementing methods, I had this function:
      def filterProps(props:Seq[AnyProp]):Seq[PropInfo] = {
        val filtered = for {
          prop <- props
          if (!prop.ifSet(Core.InternalProp))
          if (!prop.ifSet(Basic.SystemOnlyProp))
          yield prop
        filtered.map(prop => ClientApi.propInfo(prop, _theRc.get))
Seems innocuous -- it filters out inappropriate Properties to return to the client, and formats them. And this function is itself synchronous, so it ought to be fine.

Only -- the input is the values from a Map. And Map.values() returns a *lazy* sequence -- that is, in good functional style, it doesn't evaluate until it needs to do so. If you describe standard maps and transforms, it just adds them to the to-do list, but doesn't actually evaluate the sequence yet.

Until it is time to re-serialize the results. Which happens in a Future, remember? And notice that reference to _theRc above? Yeah -- while that is properly filled while the above function is called, it is totally empty by the time we finally resolve that Future and finally get around to resolving the sequence -- and finally call _theRc. D'oh! Took me an hour to track that one down and figure out what was going on.

So today's project was all about fixing this mess:
val params = AutowireParams(user, state, rc + state, spaceRouter, this)
val handler = new ThingFunctionsImpl(params)
route[ThingFunctions](handler)(req).foreach { result =>
  senderSaved ! ClientResponse(result)                  
That is, rather than trying to be clever with var's, do something more correctly functional: encapsulate the state and the functionality into an instance of ThingFunctionsImpl, and create one of *those* to handle each request. Works just fine (indeed, required very little change to the actual handler code), and doesn't commit the evil of mutable state.

Moral of the story: functional programming is a Very Good Thing indeed. But the further you go down that road, the further you will find you *need* to go. Querki is increasingly getting to the point where "var" is by definition a bad smell. (Indeed, on the client I am starting to eliminate it in favor of the reactive-expression Scala.Rx library. I may chat about that more later...)

More details on Twitter's failure to control spammers
Ah -- there's the followup.

In my rant the other day about Twitter's incompetence, I mentioned that I was continuing to get emails *after* I had rejected an email address. This just happened three times in a row, all identical, so I now see a bit more of what's going on.

The original fake accounts had email addresses of the form "wrigk2px@w***.org". I definitely rejected these, saying that they were not valid addresses. What has now just happened is that I've received matching emails from Twitter, one to each of them, with a subject line of "Thanks for checking in, [Fake Name]" saying (with a pretty graphic), "Nice to see you again. With the Twitter app [big graphic of a phone], you'll never miss a moment of the conversation. [Download button]". These are addressed to "RECLAIMED_172128452_wrigk2px@w***.org".

I have no idea what this "RECLAIMED" nonsense is about, but at this point I am much more prepared to slam Twitter for incompetence. I'm honestly unsure whether this followup spam is being initiated by the spammers or by Twitter themselves, but they are totally not taking enough care to remove bogus email addresses from the system. There is no excuse whatsoever for me continuing to receive emails to my domain after I have explicitly told them that this is not a real account.

And I should note, the really I am *seriously* angry at them is the complete lack of *any* obvious mechanism to report this. Their help system is a maze of twisty little passages that tries to enumerate every kind of problem they can think of, automating the support for each one. This problem isn't listed anywhere, and the ones that are even vaguely close all lead into complex and inappropriate forms that are definitely *not* appropriate. I can't find an "other" category anywhere, nor any way to, eg, contact a support representative, after about fifteen minutes of clicking links all over the place. So I haven't yet been able to figure out any way to report this problem, leaving me with little option but to vent publicly. *That* is almost definitionally incompetent customer service.

(The only thing I can think of is to link to @Support, which I'm going to try with this post.)

I suspect I'm going to have no choice but to install the rather expensive Block Sender app (thanks to Laurion for suggesting this line of thinking), and hope that it works. But even if it does, Twitter deserves brickbats for forcing me into this and not providing a decent approach...

Baronial Pollings
Just got my polling for the Baronial election in the mail. Apparently, for the election to be valid, they require fully filled-in forms (five separate fields) from 50%+ of all paid members.

By postal mail.

And there is no SASE enclosed.

This plan strikes me as coming dangerously close to the "unrealistic" line, given how hard it is to get people to put anything in the mail these days. (I know too many people who find the whole idea of sending postal mail quaint, since they are doing all their bill-paying online.) I still think Kingdom made a very poor choice in arrogating the election process to itself, but sobeit -- there's not a lot we can do about it.

So: if you are a paid member, *please* be sure to fill out and return your ballot, even if you look at the slates and have the entirely reasonable reaction of, "I don't much care -- they'd all do a good job". It looks like we need a serious get-out-the-vote effort if we're to avoid things getting weird and unfortunate. Spread the word...

Speaking of spam...
I'm scratching my head at this email, which I just got from a random but not obviously illicit Gmail address:
Good day,

We are looking cotton roll, and it is emergency, if you have this product in stock please let us know about it. I'm ordering this product to my new shop, and i need to know the price of this product. I would also like to know if you ship international and also want to know if you accept credit card as a method of payment. Hope to hear back from you soon

Thank You,
My initial reaction is that it must be spam or phishing or *something*, but WTF? I can't even tell which email address it was sent to -- it appears to be a totally blinded Bcc, with no To address at all -- and it's random in a way that I associate with spam, but I have no clue what they're trying to get from this. Anyone hear about this particular scam before?

Twitter seems to be deliberately encouraging spam accounts
Okay, the only way to get a rise out of anybody these days seems to be embarrassing companies on social media. Let's see if Twitter is paying any attention.

One of my domains has a long-standing but rapidly growing problem with Twitter Spammers. Specifically, some jackass has decided to use my personal domain to create lots of fake accounts on Twitter. This used to be only occasional, but I got three of them today, all pretty bloody obvious: I got confirmation emails to "hiv3s7@w***.org", "wrig7ryv@w***.org" and "wrig2px@w***.org". Of course, none of these are real emails, but they all land in my inbox since I own the domain. And the hell of it is, I can do *nothing* to shut these fraudsters down!

Seriously, this is where, as far as I can tell, Twitter is simply giving a gigantic f-u to anyone who owns a domain. The *only* thing I can do is to respond individually to each of these and say "this isn't my email address". That doesn't actually shut down the spammy twitter account -- I can't even say, "I own this domain, and I am 100% certain that this is an attempt to spam". There is absolutely nowhere I can find on Twitter's Help system to let me say, "my domain is being attacked through you; stop allowing people to sign up through w***.org", and there is no sign that they are noticing that every attempt to sign up via w***.org is being rejected and gee, maybe they should learn something from that.

It's getting to the point where I'm thinking of writing Twitter off as a bad idea, and simply spam-boxing all email from it, rather than trying to be helpful. I wish I had the slightest indication that they actually cared in the slightest about their users...

The higher the pedestal, the likelier somebody will fall off
So we have a man who has been respected and admired for decades; who is highly charismatic and strongly opinionated, and who has spent many years with people giving him particular respect for being strong-willed; whose spiel has always had an undertone of, "I will respect you if and only if you play by my rules". And now it turns out that he's been raping women for ages? I can understand being sad and dismayed if you shared some of his views, but I can't actually say I'm astonished.

I mean, if he'd been a preacher who fit the above description, most folks I know would go tsk-tsk but not be all that surprised. If he was a politician, everyone would be saying, "I suspected all along". Doing your memetic engineering as an entertainer isn't necessarily all that different.

The point is, we collectively have a bad habit of putting charismatic people (most often but not exclusively men) on pedestals when they powerfully say something we agree with. Not only does that set us up for disappointment when we discover their secrets, I suspect it makes it more likely that they will commit serious abuses. I mean, when you tell someone, "you are Powerful and Right, and We believe in You" -- well, history says that that goes to most peoples' heads. The reality is that the Powerful are pretty good at covering stuff up, and continuing to do what they want to do. And worse, they tend to be surrounded by people who don't want to rock the boat by pointing said stuff out.

None of which is to say that every leader commits quite such terrible acts. But as a society, we really need to get better at not being enablers when they do happen. Frankly, the one silver lining in this mess is the media people who have publicly apologized for papering over the history: that at least suggests that some folks might be learning from the mistake.

(And yes, I'm assuming the accusations are at least mostly true. While I don't entirely agree with, "Where there's smoke there's fire", I do generally find that, if I can see the smoke cloud from a mile off, it's probably pretty warm over there.)

It's the little things...
The UPS guy just rang the doorbell; the box he was dropping off turns out to contain my new business cards.

On the one hand, I am painfully aware that they are non-mission-critical at best, and self-indulgent at worst. Getting the bloody beta done is what really matters at this point.

But still -- this is the first time one of my projects has been real enough to need professional business cards. Heck, this is the first time I've *had* business cards in, what, over ten years? I don't recall ever getting them from Memento, and maybe not from Convoq, although I do have a leftover (and possibly never-used) box from Convoq's original identity of Applied Messaging. And really, those projects never needed business cards: I was an in-the-trenches engineer, only occasionally interacting with real customers. (And while I did make a few up for CommYou, they were just inkjet-printed on Avery stock, which really is not the same thing.)

This time, though, it's all my baby, and I expect to actually go through this original order of cards pretty steadily as I talk to folks. (This was driven home by my Scala.js talk the other week, when I realized that I *totally* should have had a pile of business cards in front of me.) So Aaron and I sat down last week to talk through layout (he has more visual-design experience than I, and the right tools), and I just got them: nice heavy stock, glossy printing and all. They're pretty spartan as these things go, but that reflects the general Querki aesthetic of focusing on the relevant data instead of a lot of glitzy frou-frou.

Don't be surprised if I press one on you, and please pass it on if you find someone who might be interested. As beta approaches, it's finally getting to be time to talk this up properly...

Hands-on Scala.js
I've burbled here about Scala.js, the increasingly-mature Scala-to-Javascript compiler that I am currently rewriting Querki in. (And I owe a writeup of my rant on the subject from a couple of weeks ago.)

One thing that Scala.js has lacked heretofore is a really solid *book*. There's a decent tutorial and a bunch of other useful information on the main website, and a growing body of community knowledge, but getting started looks a bit daunting, which is unfortunate: it's not actually a terribly hard technology to get started on, especially if you already know some Scala.

To help with that, Li Haoyi (one of the primary library-authors for Scala.js) today released a draft of Hands-on Scala.js, an online book aimed right at this problem. I'm just starting to read it myself, but at a quick skim it looks like just what the community needed. It starts off assuming only a fairly modest knowledge of Scala, Javascript and web development, and walks you through the rest: the rationale for using Scala.js, how to set up an environment, tutorials for various kinds of webby applications, and a final chapter going into depth on various major Scala.js topics.

As these sorts of books go it's pretty short (not having a publisher pushing up the page count helps), but it's still a book rather than an article: expect to take a while going through it. And please note that this a draft, albeit a late one: it's akin to a late-stage MEAP, so don't be surprised by an occasional typo.

Recommended reading to anyone who wants to keep their skills sharp and is interested in Web programming. IMO, Scala.js is one of the most important parts of the Scala ecosystem, and very much a tool whose time has come. Having a good guide for getting started in it should only make that better...

Desk looking for a good home
This past week I've switched where my home office is (in order to give Kate more space), and gotten myself a new standing desk (because it seemed like a good idea). The result is that that my old desk needs to go away soon. I don't need it any more, but it's still fully intact and in generally good condition.

It's a big corner workstation; several photos can be found here. It's a good-sized desk with a substantial hutch and lots of filing separators for books and papers. One back wall is metal, to put magnets on. It includes a large third-part keyboard tray that I added.

It's currently disassembled, and needs to go away Soon: while there is no specific deadline, it's in the way, and will get trashed if I can't find a taker ASAP. It's a fair-sized pile of pieces, but should *mostly* fit in a standard car. The only tricky bit is the desktop itself, which is roughly 4' x 4' square. While slightly complex, it shouldn't be terribly hard to set up: I've labeled all of the pieces with post-its, and it is generally IKEAoid (don't remember if it is actually IKEA or not), requiring only a Philips head screwdriver, a 5/32" hex wrench (IKEA standard, IIRC) and a mallet or something to gently whomp pieces together.

It goes to the first person who comes to take it away. Drop me a note if you're interested, the sooner the better...

TRoOB: Strong Female Protagonist
Welcome to another edition of The Review of Obscure Books, my occasional comics review column. Up today, just for once (I tend to be months behind the times), is something that's quite new, just hitting the stands now.

I decided to Kickstart Strong Female Protagonist largely on whim: the pages shown in the KS looked like an interesting change of pace, and the price was reasonable, so I figured I'd support the indie comics. I got the book in the mail a couple of weeks ago, and having finished it the other day, I'm glad I did.

SFP is a little hard to describe properly, especially without giving too much away. The book (and mind, this is just volume 1 of an ongoing story) takes its time, and much of volume 1 is devoted to gradually showing you the background.

It's very much a supers book, but *feels* much more like a black and white indie. Our eponymous protagonist is Alison Green, aka MegaGirl, who has serious super-powers -- basically, Superman-grade invulnerability and strength. As the story opens, she is 20, studying at the New School in NYC, having quit the superhero business quite loudly a year ago. She's had a social awakening about just how *meaningless* the superhero thing is, and now she's trying to find ways to actually make the world better. The world is *not* making this easy for her.

I was slightly concerned that the story would simply turn out to be whiny social commentary, but that's far from the case: this is actually one of the more thoughtful deconstructions of superheroes that I've seen. The setup works well for that, since Alison is herself trying desperately to introspect on what it all means and how it should be used. She's terribly well-meaning but immensely frustrated by the contradiction that she can move mountains, but can't make a damned difference when it actually matters. Frankly, she is very, very 20, and the story gets into the implications of that quite deeply.

Bit by bit, volume 1 explores what's going on here: the origin of this odd cohort of supers; exactly what happened during her encounter with the evil mastermind Menace that led to her quitting the business; her family and her attempts to fit in as an ordinary university student. It plays with a lot of superhero tropes in all sorts of surprising ways: Chapter 3 essentially explores how Wolverine could truly be heroic, and the result is both horrifying and heartbreaking. The story is very self-aware, and one of the more interesting nuances is the way that supers in the US have fallen into the superhero/villain modes mainly *because* the American comic book industry has trained them to think that way.

Now that the KS is done, the book is showing up in comic stores and other outlets for better graphic novels. It's my pick for Best Graphic Story of the year (beating out Fatale, which needs its own entry). Highly recommended, especially to anyone who likes Astro City, which is the closest cognate I can find. They're similar in flavor, although quite different: where AS looks at what the world would really be like if it was full of supers, SFP is more focused on what supers would be like if they were real people. Check it out...

Grumble, grumble, Order of Defense, grumble
So the movement to create a Peerage for fencing has reached the point of a formal proposal, out for comment. Do I send another letter to the Board?

On the one hand, I think there should totally be a path to Peerage for those who have had a major impact through fencing; I think that's true of every activity.

OTOH, I think this is the *worst* way we can possibly deal with that. Rapier *ought* to be recognized through the Chivalry, and I'm still cranky that that doesn't have a snowball's chance in Hades of ever happening -- the armored fighters hold the levers of power, and by and large they won't allow it. Failing that, we ought to reinterpret the Laurel or Pelican to be more accepting, or at the *very* worst, have an Order that is designed to be welcoming of all martial activities. As it is, creating a Fencing-Only Peerage means that we are inevitably going to have to create more and more Peerage Orders in the name of fairness. If we're recognizing Fencing today, we should absolutely have one for Archery, and then, I don't know -- Equestrian? Thrown Weapons? (And God help us when someone points out that excellence in execution and behaviour isn't the sole province of the martial arts.)

From an organizational-design standpoint, it's idiotic and damaging: the rise of Zillions of Specialized Awards is one of the worst blights on the SCA today, and I utterly hate the idea of it spreading to the Peerage. We like to say that our awards aren't just "merit badges", but that is certainly what they're coming to look like, and they get steadily less meaningful as they get sliced-and-diced more finely.

All of which said, we have a cultural problem: we are deeply failing all of the martial communities other than heavy list, and that *does* need to be fixed. IMO, the only thing worse than the current proposal is the status quo, and the proposal on the table may be the only politically feasible way to fix it.

Hence, grumble.

(I hate the name "Order of Defense" as well. Would anyone care to argue that "Order of Chivalry" is a name worth emulating? I've always felt that it was one of the more painfully mundane anachronisms we have. I wish someone would show the imagination and backbone to give this proposed Order a real name...)

And another project starts to get very real
Two days until Intercon O signups open (if you don't have a membership yet, get it now). That's going to become more and more a focus for me, since I'm finally diving back into LARP writing, after several years away from it.

This year's game is "experimental" for me -- that is to say, it is weirdly normal and down-to-earth. I've mentioned it before here (indeed, I mentioned it the day after I thought it up, a year or so ago): A Respectful Calm is going to be a somewhat dark, very real-world story, set in the aftermath of a mass shooting at a company downtown. Instead of being a game of violence, it's a game about the repercussions of violence, and the ways our society reacts to it. (It says something that the four major groupings of characters in the Factions list are "Employees", "Police", "Media" and "Politicians".)

It's an unusual game for me in many ways. One is the complete lack of fantastical elements: I think this is the first time I've ever written a game that wasn't at *least* satirical, and nearly all of my games have been fantasy or science fiction. Aside from a little bit of high-tech speculation in the background, this one is totally down-to-earth, with normal people dealing with an abnormal situation.

Maybe even weirder for me is the lack of uber-plot: for better or worse, my games usually have The Big Thing that takes precedence over everything else. I try not to let that overwhelm everyones' individual stories, but it's always there. Not in this case, though: The Big Thing has already happened, and we wind up with something of a fractal of reactions, as everyones' lives spin off of that in different directions.

I'm also trying my hand at writing gender-neutral characters, after having treated gender quite casually in all my previous ones. The topic of gender bias in games has come up a lot in recent years, and I've decided to run at it quite deliberately. I'm allowing myself to write gendered characters in the cases where it is seriously relevant to the character, but that's only a modest number; most are written gender-neutral, to the extent that the underlying Querki database has both male and female names for each one, and I'm planning on writing a few functions so that pronouns get adjusted automatically after casting. (I allowed myself ten specifically-gendered characters when I bid the game, but it currently looks like I'm coming out with four, out of thirty.) It's being an interesting exercise in challenging my own assumptions about how relevant gender is to character.

And of course, it's all written in Querki. This kind of brings the Querki project full circle: it started as a LARP-design system about ten years ago (I believe I originally built the prototype for Girl Genius: Agatha Heterodyne and the Hidden Castle). This time, I'm planning on not just writing the game in Querki, but doing the printing and casting through it as well. I expect it'll be a learning experience, as usual.

For those who care, I will admit that the game is not fully written yet: at this point, I have the character list, the major plots and a lot of the interaction web, but I'm still fleshing it out. I've never failed to have a game ready well before gametime, though, and I don't intend to start here.

It should be an interesting game, and I look forward to seeing where the players take the stories. I hope you'll consider signing up; it's scheduled for Friday at 8pm...

And *that* is why I have waks.org
- Just got an email from Home Depot, saying that my email address was stolen during their recent payment card breach.

+ They sent the email to a burner address on waks.org.

As a general rule, if I don't think a company has any especially good reason to need my email address, I give them a unique waks.org address, precisely so that, if it somehow winds up in the hands of spammers, I can simply filter out that address to auto-delete. It doesn't prove relevant very often: I've been pleasantly surprised at how *little* of my spam comes from these burner addresses (the exception being PACs, which seem to resell addresses willy-nilly), and have found that most waks.org spam goes to addresses that one crook simply invented and sold to another crook. But it's nice to have the ability to cut off an address when it goes bad...

On the Internet, nobody knows you're a dog -- or an undercover agent
This story on Ars Technica is kind of horribly funny. It relates how, after the original Silk Road (a huge online drug-dealing site) got shut down, other folks promptly started up Silk Road 2.0. That successor has now been comprehensively busted, in part because it had been infiltrated from the beginning. Not only was there a narc involved in the conversations, he was actually *being paid* by the site.

Which points up an interesting aspect of online pseudonymity that I think most folks don't think about: that it's only as good as the confidence you have in those pseudonyms. Just because the person at the other end of that nym is agreeing with what you say online doesn't mean that they are actually on your side. There are a million stories of folks winding up shocked about the real identity of the person they were talking to, usually because they had projected their own expectations much too strongly.

Mind, I'm a big fan of pseudonymity -- I think it is the natural adaptation of identity to the Internet, and should be used more broadly than it is. (Which is why it is Querki's main focus, just as it is for LiveJournal. It is also the top reason I didn't wind up working for Google.) But you shouldn't be naive about it. When it actually *matters*, always remember the cardinal rule: trust, but verify...

The little joys of the season
Last month, ladysprite led an apple-picking expedition. As usual, I tagged along, and as usual, I stopped at Derby Farms on the way home.

The land of Stowe is covered with big orchards and farmstands, and most of them are jammed to bursting in October. Derby Farm is the exception: it's a quiet little barn, on the right hand side of the road as I make my way home along Route 117. It's not so big, and not so fancy. But it has two important things going for it:

1) They don't pasteurize their cider.
2) They have the best native yeast I have ever found.

Hence, my annual recipe for hard cider:

1) Buy half a gallon of cider from Derby Farm.
2) Put it in the fridge.
3) Ignore it for a month.
4) Rescue it when the bottle is visibly bulging, before it explodes.

The result is thick and fizzy, very real and viscerally apple-y in a way that bottled hard cider never is. Knock on wood, I've never had a bottle go bad on me. I only get half a gallon each year (I just don't have room to make more), but opening that bottle is one of November's highlights for me...

There is an economics dissertation in here, somewhere
I call your attention to this article in TechCrunch a few days ago, about a company that has built a cloud-hosted supercomputer system for mining Bitcoins.

Ponder that for a second. This is a company that is more or less literally renting machines that print money. My head breaks a little when I try to wrap it around the weird economic recursion in that. And I'm trying to find a reason why it makes sense to rent out such a system, instead of just running it on your own account. I have a suspicion that the owners of the system are essentially using it to hedge currency fluctuations, and that most users of this cloud are taking on more risks than they properly understand...

A few thoughts on Voyages of Discovery
Before I get too distracted by other things, it's worth a minute or two to contemplate the Voyages of Discovery event, which ran last weekend.

Overall, the event was a solid success, IMO. The classes were diverse, and many of them fascinating. Among my favorites, I wound up in "Where/when medieval Jews fought" kind of by accident (I was the designated techie for it), but it turned out to be a really remarkable piece of scholarship: Lord Gideon has spent years collating a lot of what we know about the context of Jewish life in period, broken down by region and time, and uses that to quite effectively demolish the common assumption that Jews weren't part of armored combat in period. The most fun class was probably Naomi's "From Underwear to Gutenberg: the Rise of Moveable Type Printing": the second half of the class, in particular, is an experimental-archaeology exploration of why ink-making was considered such a dangerous profession in period; the photos of her experiments illustrate why quite vividly. (The word "conflagration" comes to mind.)

This was probably the most "un-event" event I've ever been to, but I think made a fine case that we should do stuff like this. It was resolutely modern in all its trappings: the lack of garb made that point, but it was really driven home by the burritos for lunch. And the thing is, by not *pretending* to be period, it let everyone be meta without worrying about it so much. I mean, at a typical "A&S" event, there's always this nagging sense that talking about period is so very not being *in* period; as a result, our displays often contribute to the "costumed cocktail party" effect. By having a not-in-garb event (technically a demo, to stay within the rules), we can talk frankly without that feeling of wrongness. By allowing ourselves such a very out-of-period space as an outlet for meta-discussion, I'd like to believe that we let ourselves be *in* period a little bit more at events.

Of course, I also came away from it going, "we *really* need to do Carolingian University one of these days", since the two events are lovely counterpoints to each other. But in and of itself, Voyages was an excellent and successful experiment, and probably deserves to be repeated periodically. My congratulations to the organizers...

Noun: the act of taking a piece of code that was originally crafted as its own little special snowflake, and making it instead work like the rest of the system now does.

(What? Yes, it's simply a special case of refactoring. But you have to admit that it's evocative of the point...)