Ceterum censeo
Google Authentication on iOS standalone webapps

Google provides some extremely nice API’s for developers to connect to their services. I’ve been hacking away at a webapp which uses one of them, and ran into a problem. I didn’t find anyone had posted a simple solution to it. I found one so I thought I’d put it here; perhaps someone with the same problem will find it here and save some time.

I won’t give any background. If you don’t know what I’m talking about, this post is not for you.

Google’s authentication/authorization API’s are based on OAuth2. They provide a bunch of libraries that simplify connecting to them. For webapps, they have a Javascript API which uses CORS (Cross Origin Resource Sharing) to deal with the traffic. It’s very simple to use: you register your webapp at Google’s app console, include the Javascript API in a script tag, add a load handler, and then start using it.

You start by calling a method which either comes back with an authorization token that the rest of the API’s will use so that you don’t have to worry about it, or pops up a window which lets you sign into Google and authorize the app, then closes and continues where you left off. Simple and easy, and I appreciate it for what it is because I’ve written something similar myself and it’s much harder than it looks because of all the cases you need to handle.

Under normal circumstances that’s all you need to do. It works great. However, there is one edge case I found where it doesn’t: iOS standalone webapps,

Apple’s iOS lets you put bookmarks of websites on your home screen. If the site’s developer has flagged the site as webapp-capable, the bookmark won’t open in Safari: it’ll instead spin off an instance of Safari of its own which it will open in a decoration-less, full-screen window. This is kind of nice since it really lets a webapp look and feel like a regular app pulled from the app store. However, there’s a problem.

Standalone webapps are not windowed. They’re full-screen only. In other words, you can do anything you could do in a regular browser except keeping more than one window open (not counting iFrames). Since Google’s authentication API is based on a popup, this won’t work. Not quite. 

You will get redirected to Google’s authorization UI just fine, but the popup won’t be a popup: it’ll replace the window you’re currently in. This means that when the popup is supposed to close and return you to your normal flow, it won’t be there anymore. The user will be left staring at a screen of pristine white, with control still held by Google. If the user closes and reopens the app, he will be properly authorized and everything will work as it should.

Google’s Javascript API has no way that I can find to handle this situation.

However, OAuth2 is an HTTP-based protocol, and the requests are fairly simple. These protocols let you specify a redirect URI where the results of the authorization request will be posted. Similarly, Google’s authorization user interface can be pulled up with another standard HTTP request. And finally, Google’s Javascript UI lets you specify if you want the handler to redirect into the authorization UI if the user is not authorized. This lets us solve the problem:

  1. Check authorization with immediate = true (the authorization UI will not open).
  2. If the user is not authorized, use window.location.assign to pull up the authorization UI directly, with the redirect_uri set to the webapp URL you started from.

So, if the user is authenticated and authorized, flow will continue normally from step 1. If not, step 2 will get the user into Google’s flow, and the redirect_url will get him back to the webapp, and the user will be authorized, because the first check will now return with a token. Naturally it’s up to you to add any features that will restore the UI state of the webapp to what it was, if you want the experience to feel seamless.

Code snippet to run around startup, written in Dojo:

iOSCheckAuthorization : function( /* String */ gapiModule,
                                  /* String */ gapiModuleVersion, 
                                  /* Deferred? */ promise,
                                  /* boolean? */ immediate )
{
    if( !promise )
    {
        promise = new Deferred();
    }
    gapi.auth.authorize({
        "client_id" : this.clientId,
        "scope" : this.SCOPES,
        "immediate" : true
    },
    lang.hitch( this, function( reslt ) {
        if( reslt && reslt.access_token )
        {
            this.access_token = reslt.access_token;
            gapi.client.setApiKey( this.apiKey );
            gapi.client.load( gapiModule, gapiModuleVersion, lang.hitch( this, function()
            {
                promise.resolve( reslt );
            }));
        }
        else if( !immediate ) // redirect to login
        {
            var qs  = ioQuery.objectToQuery({
                client_id : this.clientId,
                scope : this.SCOPES,
                immediate : false,
                include_granted_scopes : "true",
                redirect_uri : this._getCleanRedirectURI(),
                origin : window.location.protocol + "//" + window.location.host,
                response_type : "token",
                authuser : "0"
            });
            window.location.assign( "https://accounts.google.com/o/oauth2/auth?" + qs );
        }
        else
        {
            promise.resolve( reslt );
        }
    }));
    return promise;
},
/**
 * Return an app URI exactly as authorized in the Google app console
 */
_getCleanRedirectUri()
{
    return window.location.protocol
        + "//"
        + window.location.host
        + window.location.pathname;
}

See it in action.

Ukraine

Salient things about Ukraine:

  • The country is run by oligarchs. The political leaders are just the frontmen. As long as this is the case, things are hopeless. Any money poured in will pour right out again, into bank accounts in various tax havens. Governance will be incredibly bad and completely corrupt.
  • GDP per capita is currently about half that of Belarus’s. Which is really bad. Bordering on third-world bad.
  • It is weak, corrupt, and divided, which makes it wide open to manipulation by outsiders, East and West.
  • Russia’s most important naval base is in Crimea. The lease runs out in 2042.
  • Crimea has only been a part of Ukraine since 1953, when Khrushchev moved the border between the Russian and Ukrainian SSR’s.
  • Russia has intervened militarily in its “near abroad” in 2008.  

Under these circumstances, could someone explain to me why Putin would not make a play for Crimea?

More on Living with the Europiccola

Back when I bought my favorite household appliance, the La Pavoni Europiccola espresso machine, I did a fair bit of reading about it. Much of what I’ve read was good advice. There were a few “common knowledge” things that were wrong, though, and some fairly important things that nobody appears to have mentioned.

No, it’s not supposed to leak or hiss. If the seals are tight and it’s competently assembled, no steam or water comes out except when you let it, and where you let it. Mine did leak and hiss, until I had it serviced due to a problem it had. When it came back, it no longer leaked and hissed. The overpressure valve started to leak at one point so I replaced that, and it’s, yet again, completely silent except for the bubbling of water when it’s heating and the occasional thermal-expansion tick.

It’s designed to be serviced. Which also means that it’s designed to need service. The good news is that it’s very easy to service. Of course this is an electrical appliance and if you don’t know what you’re doing you risk electrocuting yourself so I’m by no means recommending you do anything with it. I did, however, manage to unclog the pressurestat tube myself, when it got clogged again.

Don’t overfill the portafilter. The proper dose leaves about a centimeter of room in the portafilter after it’s been tamped.

Don’t tamp too tight or grind too fine. There’s a sweet spot for the espresso, which you can feel. The lever comes down with resistance, but without having to use force. It’s hard to describe except that that sweet spot feels good – if the grind is too coarse or the tamp too light, it feels sloppy; if it’s too tight, it feels like the lever doesn’t want to come down.

Waggle the tamper in the portafilter before tamping. This is something I figured out myself. It distributes the coffee evenly and gets rid of any lumps or cavities that might be there. Cavities are bad as they lead to channeling, which means bad coffee. 

Remember the pre-infusion. I make my espresso by lifting the lever, listening to water flow into the group, gently pulling it down a little to just before the point a bit of coffee drips through (takes a bit of practice), then slowly lifting the lever up again, and counting to ten or so. Then I pull. The length of the pre-infusion affects the taste of the coffee in subtle ways, so it’s worth experimenting.

Buy small bags of coffee. After opening, keep them in room temperature, as tightly sealed as you can. It’ll lose its freshness in about a week. I buy 250-gram bags, which are still OK when they finish.

Try different varieties of coffee. I’ve discovered some favorites, and some I don’t like so much. There’s a lot of difference between them. Blends with hefty amounts of robusta are easier to brew than pure arabica, so it might be more rewarding to start with those.

It’s not as hard as it sounds. I was able to make better espresso than you get at a regular café on my first day with the machine, and it’s only gotten better since.

Jolla, the First Few Days

On Friday, I went to a party. I took the Kutsuplus, which was on the browser, naturally. I checked the address on the map, and the door code from a note-to-self. Switching between tasks like this on my old Android phone would have been so annoying that I would probably just have printed the map and jotted down the door code on it. On the Jolla, it was incredibly fluid. The minimum distance between thinking something and doing it. The user experience really is brilliant. My biggest problem is I’m trying to use the same gestures on the iPad.

Another thing that’s been growing on me is the design. The Jolla is a pure example of absolutely bleeding-edge school-of-arts-and-design hipster chic, i.e., it looks like it wasn’t designed at all, as much as stuck together – but when you actually use it, it turns out to be extremely well thought-out. So much so that there’s nothing that really shouts “Look at me, design!” in it. Things just fit together well. In a way, this is a return to the roots of industrial design in the 19th century, when engineering came first and was proudly worn on the surface.

For example, some things you don’t even notice – but often do, because they’re troublesome:

  • Replacing the back and changing the battery, SIM card, or SD card. It’s just easy and obvious.
  • The power and volume buttons. They’re positioned just right, under the fore- and middle fingers of your left hand or the thumb of your right hand. They also work well.
  • The location of the USB port. If you’re using it while charging, it doesn’t get in the way. It’s like a mouse’s tail.
  • The soft feel of The Other Half, and the reverse curves on it and the body of the phone. They fit together, but are still clearly two halves. It communicates the design intent really well.
  • Voice and sound quality. Really good.
  • That you can set a timer for the code-lock on the screen. I.e., if you’re on the move and frequently checking something, then putting the phone back in the pocket, you don’t have to enter the code every time you open it – but it does go on after five, ten, or fifteen minutes.

But yeah, plenty of beta. It ate my ambiences once, and another time the screen started to flash “static” intermittently; restarting fixed that. 

Apart from these obviously broken things, the top of my wishlist would look something like this:

  1. Battery life. It’s bad. If I plug it in when I get to work, and again when I get home, it’s workable, but that’s more laptop than mobile.
  2. Google calendar sync. The calendar’s fairly useless for me until that’s in.
  3. Better Twitter client. At least let me see my interactions without going to the webapp.
  4. Better Maps app. This doesn’t really allow you to do much other than search and browse the map.

None of these are fundamental problems, not even the battery life – it’s just a matter of optimizing things so processes hibernate when they’re not needed, that sort of thing. This is going to be awesome.

Jolla!

Walp, it’s finally here — my own piece of Finnish tech history: the Jolla phone designed by the good folks just down the street from my place of work. I really wish them well, for many reasons, but most of all because they seem like really good people who enjoy and are proud of what they’re doing. They ought to be too; it is kind of nutty that 80 people in Helsinki can turn out a fully functional, new smartphone in, what, about a year or so.

It’s even nuttier than they can turn out a smartphone as nice as the Jolla.

Don’t get me wrong, it’s still clearly a work in progress. In particular, there aren’t that many native apps, and some fairly important features are missing or don’t work very well. Some things I’ve missed are Google calendar sync, Google Authenticator, and mounting the phone as a storage device on my computer. I’m pretty sure most of these will show up soon enough. So if you’re not willing to put up with these kinds of “beta” niggles, then don’t buy one yet.

Other than that, the phone feels surprisingly polished. The hardware is very nice indeed, well built and prettily finished. The screen is sharp and has very pleasing color. Everything works fast, fluidly, and extremely responsively. The Gorilla Glass on the screen is pleasant to the touch and doesn’t pick up fingerprints. The only hardware-related niggle I have is that with the backlight turned way up, the screen takes on a bit of a bluish tint, as LCD’s sometimes do.

The gesture-based UI will take some getting used to. I’m fumbling at this point. However, I can already tell that the gestures that run it are consistent and make sense; I just don’t have them wired into muscle memory yet, which means that sometimes I push instead of swiping, or push in the wrong direction, and so on, and then get lost. It’s a language of gestures as symbols and indices, and feels initially confusing since there’s nothing obvious to tap on, a lot of the time. You have to know that pushing from the right gets you back to the home screen, pushing from the left gets you back to the app you last used, and so on. This is a whole different UI than any other I’ve used, both richer and cleaner than the icon-based ones we’ve had so far, but it does need intentional practice. I am fairly certain that a week from now I wouldn’t want to use a phone any other way, but we will see.

One of Jolla’s headline features is the ambience. That is a genuinely cool feature. Basically, you choose a picture and turn it into an ambience. This changes the UI colors to match contrasting colors from the picture. Then you favorite it, change sounds to match, and it becomes immediately available at the home or lock screen, just by pushing and tapping. It’s fun. I made 29 ambiences already.

I may or may not be blogging more about the Jolla as time goes on. At this point I’m just thrilled to have one. Thanks to the folks at Itämerenkatu 11 for making it — and I do hope you’ll get some rest over the holidays, because you’ve earned it.

How To Fix Windows

Some more quickfire thoughts on checking out Windows again, after a hiatus of several years. I’m still in shock at how much worse things have gotten, especially as it wouldn’t really be all that hard to fix them.

The main issue with Windows 8 is, obviously, that it tries to be two things at once: a touchscreen operating system, and a desktop operating system. That can’t be done. It’s like trying to be a Land Rover and Lotus Elise at the same time. The use cases are too different. I cannot understand how Microsoft made the decision to even try this. It’s such an obviously awful idea.

What’s more, there’s an obviously good solution to it. Similar to what Apple did with iOS and OS X, actually, but also a bit different.

Keep the Windows NT kernel and most of the libraries on top of it. Then create two distinct graphical shells on top of it: Windows Panes and Windows Views.

Windows Panes is designed for desktops. It’s more or less Windows 7. You have the Start Menu – arguably the best single feature in the Windows UI, and something that made some common activities a good deal more convenient than on OS X. You have the familiar file explorer, also in my opinion better than the Mac Finder. You have applications and control panels that open usually in windows, except games and such that take over the whole screen.

The basic Windows UI was already pretty good by Windows XP. All it really needed was reorganizing stuff that’s mostly in Control Panels, but not in the way Vista did it by burying stuff behind descriptive categories. Put some stuff in dedicated utility applications, other things in control panels. Nothing drastic, just reorganizing things that are already there and getting rid of some of the tab soup you run into when mucking about there.

Windows Views is designed for touch interfaces. Here, stuff never opens in panes. Instead, the basic UI component is the view – something that takes over the entire screen. On top of that you’d only have dialogs, tooltips, and split views. You interact with these mostly through gestures, and the views are connected to each other through animations that give a spatial picture of the information you’re navigating. So you zoom in to drill down, zoom out to pop back to where you were, swipe left, right, up, or down, and so on.

The powerful thing about Windows is that it could retain the full API’s under each of these shells, and it could even make it possible to switch between the two extremely easy, e.g. on touchscreen laptops. Set it on a desk, pull out the keyboard, and it automatically switches to Panes. Pick it up, push in the keyboard, and you’re in Views.

Of course, applications would have to be extended to make use of Views. Older ones could only run in Panes. Ones written for Windows Phone would only run in Views. As developers get into things and implement Panes UI’s for their things, they would work in both. But for most applications, there isn’t even any real point to such a thing, or at most you would want limited capability in the UI for which they’re not designed. It’s unlikely you’d even want to do extensive work on a Word document in Panes, for example, but you might want to display one or comment on one, so only those features could be enabled in Panes.

Seriously, Microsoft. What the hell are you thinking?

Windows

So I decided to install Windows on my Mac. One reason is curiosity. I do work in software after all, and I haven’t used Windows since Vista, and while the Mac gated community is all very safe and polite, I felt I’m getting out of touch with things. Another reason is my hobby project, the Numenera character generator: I have no way to test it on Internet Explorer, and while I’m not a huge fan of the browser, I would like to get it working there too, eventually. (Surprise: it currently doesn’t.) And another reason is games. I’ve cut down a lot on them, but do want to play from time to time, and some of the ones I want to play are only available on Windows and don’t run at all, or very poorly, on Wine and other workarounds.

It was not an entirely painless experience. A little like this, actually.

I duly logged into Microsoft Store, made an account, and bought a license. Since my Mac doesn’t even have an optical drive, I decided to go with the download.

It was a file named WindowsSetupBox.exe. Turns out you need Windows in order to install Windows. Genius.

If I was an ordinary mortal, that would have been that, really. Fortunately I am a highly-trained ICT professional working in a company of similarly-highly-trained ICT professionals, some of whom have Microsoft Developer Network (MSDN) accounts, so all I had to do was ask if Pablo could download me an ISO file of the installation media.

From there on out, everything went like Apple and Microsoft say in the documentation, more or less. I had gotten a bit adventurous trying to work around the problem, which resulted in a bunch of junk partitions on my disk I had to jump through some hoops to get rid of — and finally a bit more space allocated to Windows than I planned — but it worked. I’m in Windows as I type this, as a matter of fact.

Still, why, Microsoft? Why don’t you provide downloads of those ISO files? They’re useless without a license key anyway — and people who want to pirate Windows will find them on The Pirate Bay anyway. This just seems like pointless aggravation.

The only reason I can think of is that they don’t actually want Mac users to see the glory that is Windows 8.1. I can think of a few reasons for that. Like the installer itself which was, while much simpler than the last one I used, still very clunky compared to the simplicity of setting up OS X.

Simply and bluntly put, Windows 8.1 feels… wrong. It’s like someone tried to put the chassis of a Jaguar E-type on a tractor, and then let the Pimp My Ride guys loose on it. A lot of the new stuff is obviously designed for touchscreens and doesn’t make a like of sense on a big-screen desktop machine. Why do I have to have the Start menu take up an entire 27” screen’s worth of space when it would fit perfectly well in a postcard-sized area at bottom left? Why do I have to dig through things to get at such a basic thing as a file browser? Why is everything full of big tappable icons, except those parts that are still full of small expandable directory trees, typeable fields, and clickable targets?

Over the past year or so — last six months full-time — I’ve been rewriting one of our major user interface components. Now it has separate desktop and touchscreen user interfaces, with only the “guts” shared between the two. (Most of the logic is actually in the guts, but I digress). It turned out pretty good. The desktop UI is much better than the old one, and the touchscreen one is — for a first effort at a touchscreen UI — pretty good too, I think. Our test users have liked it too.

It did not even occur to me to try to make the same UI work for both. They’re just too different. You interact with one of them by pointing, clicking, typing, and tabbing. You interact with the other by tapping and swiping (mostly). In the former case you have a biggish screen and things have to be big enough to easily see and hit with a mouse, but no bigger than that. In the latter case, you have a small screen and things have to be big enough to hit with a blunt instrument. They’re not the same. 

As a hobby project, I’ve been working on that character generator. There, I have tried to make a single UI that works acceptably on both a large tablet and a desktop browser. It’s not quite there yet, but it’s kind of OK. Some things feel more natural on a tablet, others in a desktop browser. I’ve tried to prioritize the feel by where I’d expect the features to be used, mostly. So creating, modifying, and printing a character is better on a desktop browser, but the play view which you’re likely to use at the table is smoother on a tablet.

But it’s just a little strained and uncomfortable. And that’s just a simple app performing a simple function, not an entire operating system.

So what on Earth possessed Microsoft to make this thing? It feels much wonkier and clunkier than any Windows I’ve used before on the desktop, and it’s clearly not making much headway on tablets. And this is the second iteration of the design already (if I didn’t have the Start button I really would be mad.)

Seriously. I hear Windows 7 wasn’t half bad, but I missed out on that one. How hard is it not to make something worse with every iteration anyway?

Numenera and my problems with closed licenses

I closed my Ninth World Hub account last night (and my Google+ one, which I only created to join the Numenera community there). Apparently all of my messages on NWH disappeared with my account. That was not my intention. Here’s the deal in brief.

I am really thrilled with Numenera. It’s the PnP game system I’ve been waiting for all these years. So I got involved and produced some stuff related to it. This includes a character generator and a cypher generator. I also wrote a story. Just a few days ago, Andrew proposed that we take his story and mine and find some more authors and artists and put together an anthology. I thought that was a great idea and said enthusiastically yes.

Why, then, the U-turn?

Numenera is not an openly licensed intellectual property. Instead, Monte Cook Games gardens their fan content with a Fan Use Policy and the MCG Limited License. There’s nothing particularly wrong about these licenses. I think I even understand why MCG are doing what they’re doing, and why they’re doing it like they’re doing. They have been most helpful resolving any confusion about these licenses too; if there’s anything I can fault them about it’s that they’re sometimes slow to respond. 

The problem is that because these licenses aren’t standard, well-understood open ones, there was a lot of discussion – sometimes dangerously close to argument – around these projects about what we’re allowed to do and under which conditions. When the Fan Use Policy came out, several people were quick to tell me “Oh, that’s too bad, I guess it means your character generator isn’t allowed because A, B, C.” Since it would often take days for MCG to respond to queries and clarify their intent, these discussions would often go on for a quite a while. 

In other words, I found myself fretting about licensing issues rather than imagining things to make. This, in my mind, cast a pall on the entire effort; it gave the community and the efforts a sour undercurrent that I tried to ignore. 

This is related to a personality quirk of mine. I deal very badly with anything related to legal or financial matters. They cause me much more anxiety than, as far as I can observe, most people. In fact I’ve arranged my life in a way that, as far as possible, such things take care of themselves, with minimal intervention on my part.

Then I lost a night of sleep over this.

Then I was in the middle of losing another one.

That, to me, was a pretty clear signal that I should stop. There are times when you just deal with stress and anxiety, but hobbies and pastimes are supposed to be enjoyable, fun, and relaxing. As much as I wanted to be a part of this – and believe me, I did – it wasn’t working out.

So I decided simply to stop doing it and do something else instead. I got up and closed my accounts, went back to bed, and slept happily until ten.

I will leave my character generator up (but probably won’t develop it any further, unless something my campaign requires comes up), and I’ve released my story (below on this blog) under the Creative Commons Attribution 3.0 license, which means that the good folk pursuing the Anthology project are free to include and edit it, whichever form they choose for the Anthology, should they so desire. I won’t, however, be producing anything new that’s Numenera-related.

I’m sorry about nuking the rest of the stuff I put up on NWH, as stated, that wasn’t my intent. (In fact, I nuked some stuff I would rather have kept myself. I don’t have a copy of the Tea story-nub, for example. I think.)

And I wish the Numenera fan community – @darkliquid in particular – all the best in their efforts. I will be keeping an eye on what’s coming out, but will be a consumer, not a producer or active community participant.

Hilfolk

I had been running for weeks when I arrived at Camp. I had no idea where I was or where I wanted to go, other than somewhere there wouldn’t be a Baron’s necht past every bend of the road. I’m a city brat, and stealing eggs from farmers’ falcon houses didn’t exactly come naturally, and hedges and ditches were not much of a hiding place. Away is where I had been headed, and Camp was about as far Away as a city brat can be without starving or getting eaten alive by something nasty with teeth.

The road had turned into a path, and the path into a rut, as it wound its way up the rolling hills where the laapa grew in vast, untouched stands. Laapa is good wood. Won’t rot, won’t swell in water if just lightly oiled, won’t crack, hard and tight-grained, but with steam you can bend it into all kinds of shapes. It was a logging Camp, belonging to some greasy-palmed merchant house up city-side, but that didn’t matter much up in the laapa hills.

I stumbled into Camp before sundown. I must have been a sight, too, my city clothes all in rags, my shoes falling to bits, and badly in need of a wash. I was looking to steal something to eat, but there was no way to get in without being spotted, and it was too far to go back, so I thought to hells with it and walked in. Camp had a fence and a ditch around it, a big hide tent with smoke coming out of it, and a few smaller ones. There were logs all cleaned up and stacked high, and there was a score or so  rough-looking folk sitting around some fires. 

And hilfolk. After being in Camp for a while, you tend to forget about them, but when you first arrive, they stand out. Hilfolk are tall and skinny, with sunburned pale skin, blond hair and watery blue eyes, and they’re all covered up with angular drawings, like really dense tattoos, only they change. There were a dozen or so around Camp, mostly doing nothing much. Some were gnawing at some old bones, one was digging around in a midden, the rest just standing or sitting around.

“You new? Go see Arnyk,” one of the human folk around the fire says, and jerks his head toward one of the smaller tents. 

Arnyk was a burly fellow, with a red nose and shrewd little eyes. He was sitting on a dirty cushion on the ground, bent over some book, and glared at me when I folded back the tent flap and came in. “Who are you?” he says.

“I’m Jennec,” I say. “They said outside I should come see Arnyk. That you?”

“Damn right that’s me. You here to work?”

“I guess,” I answered.

“Good enough. These are the rules. They’re real simple, I made them myself. Rule one, don’t be a dumb shit who does dumb shit that pisses me off, or I’ll feed you to the hilfolk. Rule two, make yourself useful. If you’re not useful, I’ll run your skinny ass out of Camp. If you are useful, you’ll get to kip in the common tent and eat from the stewpot, and if you’re really useful we’ll give you proper working clothes and even pay you in lumber. Any questions?”

“None,” I said. That seemed to please him.

“Then get out, I have work to do.”

The next morning at sunup I got up with the rest, human and hilfolk alike, and set to learning the craft of lumbering. Not that much to it; I was hale of body and had some use of various tools in the past, so it was a matter looking what the others were doing and joining in. I got the hang of it easily enough. It was sweaty work, even though the hilfolk did more sweating than the humans. We were yelling and slapping and kicking them to do the really heavy work of dragging the laapa logs to the rut where we had skids to move them to Camp, and then dragging the skids with the logs there when we came back at sundown.

Before the week was out, one morning as we were setting out, Arnyk sees us and says “You, boy, why are you not in your working clothes?”

“These are all I have,” I say. 

“Then go get yourself some,” he says and is off again. So I do. From that day on, I was one of the gang, and it was not long before I started earning a wage – to start with, half a log out of every hundred our team brings in, and going up from there. There was food to eat, and sacks in the common tent that we filled with fresh heather when we needed, if I got a rip in my work clothes there was Errolt to mend it, and I have had worse company. It was not a bad life, as such things go, and I think at times in those early days I was almost happy. 

That all started to change with the accident. We had gotten careless with a big laapa. It had a limb that was grown crooked. Soon as the tree starts falling, the bad limb catches on one next to it, tears off, and falls, and pulls down a big part of the other tree’s canopy with it too. I was the first to see it start, and that it was coming straight for Norfon and Eres. I let out a yell but I knew it was too late for them, there’s no way they could get out the way. 

Only, when I let out that yell, three of the hilfolk who were standing around near them sprung up, fast as lightning, and shoved them away. One caught the full force of the limb in their stead. Crushed it like a bug, it did. I ran up and looked right into its eyes as the light went out of them. Had the same placid look as they always do. But then, when it died, it just disappeared. Its markings suddenly stood out, real vivid and sharp, and convulsed, just once. Then it collapsed inward and fell into dust. There wasn’t even a smear left on the ground. I went back and checked, after we had the limb cleared and the log in the skid.

“Creeps you out, don’t it?” says Norfon. “Just wait ’til it comes back. First time I saw that happen, I didn’t sleep for a week. Oh, and, thanks,” he says. Thanks? That’s strange, I thought. It was the hilfolk he should thank. But turns out it was me after all, only they saw it before I did.

“Make it jump.” 

“What?”

“You heard me. Make it jump.”

I had been wolfing down the stew back at Camp just before sundown, that hilfolk’s placid dying gaze still burned to the back of my head, when Norfon said the boss wants to see me. I’d noticed folks were looking at me strange, but I honestly didn’t get why. I mean, it had been the ‘folk as had saved Norfon and Eres, I’d just yelled, is all. It was strange that we usually had to beat the living shit out of them to get them to do anything, true, and I’d never seen any of them move like that, but still. What did I have to do with it?

Arnyk had a hilfolk squatting on its haunches in his tent. Skinny, blond, with a big welt over one of those placid blue eyes, and the pics had a triangular pattern to them. Badly used, this one, even by Camp standards. 

Jump? I turned to look at it, and it jumped. Straight up from that deep squat, higher than any human could. I jumped too, out of sheer fright. Arnyk laughed and clapped his knees.

“Again! Make it jump again!”

I look at it, and sure enough, it jumps again, even higher. 

“Can you do two? Jollo! Asshole! Get me more of those useless shits in here, pretty damn quick!” 

My head’s reeling. Arnyk looks at me, looking real smug and pleased with himself.

“Are you fucking deaf or stupid, Jennec? I hope you’re not deaf or stupid, ‘cause I don’t like stupid shit, remember? I need you to do two.” 

“Do? What? Boss, sorry, but I’m kinda confused here. What did I just do?”

He looks at me, those little eyes of his like slits.

“You’re the one doing it. You tell me.”

There’s a yelling and thwacking coming from outside. It’s Jollo, driving two hilfolk into the tent with a stick. They stumble in and squat on the ground, like the first one. “Anything else, boss?” goes Jollo, and Arnyk sends him off with a wave.

“Do two. Hell, do all three. Jump!” 

I look at them. They jump. All at once, with perfect timing, like three copies of the same hilfolk. I get a cold feeling in my belly. Arnyk laughs again and claps his hands.

“Now make ‘em dance the cotillion.”

“What?” I was saying that a lot.

“The cotillion, shit for brains. Or if you don’t know what that is, pick any ol’ village dance. Make ‘em dance.”

Dance? I remember the Jerek’s Day pattern dances, there was someone… and I look at the hilfolk again, and they… dance. Their steps are perfect, way better than I ever could do them. The three of them make a triangle, link arms, whirl, unlink, two make a square with the third spinning between them, and then out and change.

The tent starts to whirl too, and things start going dark at the edges, and my mouth tastes like cotton. I sit down, on the floor, and just like that the hilfolk stop too, and flop down in their squats, their placid eyes on me.

Arnyk is grinning so wide his face could split in half. “You and I, my friend Jennec, are going to be shit rich, and the rest of the gang won’t be doing too bad for themselves either. Well enough to keep them in smoke and whores for a good long while anyway.” He reaches into a box and pulls out a round plast flask and a couple of mugs, pours, hands me one. I take it, my fingers feeling numb. He toasts me and I drink, mechanically, my head reeling. It’s good stuff, strong but smooth. Imported for sure, no way they could make poison like that in these conditions, besides I could swear there was no still in Camp.

“Boss… what was that? Please, tell me, this scares the shit out of me.”

Arnyk gives me a sly look over his mug. “You, my friend, have a gift. You can make those useless shits useful. We had one like that before, and those were some rich ol’ days.” 

“A gift?”

“Yeah.” He takes a long drink. “Look at those shits. What do they do if we don’t beat them into doing something? Nothing. Whole lot of nothing. They just squat and if they get really hungry, dig in some midden to find a bone to gnaw on.” He kicks at one of them, leaving a mark. It just rolls with the blow and then rolls back, right back into its squat, blue eyes as placid as ever. “See, nothing. Trouble is, they’re good as useless even with a stick to their backs. Horcs would do their job better, but I don’t have any horcs. But you, my friend, you can get them to do whatever you like just by thinking of it.”

“What? How? Why me?”

“I have no fucking idea, my friend Jennec, but I suggest you make the most of it. You think they might give good head? I fucked one once and that sure was nothing to shout about.” He looks at them in a way I don’t like at all.

“You want me to get them to do lumber work?”

“That, ‘though I don’t give a shit what else you make them do. We need to find out how many you can drive at once. The one we had before could drive a crew of six, and they went through the stand like a scythe through a field of ripe corn.”

“What happened to him?”

“Her. Beats me. One day she was just gone. Never came back. Been struggling to meet quota ever since. But now, thanks to my friend Jennec and his happy little band of useless painted shits, all that will change.”

That it would. It did not turn out quite the way the boss planned, though, and wherever he is, he didn’t take any lumber with him, I think.

It was well after sundown, and dark. I staggered out of Arnyk’s tent and back to the common tent. I suddenly felt hungry. There were a few scrapings left in the stewpot, mostly some bones and gristle, but they went down just fine. Then I crashed on my sack, and remembered nothing ’til the morning.

The next day was a blur. The boss got together a gang of six hilfolk, and got me to march them up and down the main path in Camp. Sure enough, I could do that. I practiced a little, getting them to pick up a log from the pile, roll it, drag it, put it back. It was easy. I just had to picture what needed doing and think ‘them,’ and they did it, better than I could have. So off we went into the woods again, me and my merry band of hilfolk, and most of Camp whooping and hollering behind us.

By then I was reasonably comfortable handling a saw and an ax, on or off a springboard, and with much of the rest of the craft of lumbering. That day I learned it takes more than that to be a lumberjack. If Eres and and Norfon and Grandma hadn’t been there to yell at me I would have been at least three hilfolk short, and very likely one or two humans too. I was no foreman. Even so, we felled nearly double our usual daily tally, and it was a lighter day than most, for us humans anyway. The hilfolk looked worn when we got back, and were even quieter than usual, squatting to sleep where they were after the logs had been stacked.

There was a party that night. Arnyk had sent in for more wagons for the next haul out, and more food and drink with it. I did not party much, though; although I had barely moved a muscle all day, I was exhausted, so tired I could barely stand and feeling strangely brittle, like that day had taken more out of me than sweat. Hungry, too, so I was happy about the food at the feast anyway. Venison, it was, meat off the bone, and marrow.

Rich. I had never been close to getting rich. Hand to mouth was my life, and the rare times there was a windfall I pissed it away fast as it came. But the idea of ‘rich’ felt appealing, I won’t lie. I had tallied that a year of work at Camp would be enough to earn me two or three logs, which would suffice to buy me passage on a ship out of Blackport with no questions asked, and a little to get me started wherever I should arrive. This new … gift of mine changed everything. Laapa was valuable, and I was the most valuable worker in Camp. That meant pay at the highest rate of one log out of every ten my hilfolk felled, and I would earn in three days what I thought would take a year, and in three months I would have enough to buy my own ship should I want one. I felt sick to my stomach and at the same time elated. I would be rich, and shake the dirt of this miserable barony off the soles of my shoes, and start a new life somewhere. Maybe I’d open a tavern, or a bawdy-house. My future looked sunny, those first week or two.

I couldn’t really say exactly when the nightmare started. Maybe it was when that hilfolk as had died in the accident started to come back. At least Norfon had warned me, though he hadn’t spoken about it since and I hadn’t pressed him. I don’t know what it was that got me to go back to the clearing where that limb had crushed it, that day as we were breaking for lunch, but I did, and there it was. First I thought it was a strange kind of mushroom growing from the moss; a pale-yellow hairy lump it was. But it wasn’t a mushroom. It was its head, the hair all spread over the ground, and the face with those placid blue eyes looking up at the sun, through the big hole in the canopy the great laapa that had crushed him had left. I wanted to run away, but I guess curiosity, or a strange fascination anyway, got the better of me. I got closer and squatted down right over it. Those eyes looked right at me. Blue and placid. I never could tell what was going on behind them, any more than a cat’s, although those pupils were round, not slitted.

“Are you all right?” I asked, stupidly, but it didn’t answer. They never do. I wondered if I should dig it out, or something, when I heard a step behind me. It was Norfon. 

“They come back,” he said. “Nothing you can do. A few days and he’ll grow right out of the ground, and then shake the mud from his feet and amble back into camp. Maybe get hisself killed again, the poor sod, and come back, again and again.”

“They’re immortal?” I asked. 

“Aye, or leastaways they keep coming back,” says Norfon. “Come, lunch is over. There’s trees to fell.”

I kept checking on the hilfolk, and sure enough, it grew like Norfon said it would. In a tenday, it joined its kin in the team I was running. By now all twelve hilfolk we had at Camp were in it; with it, they made thirteen. I couldn’t help but notice how much more hale the revenant looked next to the others; they were thin as rails, pale, covered in welts and bruises and scabs and scratches and bleeding from places. Only their tattoos were vivid as ever, stark against the pale skin, jagged zigzags on one, concentric squares on another, a mosaic of shapes that never seemed to repeat on a third. I had given them names in my mind; they were Zig and Jag, Box and Crackle, Bubbles, Whorls, and Triangles, and a few others besides. I never used them in front of others except once, and then Eres just said, “Never give hilfolk names. Never.”

Then they started dying. Bubbles was first. It was part of a team hauling a skid I knew was overloaded, and halfway back to Camp it just staggered for a bit, and started to fall, but before it hit the ground it fell into dust. I don’t know if I made up the memory afterward, but as I remember it, I felt a little chill, a little tremor when that happened, like someone dripping cold water along my spine.

We lost Zig and Jag before next day’s work – they got up all right but then collapsed into dust before they could take a step. Arnyk was none too happy about that, mind; yelled himself blue at the “useless shits,” and me for good measure. I figured we must have overworked and underfed them. We never gave them much to eat to start with, and under my command they were working far, far harder than before, when we were just beating them. Looking at them, I doubted any of them would last the day, other than Stars, the one as had just come back. 

I told Arnyk as much. He spat. “Pah, and now you tell me. We’ll have to feed them then. You’ve been eating three lads’ worth too lately, know that? And we’ll need to get you some more. No matter, we’re well ahead of tally anyhow.” He called three days off. We needed it, us almost as much as the hilfolk. Some of us had asked for town leave for a while already; without Arnyk’s leave, if we left Camp we would forfeit any of our pay that didn’t amount to a full log, and then have to start over from the bottom of the scale. But really, he needed the time to put together an expedition to get more hilfolk. He didn’t want to wait the fortnight it would take for Zig, Jag, and Bubbles to come back, and he had grander designs for me – and the hilfolk – anyway.

“What was Rule One?” 

“Don’t be a stupid shit, boss.” That was Reyhan. Nobody would be likely to call her a stupid shit. 

“Very good, boys and girls. Don’t be a stupid shit. Now, how do you get to be a stupid shit?”

“Do stupid shit that pisses you off, boss.” 

“Right again. Now, what would you say is stupid shit that would piss me off? Anyone? All right, I’ll tell you. I’ll give you a few fucking examples. I’ll even draw you stupid shits a picture. One example of stupid shit is inviting the Baron’s nechts in this here tightly-run Camp. I do not like the Baron’s nechts. They are busybodies and highway robbers when they can get away with it, and when you see one, it always, always ends up expensive. That expense, by the way, is coming out of your tally, not mine, not the Company’s. But you know what’s even bigger stupid shit than that? Anyone? I’ll tell you what: narcing out the horc that’s shitting logs of finest laapa for your fucking benefit, that’s what.”

Yeah, stupid shit. 

There had been big changes at Camp, ever since Jag and Bubbles and Zig got dusted. The boss had got what’s needed together for an expedition to get us more hilfolk. He sent out scouts to find a settlement, and sure enough there was one in a little dell about half a day’s march from Camp. Then a dozen of us – including my own sorry self, Norfon, Eres, and Arnyk himself – went to find us some. That went rather better than expected, at least for certain understandings of ‘better.’

There’s a thing about running hilfolk that’s a bit hard to explain. Several things. For one thing, I have no idea how I do it. I just want something done and think of the hilfolk doing it, and it happens. With one or two it really is as easy as that, but if there’s a team of six or twelve or more, I go into this strange kind of … flow, I suppose, is the closest word I can think of. It’s like I’m in the eye of a great big storm, and the hilfolk are the storm, only I know and see everything they’re doing, and am doing it, only not the usual way? Pah, I told you I can’t explain it. Anyway the upshot is that days when I run hilfolk are a bit of a blur. I don’t really have much idea of what happened afterward, although I recognise things if I see them right enough.

The day of the expedition ended up that way. The march up to their village was simple enough. The woods aren’t hard to march in; the canopies are lush enough that little sunlight gets through and there’s not much undergrowth. The only trouble would be if you ran across some rough ground or one of the gorges that cut into the hills here and there. Arnyk’s scouts had marked a trail right to the hilfolk village so we had no trouble like that, and the beasts left us alone too. 

There are some pretty nasty things in the Westwood, but in these parts at least they would rarely bother a group big as ours. Alone or in twos or threes would be a different matter – I only now realised how lucky I had been to reach Camp in one piece to start with.

The hilfolk village was a cluster of huts and some caves in the hillside, surrounded by a deep ditch and stockade, presumably to keep the beasts out, with two abso-fucking-lutely enormous snags in the middle. Laapas bigger than I’d ever seen. Bigger than any of us had seen, and believe me some of us had seen a lot of trees. Dead, stripped of bark, and carved from roots to highest limbs full of intricate lines and loops and figures, much like the moving tattoos on the hilfolk themselves. The weird thing about them was that you could seem them right and clear from the first instant we saw them as we crested the hill overlooking the village, and when we got closer it’s as if we just saw more of them. Like they always looked the same size, no matter where you look from. 

We marched right into the village. There were maybe two hundred odd hilfolk there. Looked much the same as ours, only better fed and less bruised. These ones were doing other stuff than just squatting in place or gnawing at a bone though – some were weaving something out of strips of bark, stuff like that –, but they were doing it in the same can’t-give-a-shit placid way they had about anything. They didn’t pay any attention to us at all when we walked in.

“So, Jennec, how ‘bout we see how many will jump to your call here? Plenty to go around, seems to me.” 

I nodded, swallowed, and thought “Jump.” 

They all did. Every last one of them. In perfect unison. It shook up even Arnyk a bit, but he recovered right quick. 

“All right then. Simple enough, we move Camp here. Plenty of useless shits for Jennec, a big, fresh stand, and it’ll be easy enough to clear a rut for the skids. The stand we set up for is almost done anyway. Jennec, get a score or so of those shits with us, and we’ll be set up here in no time. Then we’ll start with those two big ones. I think you and I deserve to pick which particular logs count toward our pay, no?”

That was two moons ago. It only took a day for the us and the hilfolk to move Camp into the village, and another two days to clear a rut good enough for skids back to the track where the big wagons came. Arnyk moved into the biggest hut in the village and called another three-day break, with town leave for those who wanted it. I took the second-biggest one, and if anybody objected they didn’t do it to my face, nor Arnyk’s.

Then we felled those two huge snags. Arnyk put his mark on one of them and mine on another. Those strange carvings faded when they fell. That single log was worth a lumber house in itself. Snag laapa is worth ten times as much as live to start with, and these were absolute top of the top quality. These wouldn’t become beams or pilings or even ships. Cabinet-makers for the longnails would would fall over each other for it, unless the zitar-makers got them first. I really would be rich.

Not that any of us were doing bad for ourselves. We were going through that stand like a cloud of arcis through a field. The clearing around Village got bigger and bigger, the piles of stripped logs higher and higher. We soon had a track all the way to Village good enough for the big carts, and they were coming and going daily. I may have gotten a bit careless with the hilfolk on the way. They kept coming back after a fortnight or so, so even if I lost two a day that left us only thirty short, and ninescore were more than enough to keep us going full speed. Someone up city-side must have been rubbing her greasy palms together pretty happily. 

Only then that dumb shit happened.

It was early morning. I woke up to the thud-thud-thud of horc claws, real close. Many of them. We had no horcs here, so it had to be the Baron’s nechts. I ducked out of my hut from the back door. There was nothing much there but the latrine pit. The nechts were yelling “Up! Up! Everyone out and lined up in front!” and tearing down the woven bark curtains that kept a bit of the night chill out of the huts. I panicked. I reached for my hilfolk but all I could think of was “hide me!” 

It worked. I have no idea what they did, nor how they did it, but they hid me. It felt like sinking into cool, clean, dark water. The yells and shouts faded into the distance. Everything was really peaceful. Nothing but a feeling of tremendous space, and endless time, and perfect calm. 

It felt like I was there for an age, but really it was only a bell or two. The nechts had torn up the camp. They had been looking for me. When they didn’t find me, they started to get seriously angry. Finally Arnyk had a private conversation with their leader and reached some kind of agreement, and they thundered off again. When I returned from wherever I was, they were gone, and Camp – Village – was a mess. They had set fire to a couple of the huts and generally smashed or broken everything they could, and if there were any valuables small enough to grab, they had taken those too. Bastards. Nechts. Just another kind of robber, except they never hang for it.

That left the question of who had narced me out to them, and why. Which was why Arnyk had us all lined up in the clearing by the stumps of those two giant snags, and was yelling at us. 

“It was me.”

Arnyk had been yelling at us for a while. Since he couldn’t figure out who the snitch was, he had rounded up everyone who had last been on town leave. That would be Grandma, Mugg, Norfon, Rollo, and Ten-piece. He was roaring mad and was going to feed all of them to the hilfolk, just like his Rule One promised. I had been arguing that it couldn’t be Norfon at least. There were some in Camp who I thought might’ve done it – they didn’t like my being Arnyk’s new favourite, not to mention that I was making more than ten times as much as the next biggest earner, although I had thought that they had the sense to see that their earnings had more than doubled too. Not Norfon! I was sure he didn’t envy me, he never was a suck-up to Arnyk, and I had saved his fucking life, back when that limb fell.

It was Norfon.

“Well, well. Norfon. Some of these others I know are dumb shits, but I did not expect it of you. Very brave of you to come forward. Very commendable, sparing your comrades. Now explain, and I might bash your skull in first before feeding your carcass to the useless shits.”

“What difference does it make.”

“So how much did you get? How much was the price on my friend Jennec’s head? That much more than what you’re earning here? What did he do, bed the Baroness and run off with the heirloom jewels?”

“Nah. The price wasn’t much and I didn’t even take it.”

“Now that is some seriously dumb shit. People, have you ever heard of dumber shit than that? No?”

“Please, Norfon. Tell me,” I pleaded.

“Can’t you see? Jennec, the Hilfolk! We’re murdering them. We treat them worse than animals, but they’re not. They’re folk. When it was just us, we only took a few and usually let them go after a while, but since you found your… gift, we’re burning through them like kindling. There aren’t that many. You know of any other villages besides this one that we’ve wrecked? You had to go, so things could get back to what they were.”

“Oh, the hilfolk,” Arnyk sneered. “Useless shits. Look at them. If they were any use, they wouldn’t let us do what we do. I swear on my father’s balls that if anyone did to my home what we’ve been doing to theirs, I would hunt down every last one of them, tear off their heads and shit down their throats. Well, Norfon, my friend, since you feel such kinship with the useless shits, you’re in luck because you will get to be very close with them. Very close indeed.”

Arnyk made us all watch the execution. He bashed in Norfon’s head with a sledge himself, and then had his corpse dragged to the hilfolk. They would never let meat go to waste. They ate Norfon, in the same calm way they did everything. I threw up until I was curled up on the ground, dry-heaving and spitting bile. I wasn’t the only one. 

Nobody would use that sledge since. Arnyk wouldn’t even clean it. He left it, the blood and brains congealing into a dark crust, hanging above his chair in his hut. A little reminder of who’s in charge, I’m sure he thought it.

We were a tough bunch. Had to be, with the life we were living. Things reached a new kind of normal soon enough. I found I could run all two hundred odd hilfolk at once, although then I fell into a deep almost-dream where at the same time I knew exactly what each and every one of them was seeing and doing and what needed to be done, and nothing at all.

Norfon’s betrayal and Arnyk’s justice had left us all feeling pretty glum. There wasn’t much talk by the fires after sundown, even less laughing, and more fighting than there used to be. Quite a lot really, for a bunch that was bone-weary. Arnyk worked us even harder, I think, just to keep us too tired out to cut each other’s throats. He also nailed up a big board to a stock in Village square, right by the pits where the twin snags had stood. We had dug up the stumps, even, the wood was that good. Ingo the tallyman marked up everyone’s tally there. We were getting rich. Every one of us in our measure. Seeing that tally go up kept us going too.

By now, I had almost enough marks on that tallyboard to buy myself into a longnail estate, wherever I would end up after this was over. A few more, and I would be set for life.

It wasn’t easy to keep at it, and it kept getting harder. I had developed a gigantic appetite. Seemed like the more hilfolk I was running, the more I had to eat. I had a special taste for bones, and if I couldn’t crunch a few every day, I felt like mine were becoming thin and brittle. The gang had made fun of that, before, but now they just glared or pretended not to notice. I didn’t care. 

Something else had happened too. When I lost a hilflolk, I felt it. No doubt about it anymore. It was like being stabbed, a feeling of a cold blade sliding in between your ribs, only not in any particular place. First time I felt that I got scared, and from there on out I did even more to keep the hilfolk safe. For Norfon, too, the sorry bastard, may he rest in peace in the hilfolks’ belly. 

I also got Arnyk to make sure they had enough to eat. The carts were bringing up plenty; with the lumber we were producing we could afford to eat like kings up here, and we did. I just made sure the hilfolk kept their bellies full too. They didn’t get any less skinny even so, but at least they stopped falling into dust after a hard day’s work. Soon I wasn’t losing two a day or even one a day, but barely any at all. Arnyk grumbled about that. He thought it was because I wasn’t running them hard enough, but if that was so it didn’t slow the logs piling up any.

Zig, Jag, and Bubbles came back too. Good thing for Bubbles that we had moved Camp into Village, so the cart track no longer went where it was before, because the carts would’ve rolled right over Bubbles’ head as it was pushing up from the ground, and I don’t think the drivers would have stopped for that.

Then things got seriously weird. 

It had been a particularly hard day. We were getting close to the limits of the stand, and the ground there was too rough and steep for the skids, so we – the hilfolk, that is – had to carry the logs a fair bit. I was exhausted, so much so that I could barely totter back to Village. And no, having the hilfolk carry me would not have helped; it was running them that was wearing me out in the first place.

When we got back, I crashed into bed – yeah, I had a proper bed, no more heather-filled sacks for me – and went to sleep. Only it wasn’t exactly sleep. It’s more like going right through sleep, and to that same place I was when the hilfolk hid me from the Baron’s nechts. Only this time I kept going, and here’s where things become difficult to explain, because when I say I saw or felt something, it was seeing without sight and feeling without touch. It was there, but not there, if you get what I mean? 

To start with, I felt the hilfolk in Village, all two hundred and fourteen of them, like knots in a glittering web. I was in the centre of that web, connected to them with silver strands. Then I felt more: faintly, all of us humans, like little dark clots caught in that silvery web. The hills faded into my mind, their slopes and ravines. They were breathing, and I could feel a knot of red crawl through my mind and knew it was one of the forest’s great beasts on the prowl for something to catch. Then all that flowed in too, and deep like a thrumming blue note, the vast stands of laapa, and festering, the gash we had cut into it. I plunged deeper and deeper into the dream-that-wasn’t and it took in more and more: the Mystwood, the lands around it, the sea, and by the shiny teeth of the Bonecaster, time. I could feel the laapa sprout and grow and fall, the land itself crawl across the surface of the world, splitting up and crashing together, rearing up mountains and grinding them down, and all along the hilfolk in a glittering web that waxed and waned, spread and contracted, but always there.

I knew then where the hilfolk truly dwell. If you have lived to see a mountain rise, be ground to a hillock by flowing ice, grow a forest which becomes a desert, ten, twenty, thirty times over, what does a miserable shit like Arnyk mean to you? Nothing. The hilfolk weren’t silent because they were mute or mindless. They were silent because they had nothing to say to mayflies like us.

I was lost in that dream-that-wasn’t for what felt like lifetimes. When I found that spark in the centre of the web that was me again, I was burning red-hot with rage. At the Baron and his nechts. At being hunted down by them. At fear. At pain. At running. Most of all the wound we were making, at Arnyk and his petty greed, at and for Norfon now in the hilfolks’ belly. When I returned to this world, it was to pain and screams. I was running all the hilfolk in Village, exhausted or not, and I was running them for blood. I was kicking over firepots. My hands, stronger than human, were tearing down huts, pushing over stacks of logs, ripping out throats, crushing skulls. I was also sitting perfectly still on my bed, as the storm flowed through my mind and destroyed all that we – I, Arnyk, all of us – had been toiling for.

The last I know of that is Arnyk bursting in, bloodied and with a fire in his eyes, in such a rage that he could not even manage his usual “useless little shits,” nothing more than a scream more bestial than a beast’s. In his hands, the sledge still crusted with Norfon’s blood and brains, headed straight for my head in a beautiful, slow arc, as unstoppable as the glaciers that had ground down those mountains.

That should have been that, and I should not be here telling you this tale. Yet it wasn’t.

I opened my eyes to sunlight. All was peaceful. There was a cool, fresh breeze on my face with the scent of sap and earth. There were some yolmurs chattering in the distance, and the sound of running water. I tried to turn my head, but couldn’t move. That did not worry me unduly, and I remember being mildly surprised at that.

The sun rose up high, and then started to set. The shadows moved and eventually reached me. Night came and it got cooler but I did not feel a chill. Dew wet my face, and the sun rose again, and again, and again. 

After three sunrises I could move my head. I was in Village. There was no sign of the destruction of that night, nor the wound we had made on the land, nor any humans I could see. Only hilfolk. The huts were neat and orderly, the woven bark curtains at their doors. In place of the twin snags were two enormous pillars of wood, now alive with the same markings I had spied when I first crested the overlooking hill. I felt my two hundred and fourteen kinfolk going about their quiet business all around, paying me no heed.

Eleven days later, my feet came free. I left for the lowlands. The Baron’s nechts would not be looking for one who looked like I. Perhaps I would return to the Mystwood in an aeon or so. The hilfolk had made me their own, or perhaps I was one of theirs from the beginning, but I was too much of a stripling not to wither in the shadow of such giants. So down I came.

I sometimes wonder if that red-hot anger I felt when tearing up Camp was mine, or the hilfolks’. I’m inclined to believe it was mine. They’re too old to get angry at little things like that. But then they must have finished what I began, after that sledge of Arnyk’s connected, unless it was still me, running them from some realm so deep I have no recollection of it, for of Arnyk or the rest of our merry gang of lumberjacks the only sign that was left was that brown-crusted sledge. It was sticking out from the ground, not far from the giant wooden pillars that were the snags, like Arnyk was still holding it, under the ground. Maybe he was at that, I did not check. 

Much later, I spoke to an wise woman in Venkathar, and showed her my tattoos. She said that maybe the hilfolk were made by a world long past to be their slaves. Now the slaves had outlived their masters. I had the spirits of those masters in my blood, which made them obey my will. I don’t know if what she said was true, but as explanations go, it will have to do. 

That, my friend, is what these scribblings on my skin mean.

Another rant on the woo of hi-fi

I know I’ve ranted on topics of deeper import than this, but what the hell.

I like to listen to music – enough to go fairly regularly to live concerts anyway, and to listen to it at home with attention. (I don’t like background music much, on the other hand.) The fidelity of the sound reproduction makes more of a difference to the latter than I thought. Music isn’t just music; it reveals itself more when you can hear it clearly. I get  kicks out of hearing things in it that I didn’t hear before.

I’ve steered clear of hi-fi until now. That is, I haven’t attempted to understand what happens in sound reproduction, nor how to make it work at home. I haven’t spent any big bucks on gear – not even now – and I haven’t paid particular attention to how I’ve set it up. The reason is, I think, that there’s something unpleasant about the hi-fi scene. High-end audio is ridiculously expensive. I’m talking Ferrari expensive. There’s a concomitant impression that if you’re not ready to casually drop twenty, fifty, or a hundred and fifty grand on your hi-fi system, you won’t be able to get, well, high fidelity.

I have discovered that all that is bollocks. There’s nothing magical or crazily exclusive, nor even terribly difficult about high-fidelity stereo. Digital recording and playback democratized the bejeezus out of it. The upshot is that the snobs came up with a whole new mythology around it, of cables that cost twenty grand, of amplifiers that “expand the soundstage” and “mellow the sound”; of CD players costing in the thousands or even tens of thousands that make that stream of bits much more musical; of turntables and phono pre-amps  that will get better sound out of carefully selected audiophile-grade LP’s than your humble iTunes download or discount-drawer CD.

And it’s all a big load of bollocks!

Unlike any similar scene I’ve looked at, most of those audio upgrades provide no tangible benefit at all.

The sad thing is, I can totally get the appeal of, say, a lovingly hand-crafted tube amplifier. It’s like a lovingly hand-crafted mechanical watch, with the additional benefit that it (probably) doesn’t perform any worse than the hi-fi equivalent of a Casio G-Shock. The difference is that nobody in the watch scene claims that a lovingly hand-crafted mechanical watch – an A. Lange & Söhne, say – will keep the time more accurately than the Casio. Quite the contrary, in fact. But your golden-eared audiophiliacs will claim, contrary to both argument and evidence, that said hand-crafted tube amplifier will sound better than a two hundred buck Yamaha or Sony grabbed from the local electronics superstore. 

Similarly, I can totally get the appeal of vinyl. LP’s are wonderful artifacts, with their big sleeves and cover art, and that every one is unique. The sound of an LP is appealing the same way a grainy black-and-white photograph is appealing: the rumble, wow, surface noise, and occasional snap and pop give a sonic overlay that tells you that this is a recording. It’s fun to play records. But they are not higher fidelity – truer to the original recordings – than CD’s or other (uncompressed) digital recordings. They’re lower fidelity. In fact, almost all LP’s made in the past 20 years were recorded, mixed, and mastered digitally; the only difference between the LP and the CD is that you get the LP’s characteristic degradation on top of the digital recording. Conversely, if you digitize your LP collection, it will sound exactly the same when played in the digitized versions (assuming you have decent equipment to do the A/D conversion and don’t screw it up, which are admittedly fairly big ifs). 

Yet there’s a whole industry that lives on convincing people that digital is for wannabies and those who want real hi-fi still listen to LP’s.

The whole hi-fi industry is built on this kind of bullshit: on making you feel that your gear is inadequate, and making you upgrade, upgrade, upgrade. Since we’re so incredibly suggestible, every upgrade will sound better – in your mind, that is. But objectively, it won’t. Unless you’re upgrading speakers, and those only up to a certain point, and subject to any number of caveats. It pisses me off.

So what’s the secret of getting high-end sound for cheap, then?

Simply this.

Buy a good pair of speakers. If you have a small room, bookshelf-size ones will do fine. If you shop used, you can get 90% of high-end sound for about a hundred euros, and into high-end sound territory – where the limiting factor will probably be your room, whatever you do it, rather than speakers – for maybe a thousand or so. This is probably the hard part, since it’s hard to tell what the good ones are without making a few mistakes. (On the other hand, speakers from well-respected brands are easy to sell, and if you bought used, you probably won’t even lose any more than the shipping.)

Then buy or scavenge an amp. A cheap A/V receiver will do. I just saw some slightly tatty but relatively new and perfectly functional ones at the local recycling center for about 50-70 €. There was a Sony and a Yamaha if I recall correctly. It will sound exactly as good as a 50,000 dollar Krell.

Then get a source. If the A/V receiver is relatively new, it might have a digital USB audio in port. In this case, your computer will do. If it doesn’t, and your computer doesn’t have a tolerably good sound card, you’ll need a CD player. You can buy a perfectly good one used on eBay for about ten euros, if you can’t scavenge one for free from somewhere. 

Then get some cable. Dig through your drawers for an RCA interconnect; they tend to come with things like TV’s and related paraphernalia. If not, buy one. It costs about 10 cents.

You’ll also need speaker wire. Ordinary power cable will do just fine, you can get that at the hardware store by the meter.

Find a room. Put the speakers in the room somehow, so that you and the speakers will form an isosceles triangle with you at the apex, with an angle of between 60 and 70 degrees between you and the speakers, with your chair against the wall. The speakers shouldn’t be against the wall, nor (worse) in a corner. Put a big soft pillow behind your head. If you use the room for other stuff so that it’s cluttered, great – bookshelves and books are especially good, as a rugs, soft cushions, curtains, and anything that breaks up the flat surfaces of the walls, floor, and ceiling. 

Then connect everything up, making sure that red goes to red and white  (or black) goes to white (or black).

Sit down and listen to some of your favorite records. The thing to listen for is for the music to “snap into focus” so that you can hear where each singer, instrument, or group of instruments is. If you can hear not just left-right but also front-back, awesome.

There is a real difference between speakers in this respect – and in my limited experience, the speakers most likely to give you this kick are studio monitors – that’s what sound engineers use when they record the damn things, and because they’re tools rather than status symbols, they’re also usually less expensive for any given quality point. The twist is that you might have to listen to them for a while before you learn to like them, as “normal” speakers are often tweaked to make the music bassier than it was when recorded, which is often initially more pleasing. I have it on good authority that this initial positive impression usually fades in about an hour, though. Which is one reason listening to speakers at the dealer’s – especially when the dealer is trying to sell you something – isn’t as helpful as you might think.

Then move the speakers a bit. Pull them closer together, or spread them wider apart. Push them towards the wall, or into the room. Move your chair. Furniture permitting, rotate the whole arrangement 90 degrees or so. See if it made a difference. 

Decide which one you like best, and you’re done.

Anything you spend on top of this is cosmetic. You can spend a few tens of euros more on nicer-looking cables and connectors; you can buy an amp and CD player that look good and where the knobs feel nice to turn or the remote control isn’t studded with buttons. And if you can afford a beautiful hand-crafted tube amplifier, then hey, there are worse things you could be spending your money on I’m sure. If you feel compelled to upgrade, then try different speakers to see which ones you like best. Again, the used market is great.

But do not buy into the hype that you can’t have “real” hi-fi without spending a fortune or getting an electrical engineering degree. That’s the mythology that the industry lives on, and it’s all lies.