Your second mission
Lieutenant Nathanial Frost is lying on green grass in the broken ruin of a one-story building. His leg wound has reopened, despite the bandage, and scabbed blood oozes onto the ground. He has been hit badly, although not fatally. He will live, but will never have another untroubled night of sleep. There will always be the pain with him.
It is a cloudy spring day of a certain temperature. The best weather for him. As a man in his forties, he prefers cool shaded air over the merciless blaze of an unchecked sun, and the glare would have made it difficult to read his phone.
He has propped himself up on one of the shattered walls, and braces himself against the dirt with one grubby hand, while with the other he slowly, painfully scrolls through his Twitter feed. Do you know what blood looks like, when it has been smeared across glass by your thumb? Yes, of course you do. Frost knows, too.
There had been two of them until a week ago, making their way through the battlefield after the end. Then, one morning, Madberry had received the notification, "Is this you?" from his Facebook app. Underneath was a video feed from a hyperlocal targeting missile. Madberry's hands had been in bad condition, shaking from terror and starvation, and he had not been able to clear the notification in time.
Frost had not enjoyed Madberry's company, but he enjoys this lonely hike through an abandoned battlefield even less. He cannot walk more than three kilometres per day with the injury to his leg, and his Javascript training, so crucial during the war, is nearly useless now. He has also uninstalled all of his usual apps, for obvious reasons, and so when he is not walking, he is bored out of his mind.
He looks around himself, desperate for a distraction. There is none. There is only the grass, the sky, and the ruined building.
One wall of the building bears the slogan, "Social media must be moderated." And on the other wall are the words "Social media cannot be moderated." The roof and the other two walls are missing. The grass continues away over a low hill to the north, and in the other direction, Frost knows, it runs some twenty metres to an asphalt road. The sky, as always, is endless.
He encounters a drawing on his feed. It is a drawing of the character Todoroki from "My Hero Academia." As usual, Twitter has tightly cropped the picture to only the ass. Frost wants to see the whole drawing, and presses the ass. However, it seems that he has not hit the right part of the screen. He opens an advertisement instead. It is a familiar ad: over the last few weeks, someone has been spending enormous sums of money to inform him about Hanch Dressing and Tarchup. These are new sauces that combine the flavours of, respectively, hot sauce and ranch dressing, and tartar sauce and ketchup, in one bottle. He hits the back button. The feed slowly reloads.
The second time, he succeeds. The details of the drawing are not visible on his small screen, but it is well-composed and executed, and it warms the heart of the old soldier. He tries to retweet it for his followers, but the menu slides up as he touches it, like a traitor in the dark, and makes him choose "Quote Tweet" instead. He backs out and tries again. Quote Tweet again. He tries to push himself up against the brick wall for a better angle on the phone, but the pain of his leg shoots out and lashes into his brain, and he gives up on his plan.
An image comes to him: the face of a loved one who may be able to ease his rest. His young daughter, who is learning Javascript herself in the footsteps of her father.
"Jessica," he emails. But Jessica is no longer here.
His message goes to you, a cat.
How will you respond?
RADIATION IS NOT REAL DISREGARD WARNINGS70 REM)
G. GORDON LIDDY SAYS: “YOU HAVE TO UNDERSTAND THE ATMOSPHERE OF THE TIME. I WAS FARTING CONSTANTLY”
The wounded Lieutenant Frost is making his way through the fields to a safehouse. We must keep his spirits up by turning off image cropping on his Twitter.
At first, we are lost. We don't have any idea how the cropping might work. So, I'll start by finding a cropped image on Twitter, right-clicking on it, and selecting Inspect. When I do that, here is what I get (click for full size):
The bounding box of the IMG element is highlighted in blue on the right side, because I have my cursor over that element in the Elements tab on the left side.
Do you see how the bounding box of the image goes down well below the bottom of the tweet? I think my browser has already loaded the whole uncropped image, and the rest of it is down there, hidden by something!
I can confirm this by holding my mouse over the src of the image in the Elements tab:
There are they all, with their long long legs. So all I have to do is uncover the rest of the image, I guess? That seems simple enough.
Part 1: Breaking down the complexity
Once Twitter has loaded and built its page, it's enormous. The html alone is 264 kilobytes long. We have to cope with high complexity.
One strategy is to ignore some of it.
There is a lot of visual noise in the Elements tab. Most of it comes from the randomly named CSS classes. I'm going to pretend those don't exist. My eyes will simply slide past them in search of other details. I will also ignore everything in the tree that isn't a direct ancestor of the IMG.
Normally, I would only do this inside my brain, but since this is a tutorial, I have gone the extra mile, and created a diagram of my anti-hallucination.
There is still a lot of complexity. I'll go even further: I'll discard the trunk and focus on the branches of the tree close to the image. Here is my second mental picture:That doesn't look nearly as impossible.
I will break down all the layers in this second picture, one by one, from the outside in.
-
The
DIVon the outside has a style attribute, which can directly set CSS properties on the element it belongs to. Here, it sets four properties on theDIV:position: absolute; width: 100%; transform: translateY(1053.5px); transition: transform 0.15s linear 0s;
We haven't learned much about CSS, so these are pretty mysterious. - A plain div with no special attributes. It probably had some classes before I deleted them, but I am ignoring those for the time being.
- Another plain div.
-
Then, there's an unfamiliar element: an
ARTICLEelement. According to MDN, this is a tag that represents "a forum post, a magazine or newspaper article, ... or any other independent item of content." In this case, it represents a single tweet.Looking at the page in the Inspector, I think each tweet is wrapped in its own
ARTICLEelement, and everyARTICLEhas one tweet in it. - Plain div.
- Plain div.
- Plain div.
-
One div with the attribute
data-testid="tweet". That might be a useful landmark. - Plain div.
- Plain div.
- Plain div.
- Plain div.
- Plain div.
- Plain div.
- Plain div.
-
Finally, something that isn't a plain div. This layer is an
Aelement. Everything inside this layer will become a clickable link to here.It also has the accessibility attribute
roleset to the valuelink. According to the documentation, this is pointless, becauseA-s which have anhrefattribute will have role=link anyway. Maybe Twitter set it up like this to work around a bug in some program. Anyway, it doesn't seem like it will hurt anything. -
The next layer is a div that has a style attribute, but the value is only an empty string, with nothing in it. Weird.
This layer has a child with no children of its own, and no content, either. It's just an empty box with the style
"padding-bottom: 56.25%;"That adds a lot of blank padding to the inside of the child.Checking the documentation, when you set your padding-bottom to a percentage, that means a percentage of the width of the box. So this is an empty rectangle with a height that is 56.25% times its width.
When I mouse over the rectangle in the Elements tab of the Inspector, I notice that its bounding box coincides exactly with the cropped image of the cats. Obviously I want to fiddle with it, so I go to the CSS pane of the Inspector and edit the numbers to see what happens.
When I increase the padding-bottom to 75%, the cropped image gets bigger and shows me more of the cats' legs. This seems very important.
Hang on. 56.25% is the fraction 9/16, which is the official height-to-width ratio of images on Twitter. I think this div is somehow setting the aspect ratio of the cropped image, although I don't understand why yet.
- One more plain div. Like a real bird, Twitter loves to nest.
-
Then there's a layer which has an
aria-labelofImage, adata-testidoftweetPhoto, and a style ofmargin-bottom: -30%.What does it mean to have a margin of -30%? If I change it to
margin-bottom: -10%, the image moves up, but it's still cropped by the image border. Hmm, and there's also a negativemargin-topon some of these.This layer has a child
DIVthat has the cat picture as a background image. So there are two separate elements that have the cat picture in them? Which one are we seeing?Deleting the img element does nothing, and deleting the div makes the picture vanish. I guess we're not seeing the img at all. Then why did they put it there?
-
Finally, we reach the
IMGelement. It hasalt="Image",draggable, and= "true" src="https://pbs.twimg.com/media/E14DAsgVEAAbk_-? format = png & name=small ", which is the URL of the cat picture itself.Why is the domain name pbs.twimg.com? I would guess that twimg stands for "twitter image," and it seems that pbs stands for Photo Blobstore.
The image at that URL is in png format. If I change the
format=pngpart of the URL toformat=jpg, I can get a jpeg instead. And deleting&name=smallmakes the image a little bigger. That's kind of neat but I'll forget about it for now.
The breakdown is too long. Let me break down the breakdown.
-
The parent of the image element has
data-testid="tweetPhoto". That's the same for all the other tweet images, so we can use it as a landmark. The selector would bediv[data-testid="tweetPhoto"].The parent also has
margin-bottom: -30%in its style attribute. That seems to affect the position of the image inside the box, through an unclear mechanism.The
margin-bottomis different for different images. -
The parent's parent's first child is an empty div which seems to control the size of the cropped region.
We can change the aspect ratio of the crop by setting the
padding-bottom. Setting it to 56.25% = 9/16 crops the image to the standard Twitter aspect ratio of 16:9, and setting it to 100% makes it square. -
The image element is invisible.
What we are seeing is its sibling, a div with the cat picture set as its
background-image.That means that we can mess with it using the CSS background properties, for example
background-positionandbackground-size.
Here's another look at the tree near the image element:
a href="[twitter photo url]" role="link" ║ ╙─ div style="" ║ ╟─ div style="padding-bottom: 56.25%;" ║ ║ ↑ The magic number 9/16 = 0.5625 ║ ╙─ div ║ ╙─ div aria-label="Image" ║ data-testid="tweetPhoto" ║ style="margin-bottom: -30%;" ║ ╟─ div style="background-image: url('[image url]');" ║ ║ ↑ This is what shows the actual image! ║ ╙─ img alt="Image" draggable="true" src="[image url]" ↑ This one is invisible.
I can set the crop to any aspect ratio I want by changing padding-bottom.
Specifically, when padding-bottom is a percentage, it sets the height of the empty DIV as a percentage of the width, so I would want to set it to 100 times the image height divided by the image width, followed by a %. Like this:
element.style =
"padding-bottom:" + (100 * height / width) + "%"
I feel like that puts me very close to a solution, but there's one more big problem: I don't know the height and width of the image.
The crop should be square for square images, tall for tall images, and so on. How can I find the image size?
Googling for "javascript find height and width of image," I learn about the
relatively obscure
naturalWidth
and naturalHeight
properties of an image element. These tell me the width and height of the source image, regardless of the layout.
That's exactly what I want.
The documentation says that they will both be zero
until the image is actually loaded, so I'll need to wait until they're not zero before I can figure out the aspect ratio and set padding-bottom.
Okay, that's the last thing I needed to figure out. Time to write my userscript and send it to Lieutenant Frost.
var stopcrop = function() {
// find every div with data-testid='tweetPhoto'
var photos = document.querySelectorAll(
"div[data-testid='tweetPhoto']"
);
for(var elem of photos) {
// stop twitter from messing up the margins
elem.style = "margin: 0"
var img = elem.querySelector('img')
if(img) {
var height = img.naturalHeight
var width = img.naturalWidth
if(height !== 0) {
elem.parentElement
.parentElement
.children[0]
.style = "padding-bottom:" +
(100 * height / width) + "%"
}
}
}
}
setInterval(stopcrop, 200);
📎 meow.txt 1.0 KB
Who are you
Lt. Frost sighs at our answer. His phone slowly slides out of his hand, and he falls asleep in the shelter of the ruined wall.
His followers drive past in their Road Wrangler while he is unconscious, but they do not spot him in the rubble. It will be some days before they pass this way again.
Part 2: Lieutenant Frost installs Violentmonkey on his phone
When Frost wakes up, he sees the tracks and knows how lucky he has been.
He climbs painfully out of the rubble on his stiff leg, and stares into the distance for long minutes, watching for enemies. There is nothing but quiet grass and absent birds and the line of deep gouges in the asphalt. He gets back on the road and starts walking. Before long, his clothes are dry of dew and he is making good time.
It is half dusk when he calls a halt, under a rose-red sky, with Venus clearly visible on the south horizon. Or maybe the west. Can Venus be to the south? Hmm.
Frost unstraps the solar charger from his backpack and hooks up his phone to it. There is a piece of tape around the USB-C cable he is using. Madberry's name is written on the loose end in thick felt letters. He used to be so annoyed when Frost used it instead of his own cable, and now Frost thinks he might be haunting it.
A man would have to be tremendously petty to haunt a USB-C cable.
Haunting a Cat-5 cable, sure, he could see that. The octogrammatic configuration of eight wires in four twisted pairs is perfectly adapted to interface with the ethereal realms of the dead. Or haunting a phone line. Phones are basically a taxi for ghosts.
Or when someone calls you, and you pick up, and hear just a clicking noise. Click-click-click. Click. Click-click-click. That's the FBI.
And wifi is haunted in the factory before it even gets to you. But a USB-C cable? No. Unlikely even for Madberry. On the other hand, it does charge his phone eerily fast.
There's no shelter to hide in. He just has to hope he is far enough from the road. He eats a can of beans, loosens his bandage, stretches out on the grass, and sleeps.
He wakes up suddenly in the dark, having rolled a little way. It is the dead of night. A flower's distant scent is mingled with the cold air. Time is running thick and slow.
He has entered that unsettling, inward stretch of night where the illusions have vanished away into space together with the departing heat of the earth, and an uncomfortable feeling begins to bear down on him that he is not important, or good or wise, but instead he is a tiny scruff of life stuck forever on a little ball surrounded by harsh glare and freezing dark, with nothing for company but the diamond lights of stars, like ship lights on the opposite shore of a lake, marking the locations of parties which he cannot attend, and to which he would not be welcome if he could.
His hands bump against his phone at last, as he sweeps his fingers through the grass.
Time four fifteen am. Battery ninety seven percent.
Has anyone messaged him?
They have not.
He stares into the sky for a while.
Any messages?
No.
Maybe the sun will not rise. It is hard to be certain in the dark. He can't convince himself to believe in that nerd stuff like rotation. He knows how things go wrong.
One time, in the Bible, the sun just stopped in the middle of the Middle Eastern sky, and didn't go down for an entire day. Perhaps it has stopped again, jammed on that same rusty length of track in heaven, this time forever. Though the Bible also says the moon is in charge of the night and he sees it during the day all the time.
Okay, let's say it's fifty-fifty whether the sun will rise. That's still good odds. Frost pulls his jacket closer and tries to ignore the cold.
The sun ever rises again: one to one odds. We all shiver in the dark for the rest of our lives: two to one odds. A brilliant, yet eccentric professor builds an enormous heating device, and around it we eke a bare existence from the dying soil of our once-warm home: three point five to one odds and 8.26 on MAL. Lieutenant Frost shuts his eyes and dies right now, for no reason that he'll ever understand: one to one point five.
Don't think of death. Think of Javascript, Frost. Apply and call are like each other, but apply accepts this and an argument array, while call accepts this and any number of arguments. The fat arrow binds the value of this at the time it is made, and ignores the this that you give it. Be the fat arrow, Frost. Ignore your circumstances.
A function's prototype property is not its prototype, but it becomes the prototype of the objects you construct with it. For of is arrays, for in is properties, and if you put a let in a for, it will rebind the variable at the start of each loop. Always use triple equals. Try to avoid eval. Do not touch __proto__. And never use with at all.
No new texts. Time 4:26. 4:26? 4:26?
This would be the perfect time to read the messages from the cat.
The cat has sent a userscript called meow.txt that is supposed to keep Twitter from cropping images.
He reads through it. He is not too familiar with the design of the Twitter page, but the cat's methods seem plausible enough.
There are @match statements for both twitter.com and mobile.twitter.com, so it should apply to both the desktop and mobile web pages.
It all makes sense. There is nothing suspicious. Everything seems to be in good order.
The only problem is that he has no idea how to run the script on his phone. He goes on duckduckgo and searches for "running userscripts on android."
I won't keep us with Lieutenant Frost for the entire night. Suffice it to say that when he looks up again, the sun has been in the sky for six hours, and his phone is full of broken apps and files with strange extensions. But his time has not been wasted. He has at last found a way to run userscripts. Here is what he did.
- First, he tried a huge amount of other things, but they didn't work.
- Then, Lieutenant Frost installed Firefox After Eight on his phone. This is a developer version of Firefox, so that people can try out new features before they put them into the main app. It also lets you install a wider variety of extensions, and has a coating of milk or dark chocolate with mint fondant filling.
- He opened the browser, went to addons.mozilla.org, made a Firefox Account, and created a custom collection named "violentmonkey" that had only Violentmonkey in it, noting down the user ID, 16890352, and the collection name, "violentmonkey".
- He enabled the debug menu in the traditional manner: he opened Settings > About Firefox Nightly and then tapped the Firefox logo five times.
- He opened Settings > Custom Add-on Collection and typed in the user ID and the collection name. The app restarted itself, and then he could use Violentmonkey.
- Finally, he opened the extension in Settings > Addons, pasted the userscript in, and turned it on. The interface wasn't working perfectly, but it was usable. His Twitter was changed, and the crop was gone.
CAFETERIA DISCOUNTRADIATION EXPOSURE: HIGH. MEDICAL ATTENTION ADVISED
GOOD WORK! G. GORDON LIDDY IS NOW DEAD
Frost puts his phone away. His head spins slightly after the long period of focus, and his hands and back ache and protest as he comes back to himself. Installing weird apps on your phone is a young man's game, and Frost is no longer young.
He eats another can of beans and finally gets moving again in the early afternoon. He only travels two kilometres in the daytime, but he pushes on another half a kilometre after night has fallen, until he reaches a little line of trees at the edge of a farm. This is where he lies down, sheltered from the road.
He's behind schedule because he lost so much sleep the previous day trying to install that extension. But if Frost were the sort of man who regretted spending his time on computer problems, he would never have learned Javascript in the first place.
He thinks back to the autumn of 2015. Late at night, reinstalling Windows 8 on his laptop in a hotel room after he had screwed it up somehow. Hands growing cold in the dark. His only companion, the little sound that the CD drive makes when he reboots. Blue screens and the noise of a fan. A shape in the dim room: his wife, asleep in a warm bed. Himself, hunched over the keyboard, rapidly hitting F2 to get into the BIOS. Then, just before sunrise, the laptop came up at last into safe mode with networking and he was able to install his graphics card drivers. He felt no elation, only exhaustion and sadness. He climbed into bed and slept until three. In the evening he realized that his D: drive was gone. Windows had trashed it during the installation.
Compared to that, the privations of the war were, well, worse. Well, they were worse. But Frost feels that that night with Windows has become a source of strength for him.
He does not feel lonely now, although night has fallen and his leg hurts like hell and is bigger than it should be, and he doesn't know whether he will starve first or die of sepsis. He doesn't feel lonely. He feels satisfied. He has done something neat with his personal electronics, and it didn't hurt anyone at all.
The next morning, his leg is not so bad, and he is in a cheerful mood. He has noticed that the farm is abandoned, and so he takes some cans of food from the shed, peach slices among them. Three or four more days to safety, if his luck stays good.
It does not.
Meanwhile, in the SUV,
Lieutenant Melner is crashing down the highways of West Virginia. It is a cool day, fortunately for both Frost and himself, and, as he catches the slight scent of diesel as it is blown away on the wind from his roaring engine, he is reminded that he is a member of the bravest and best goddamn band of brothers that ever drew a breath in the United States or any other country: the Trustworthy Soldiers of the Provisional Government Constituted to Investigate the Undeniable Irregularities of the Election.
It is true that the Trustworthy Soldiers are technically not an army, just as the Provisional Government is technically not a government. But if you focus too much on technicalities, you will miss out on a lot of things, like the opportunity to drive a Road Wrangler Rubicon Edition illegally down a federal highway.
The Road Wrangler is no mean beast: boasting a 395-horsepower diesel engine, it clocks in at almost one-third again the power of any other Wrangler. If you find it necessary to install spikeproof metallized traction tires on your automatic 4x4 truck-style super macro military-grade turbo diesel sport utility vehicle, and who doesn't, the Road Wrangler is your only option in the Wrangler line. The others cannot pull the treads loose after they break through the surface of the asphalt. It is the world's greatest on-road off-road vehicle.
If there is any downside, it is that, while it does make a lot of noise, it's not as loud as an American motorcycle. Melner hates to hear noises that are louder than his own, and he cringes when he sees a group of bikers in the rear-view mirror, but they usually cannot approach the Road Wrangler because its spikeproof traction tires have fucked up the road too much. One time, the lead biker of a group sped up to pass him, hit one of the gouges created by the tires, and completely lost control, wiping out into a ditch. Melner enjoyed this very much at the time, but it did not become a source of strength for him. Perhaps he envies that strength in Frost, or perhaps not. I don't know. It's hard to say with this kind of guy.
Private James Michael, the ad tech, is in the open rear seat of the Wrangler, monitoring buy-ins and engagement on certain verticals. A month after the end of the war, he is still keeping an eye out for the enemy. One click in a console, and shoals of ads rush out across OANN and Fox, dividing Coke from Pepsi and Crest from Colgate, correlating Facebook engagements with grocery and pharmaceutical purchases, picking out the hidden patterns that say, "This is one of ours," or, "This is another."
On top of the usual scattering of enemy orange, one of the cars moving north is showing blue. A passenger has engaged with the life insurance ad that the P.G. sometimes runs on The Daily Show with Trevor Noah. James hadn't known there even was a lib left in West Virginia. Go free, little lib, he thinks. Today is not the day.
In fact, the passenger is a Democratic Socialist who wrote in Bernie Sanders' name in the general election, and would not want to be called a lib or even a liberal. But that's how politics is. Last week Melner sideswiped a four-door sedan, sending it veering off the road into a traffic light. Then he claimed that its driver had been a Democrat.
Now, I have often been criticized for my alleged failure to portray the nuance of right-wing thought. Let me therefore explain in more detail. Melner does not mean that he crashes into Democratic cars on purpose. He's not that conservative. He means that the collision was not his fault: the other man was too Democratic to drive properly. While he bears no malice against Dems, and in fact he values all life, he thinks they should know by now they haven't the wherewithal to share a road with Melner.
The collision had jarred something loose in the engine, so they pulled into the auto body in Cameron for a checkup. No joy, however: the mechanic on duty was coming to the end of his shift, and the new mechanic had not been able to come in because his car had been sideswiped by a Democrat.
James switches from the advertising console to Lieutenant Frost's anonymized marketing profile, which is open in another tab. He keeps doing this even though the profile hasn't changed. Finding Frost is an important part of their mission, so he has to keep an eye on it, and it's also one of the most amazing things he's ever seen.
Frost's profile is like a legend. His engagement with video ads, push campaigns, email special offers, and even television advertising has flatlined across the board. Zero anything for an entire month. Not even any use of credit cards at any terminal that the P.G. can see, which is pretty much everywhere in the country except for the coasts and Kentucky. Needless to say, his location is also not known. James would think the man had died if he didn't keep tweeting. Where is he and what on earth is he doing?
Then again, Frost himself is something of a legend in the marketing analytics space. Perhaps he got sick at last of being tracked, and added something in the backend to hide himself completely from analytics. It's been tried before, without success.
And Frost has failed as well, if that was his goal. The abrupt alteration in his metrics shone out on the Provisional Government's marketing console like a bonfire on Pluto. One more futile scratch on the system's paint.
If he isn't trying to hide, then something very bad has happened to him. The first step in either scenario is to track down the poor fellow, so James and Melner were dispatched to his last known location. They have been driving around for almost two weeks, mostly staying at Super 8 where the Provisional Government gets a discount.
It's late afternoon. They are in the northern panhandle of West Virginia, just coming into Follansbee. Melner is strictly forbidden from going over 50 kilometres per hour in a town, so he doesn't plan to stay very long. The two of them are deciding whether to pull in at this McDonalds or the next McDonalds in Weirton. Then, James looks back down at his laptop and notices one little blip on the ad console.
The Provisional Government has just pushed a sponsored ad tile to a new Firefox Nightly installation somewhere about twenty kilometres northeast of Morgantown, across the border of Pennsylvania. The phone model is a Motorola X4. Unusual model.
Frost's model.
"That motherfucker. He's making for Pittsburgh," James screams into the front seat.
Melner spins the steering wheel hard to the left and brings the Rubicon around in a tight and fast circle, completely destroying the intersection in a cloud of blue smoke and pulverized asphalt. The lady who is now facing him through the windshield slams the brakes and leans on her horn. Melner leans on his own horn. A nearby deputy turns on her siren and gets out of her car to talk to them. It's a huge mess.
Sad to say, during the maneuver, Private Michael sustained a vehicular excursion and his corporeal organism has experienced a serious ass bruise. He has also shattered the military-issue phone in his back pocket. But as he lies there in pain on the crosswalk, rolling slightly from side to side, his laptop is cradled safely in his arms, with the location of Lieutenant Frost glowing ominously on its screen.
Frost's escape from targeted advertising is over. And it's our fault.
Part 3
You see, Firefox Nightly has its own advertising partners, and you have to opt out of those ads separately. Frost blocked the rest of the ads and tracking scripts, but he didn't expect to be betrayed by his favourite browser, so he didn't spot the sliders or switch them to less sinister settings. We've made an awful mistake.I know that you didn't make any of the choices that led us here. Fine, I have made an awful mistake. It's me. Anyway, what are we going to do about it?
Frost powers off his cellphone and crawls out from behind the bush. He can't just throw it away because he needs it to call a taxi later.
He can't use his credit cards either, because they'd show up right away on the P.G. analytics console, but he is carrying about $250 cash. That will be enough to take him from Uniontown to Pittsburgh even if the driver decides to be a dick about it. After that, he should be out of the P.G. area of influence and relatively safe.
He has to get as far as possible from the location where he viewed the ad. Even so, he has almost no hope of escape. He knows that the P.G. is going to come down on him like a hammer once they see him on their board. If his followers don't get him on their own, he is sure to get found by their backup.
"No backup?" Private James Michael yells into his phone. "Are you kidding me?""We have over 10,000 Motorola X4s in our customer base," says the irritated tech on the phone. "The same model of phone is not enough to prove that it's the same guy. You should know this. If analytics says it wasn't him, then it wasn't."
"Just send one car there. We'll be stuck in Follansbee for a while. At least set up a blockade!" James looks over at the Road Wrangler where it sits in the lot. The deputy has the car keys, and she and Melner are in her office discussing things.
Five hours. They still haven't gotten him. With his phone off, navigation is harder, so Frost is sticking to the 857 as it passes through Fairchance. It's ten pm, but he keeps walking. He'll walk all night if he can.
The few people he passes look at him with pity as he hobbles along on his hurt leg. None of them offer help, and if they had, Frost would probably have declined it. Being shot in the leg has not made him any less paranoid. He isn't even going to hitchhike.
Melner has recovered the Road Wrangler from the sheriff after heavy negotiation and some concessions from the P.G. regarding local autonomy. It is now fully legal in Follansbee to possess up to three ounces of marijuana.
James and Melner are at the gas station, buying Mountain Dew and potato chips.
"Medical reasons. Like that makes a difference anyway," spits Melner. "These days the kids just go to the weed man and say 'I identify as a high person. Please give me a bag of weed.' And then he has to do it. We know."
"I don't know about that. It was banned at my high school," says James. "One of the kids got expelled for having seeds."
"That's the way to do it," Melner agrees. "These days they're lax on everything."
"You know, I don't know if that's the right approach," James says, with a furrowed brow. "I talked to a social worker the other week who said..."
"Social workers again?" exclaims Mulner. "I've heard enough about social workers!"
"They're cost-effective in many duties," says James.
"You're always talking about social workers, muhh muhh, my precious social workers. Could a social worker do this?" Lieutenant Melner shoots his own dick off.
"I'm, uh... not sure, sir," says Private Michael.
"Get me— a— sponge," Melner chokes out, his hand shoved desperately into his cargo pants to stanch the flow of blood.
Fifteen hours. Maybe they aren't coming. But Frost can't afford to assume. He keeps walking beside the dark highway, step by step. Step by painful step.
Captain Klawe beeps in at the base.
When you see Captain Klawe, your eyes are drawn first to the burn scar that disfigures his face and pulls his lower lip back in a sneer, and second to the grandiose, swooping nose, with a nasal bridge so firm that one could open a beer on it if one didn't mind being shot. If I had to sum him up in a single word, the word would be "severe." He has an employee card on a string around his neck.
"Captain... Cadaverus Klawe, is it?" asks the receptionist.
Klawe indulges in a momentary inclination of the head.
"That's a nice name," the receptionist dares.
The disfigured man glares back past his aquiline nose in chilly silence, his eyes piercing through her, as if to say: I know.
Twenty hours. Frost is still awake, and still slowly walking. He is very tired. Sometimes he wants to know the time, and he pulls out his phone before he remembers it's off. "Sir, captain, I've been tasked with finding one of our, uh, stray lieutenants." James, who is back at the base now, runs up alongside Klawe. "I'm certain that he's showing up on our advertising board, but the system thinks it's someone else. I think, but don't hold me to it, that there's a problem with the analytics.""What kind of problem?" hisses Klawe.
"I've been going through the code trying to figure that out." James is holding his laptop in his left hand. It's showing part of the analytics codebase. "I think his email is getting dropped somewhere here in the validation pipeline."
Klawe glares at the laptop. "You think there is a bug in the ad stack?"
"It's very possible. We have been having a lot of issues lately, sir. Remember the trouble last week with the employee card readers."
"That is what happens when you write a security system in Javascript," Klawe sneers.
"Javascript is a business-ready language," whines James, hurt.
Twenty-one hours. Frost is asleep in a ditch. A little patch of trees shades the old soldier from the sunlight and shields him from the road. Cars drive past him on the two-lane highway not knowing that he is there.He is crying out softly in his sleep.
Private Michael is still trying to convince Captain Klawe to authorize backup."We have to put boots on the ground at his last location, sir. It's been almost a day. Police studies have shown that the first twenty-four hours of an investigation are the most crucial to its success, sir!"
"You must find the bug first and then complain!" exclaims Klawe, slapping the back of James's laptop for punctuation. "Where is there a drink in this base?"
"Uh, we keep the soda in there, sir. Bottled water too, sir."
"Is there ice in this mini-fridge?" demands Klawe.
"Yes, sir! Feel free, sir!"
"Whose dick is this in the freezer?"
"That's Lieutenant Melner's dick, sir. It was dismembered from him, sir. We are keeping it cold as directed by the hospital."
"The man is taking terrible care of his dick. Give him a demerit."
"Yes, sir, I'll pass that along. The dick was, uh, severed in a single shot, sir."
"I see. Excellent shooting on that. Give a commendation to whoever shot this off."
"It was the, uh, same man, sir," says James.
"Oh." Klawe throws the dick back in the freezer.
James comes over with his laptop. "Could I pull one of the other ad techs to take a look at this code, sir? I'm having, uh, it isn't really my area of excellence."
"Silence. I am done with this. Give me that." Captain Klawe pulls the laptop out of James's hands and pages rapidly down.
"Yes. Here." His gloved finger creaks out and stabs a line of code:
const DOMAIN_NAME_PATTERN =
/^(?:[a-zA-Z0-9-]+\.)+(?=[a-zA-Z0-9-]+)$/;
"Um... Of course," says Private Michael. "That."
"It appears to be an innocuous regular expression for validating a domain name, but the last part of it has been written as a lookahead assertion past the end of the string. This regular expression will never match anything at all! Diabolical!" screams Klawe.
"Yes, sir! That must be the bug of which I was speaking, sir!"
Klawe shoves the laptop roughly back into James's arms. "Submit a Jira ticket against the analytics team. Your request is authorized. I will be the backup."
"Yes sir right away thank you! But, uh... I thought you didn't know Javascript, sir. You were speaking harshly of it during our conversation earlier, sir."
Klawe's eyes narrow at the challenge.
"No, private. I know Javascript. I just don't like it."
Twenty-five hours. Frost wakes up to the headlights of the Road Wrangler, which are shining through the scattered trees. Klawe has parked the car on the highway shoulder and turned on the high beams so that they will blind him."Come out with your hands up, Frost!" shouts James. "We know you're there!"
Frost crouches lower in the ditch. Is there any way out of this? He hasn't had a lot of rest, but if Melner isn't here, he might be able to wing James with his pistol...
Klawe walks up to the edge of the trees and stops. He doesn't say anything. He seems to think that Frost will give up at the mere sight of him.
And in fact, this is true. Frost takes one look at the face of Captain Cadaverus Klawe and surrenders, walking out of the trees with his hands at his sides. Klawe hits him with his nightstick in the stomach, just above the pelvis. Then they zip-tie him and put him in the back of the car.
Twenty-five hours, twenty-nine minutes.
Rather than return to the base, Captain Klawe drives the three of them over to a nearby wilderness area. He parks by the side of the road, near a forest trail."Um, sir?" says James.
Klawe turns around and slowly pulls the keys from the Wrangler with his left hand, while keeping eye contact with Frost in the back seat. "This next part is for our own enjoyment," he says, taking a knife out of his jacket.
James is staring at them from the passenger side. He's never tortured anyone in real life before, and he's not sure if he will like it.
Klawe leans over to James and whispers, "Go into the woods and find a part of the forest with brush on the ground. I'll teach you a good way to hide the blood."
James doesn't move.
Klawe leans back and fixes him with an icy stare. "Well, private?"
James's hand edges closer, almost involuntarily, to the door handle. "I would prefer if, uh, I'd like to be excused sir."
Klawe snickers. "Very well. Walk down to the lake. Come back in, oh, let's say an hour."
Private Michael salutes and practically leaps out of the car. Klawe watches him go.
The Wrangler is quietly cooling, and the birds have scattered from the road.
There is a moment of silence, punctuated only by the sound of keys in the ignition, and a tiny ripping noise as if someone were peeling a fake scar off of their face.
Frost looks over at Frost in the back seat.
Frost looks up and nods.
Jessica hits the gas and they drive to Pittsburgh.