Ask Brandon Sanderson all your burning questions with the SanderBot!

This small project combining JavaScript practice and Brandon Sanderson obsession probably is best first experienced without too much introduction. You can find it here.

Once you’ve gotten an idea of its brilliant algorithm, however, let me explain a little more. Brandon Sanderson, my favorite author, sometimes responds to questions about his books with the answer “RAFO” – Read And Find Out. In other words, no, I’m not going to answer your question, you’re either going to need to wait and read a later book to get the answer to your question, or maybe the answer is already hidden in the text and you just need to look for it a little harder, or then again maybe I’m just trolling you. Brandon Sanderson also is widely known to secretly actually be a collection of robots (sometimes referred to as Sanderbots), because he’s far too prolific to just be one human guy. So thus I decided to write my own clone of the Sanderbot RAFO procedure.

Close Your Eyes

Close your eyes!
Any moment the veil of visible light
will be rent by the radiance dancing through the world,
too joyful to contain itself, bounding between atoms, bouncing off gravity, bursting blinding to break our
seven little slices of rainbow.
Close your eyes!
Your heart might catch the resonance of the universe
and vibrate until it breaks with joy
into singing dust.
Close your eyes!
Stay in the still darkness
where joy does not burn with sorrow
and knowledge never sears with mystery.
Close your eyes.

Finding the Systematicity of Language in the Structure of Perceptual Experience

Consider these words you are reading, arbitrary collections of sound whose connection to the actual experiences they evoke is tenuous at best. Yet working from that huge, interconnected jumble of experiences juxtaposed with bits of language that you have had over many years of life, you have been able to learn distinct words, rules of grammar, and systems for effectively communicating with language in endless novel situations. Trying to reproduce this feat of richness and flexibility, many artificial intelligence researchers today are considering neural networks, modeled after the human mind. But neural networks struggle to generalize grammatical rules and structure out of the webs of linguistic information they are trained with. I propose that artificial neural networks can face this challenge and better learn and process the systematic grammar of natural languages by drawing on the rich structure of the real world in perceptual information, because the structure we discover in our perceptual experiences is what we use during our human language learning process to build up systematic concepts around the new words we encounter.

That’s the beginning of this final thesis defense paper that I wrote for an Intro to Philosophy class in 2017. It explores some ways that computer scientists and linguists are trying to model the human mind in a computer so it can understand language, and the challenges these models have in capturing the full flexibility and structure of language. Then it outlines a new philosophical approach, where I try to combine a naturalistic view of language as useful labels for perception with a Christian dualistic view, where language can access absolute truth. Maybe computers can discover some of the structure of language by exploring the structure of the real world around us.

It’s 14 pages long and I’m trying to mash in lots of concepts in that suddenly small space, but it’s also meant to be something that any curious educated person could read and learn a few things about language, philosophy, and computer science from. If you’re up for my philosophizing, you can read a PDF of it here.

An overanalytical Rogue One fan reviews Rebel Rising

Star Wars: Rebel Rising
Author: Beth Revis
Series: Part of the new Disney Star Wars EU continuity
Pub Date: 2017
Pages: 304
Format: Audiobook

Spoilers will be hidden with JavaScript magic.

Oh, I wanted so much to appreciate this book…I loved Rogue One and so I was eager to look past every flaw I could just to get something to scratch the itch for more Rogue One. What I like best about Rogue One is its characters, most especially Jyn Erso, and so what I really wanted from this novel was solid character development. Mounds and mounds of character development. Sacrifice plot, worldbuilding, pacing, whatever – just give me pages and pages of intense character study.

This book does, in fact, sacrifice pacing so it can focus more on character study. And yet, sadly, it still doesn’t work. The characters in this story just did not do it for me. Maybe I have too much headcanon at this point. Maybe listening to it as an audiobook exacerbated the writing and pacing issues so they distracted me too much. I don’t know. But this book mostly left me feeling sad at all the opportunities it wasted for character goodness. There are so many kernels of great ideas, starts and hints at fascinating character arcs, but they never seem to quite pan out.

Saw, for starters, feels very blurry, even inconsistent. You see bits of how he cares for Jyn and tries to train her, bits of his charisma and the way he inspires his followers, bits of his anger against the Empire and his willingness to resort to questionable methods to fight it. But it never quite comes together. Most of the time you’re just being told that Saw gives Jyn special treatment, or everyone wants Saw to notice them, or Saw is being paranoid and dangerous now. There are little flashes of showing, actual good descriptive storytelling: the way others look up to Jyn as Saw’s mouthpiece, the scene where he risks his life to punish a suspected traitor by delivering him to the Empire. But Saw in this book still feels more like a list of character traits than an actual living person.

There is maybe one scene in the whole story where I actually felt moved by his and Jyn’s interactions. Which meant that I had almost zero emotional investment in their relationship to care when Jyn desperately wants his approval, or when she begins to distrust him, or when she finally turns her back on him. I wanted to be heartbroken by those events: they are teeming with narrative potential. But instead they just felt like more things being checked off the list.

Jyn doesn’t really feel true to the movie or the novelization until maybe the last part of the story. For one, she just feels too…soft, uncomfortable with violence and unfamiliar with the regular precautions and deceptions of people outside the law. I could understand her being soft at the beginning, having been raised in relative comfort by loving, sheltering parents, but by the time she’s been living in a terrorist organization for years you’d think she could at least kill somebody or effectively hide her identity. (Does she kill anybody in this book? She at least tries to once, but then is glad when traps set by other people actually finish her target.)

Like I said, maybe this is just my headcanon getting to me. But I expected her to have a little more of Saw’s fiery anger and competent coldness (especially when this is specifically remarked on in the novelization); some more intense, impulsive compassion or nobility like you see when she saves the girl in Jedha or speaks up at the Rebel meeting; more of the apathy and even genuine fear of being involved in something that makes her attack her own rescuers. Instead, in this book she seems more sad than angry about what the Empire’s done to her, and is more inclined to stay at Saw’s camp forging codes for missions she knows very little about than to seek revenge in the heat of battle. She’s horrified at the atrocities she witnesses, whether they’re committed by Saw or the Empire, but she just passively observes, gets out with herself intact, and then never brings it up. No desperate efforts to save people caught in the crossfire or angry words with Saw about why he did those things. And as for apathy, this Jyn falls in love with bland strangers and lives with them for months without any apparent issues trusting them, even after she’s been betrayed by both her other families.

The Jyn of this story is just a little bit too passive, too nice, and too trusting to really bring out all the intensity and sharpness that makes movie-Jyn so fascinating (and moving, when she finally finds a meaningful home for all her intensity). I was left feeling like the author was trying too hard to make her likable, and thus toning down all her interesting extremes that I wanted so much to get into.

(This isn’t just Jyn. I mean, Cassian has smiling eyes and looks like he’s good at making people laugh? What? Did we watch the same movie? This is dead serious, sacrifice my soul for the Rebellion, don’t tell anybody what I’m really planning, spy, assassin Cassian. That’s what makes his admittedly beautiful eyes so striking, and his arc in Rogue One so compelling. I get just as attached to sweet characters as everyone does, but there are other routes to my heart.)

The other characters seem to exist only to further Jyn’s character development. I started to crack up in the first third or so when every person Jyn talks to apparently wants to discuss how much Saw actually cares about her, or needle Jyn into proving what a badass fighter she is. Do these people have lives that don’t revolve around either being friends with or outdoing Jyn Erso? You can certainly use other characters just to support your protagonist’s journey. But to actually be a good foil character that really pushes forward the protagonist’s development, you have to be pretty well rounded yourself. A flat character has no strength to push with. These characters are thin little strings of flab, and thus poor Jyn is left somewhat flabby as well. They talk with Jyn, they fight with Jyn, they die in front of Jyn, and supposedly this all has some kind of lifechanging impact on her, but I don’t really see it and I certainly don’t feel it.

This is unfortunate, because hidden in some of these characters’ checklists of traits are some really interesting ideas. Take Idryssa, vaguely-substitute-mother-figure who eventually parts ways with Saw to join the Rebel Alliance. How could that have shaped Jyn’s perception of the Rebels, and her loyalty to Saw? How could Jyn’s complicated relationship to her mother – who bravely stood up to Krennic, but also abandoned Jyn – have played into it? I guess I’ll just have to make up more headcanon. Or Hadder – yes, their relationship as written has so many problems, but there is a core of something good there. Jyn, freshly abandoned, meets a pleasant, innocent, idealistic young man who compassionately takes her in and includes her in his family. She is torn between her attraction to his idealism and naivete, and her painful knowledge that the world is not that simple. As their situation gets more desperate, she’s forced to decide whether she’s willing to trust his idealism – and if she can’t, if she’ll destroy his innocence in an effort to keep him safe. There, a foil character actually making Jyn confront her internal conflict between idealism and cynicism, even if it’s with a somewhat cliche plotline.

The basic lines of that story are all in the book. But they get lost in how very nice, pleasant, and relatable Jyn is (surely she’d be at least somewhat irritated by Hadder’s incredible naivete?), how cute Hadder is supposed to be (half the dude’s family is dead, maybe he should be a little more serious?), and how stereotypical, out-of-character, and chemistryless their romance is. The Jyn I know from the movie and novelization has major problems with trust and commitment, but also a fierce desire for family. A romance could have been a great way to explore that – if you were willing to actually acknowledge Jyn’s major problems and the way they clash with her deep attachment to people she loves. This book seems to just want Jyn to fall in love with a boy because apparently all teenage girls do, and because it makes the ensuing events marginally more dramatic. It lets Jyn and Hadder remain safely familiar and nice with their happy relationship, and thus passes up the opportunity to actually dig into some interesting character development with a relationship that may have been less pleasant.

So the whole book left me with skeletons of good character arcs and seeds of insights that I was sad to see the author waste. I love the idea that Jyn is convinced Galen is working voluntarily for the Empire. You could take that one way and have her totally give up on him, think he’s a coward and beyond hope, and then be all the more shocked in Rogue One when she discovers he’s been sacrificing himself to work against the Empire all those years. (The novelization tries to go this route.) Or maybe you could take it a different way and have Galen’s apparent choice make Jyn question the Rebellion, wonder if maybe she should rethink fighting against the Empire. That would bring out how much Jyn doesn’t fit into the boxes of allegiance, how unwilling she is to commit to one side, and thus lend even more weight to her eventual decision to actually make a stand and sacrifice her life for something. But this book has one great scene where Jyn painfully acknowledges what her father is doing, and then kind of…drops it. Galen comes up now and again, but the author doesn’t make full use of that great idea to actually shape Jyn.

There are so many other little things. Jyn’s relationship to Saw’s other followers and the way he treats her preferentially – so many stories there, and we just get people like Reece who exists to be petty and jealous and then pop up again to show how sleazy Saw is getting. All the people mentioned in the novelization – Staven, Codo, Maia – who somehow manage to be more compelling in their few sentences there than in the many scenes they get dragged through here. I mean, look at this, here is the only place Maia is mentioned in the whole novelization:

“Maia?” Jyn asked [asking if she’s dead]. But that was stupid; she remembered now, she had been there when Maia died. Jyn had been the one to inherit – and promptly lose – Maia’s synthskin gloves, the gloves that had been so soft and smelled like carbon scoring.

So many good little evocative details there in just three sentences: the way Jyn forgot (suppressed?) Maia’s death, the fact that she got Maia’s gloves (why? what relationship did they have?), the little pang of the detail that Jyn lost them so quickly. You also get a larger sense of how hardened Jyn is to loss, and how cheap life is in Saw’s group. Then in Rebel Rising we get to actually see Maia die, plus her talking with Jyn and wearing the synthskin gloves. The scene where she dies is actually pretty interesting, one of the more striking and memorable ones in the book. Unfortunately, the Maia dying part of it was not the memorable part. Maia dying was the “this is a Bad Situation so somebody has to die, check!” part. Despite all the conversations with Jyn and the synthskin gloves, I just was not invested in her, and thus neither was Jyn. So neither of us were really heartbroken after Maia’s death, and the story that Maia and Jyn could have had is lost in the general blandness of it all.

That all being said, there are a few good things in this book I was genuinely happy with, fleshed out enough to actually feed some of my insatiable need for Rogue One goodness. You really get to see how and why Jyn is disillusioned with both the Empire and the Rebellion, and wants to be left to herself. The later parts of the book in general finally seem to get at the Jyn I know, and her desperate feeling of being trapped that Rogue One plays into with all its imagery of caves and prisons (and glorious eventual release). I especially like the bit about her freeing the slaves, and how it shows her instinctive compassion and cleverness but also her deep, fearful apathy that makes her immediately leave them. I love her anger that both Galen and Saw seem to care more about their work than about her, and how true it seems to the movie, where she is so broken by discovering how much they do care for her. I ate up everything about her relationship with her mother, the way she admires that Lyra took action in contrast to how Galen seemed to give up, and how Lyra’s words of trust and hope keep nagging at her. Then there’s the little detail that Jyn wears her scarf to hide the kyber crystal necklace, which made me irrationally happy – now Jyn has a canon excuse to wear the awesome scarf! And on a meta level, the whole book is made better by a wonderful audiobook reader, Rebecca Soler. Thanks to her, I had to think that much less about how terrible the dialog is, since she does an admirable job putting life into the voices of the characters she was given.

I am glad I read this book. All those good ideas are going to keep me thinking about and revisiting Rogue One for a while now, searching out further depths. But I think I’m going to go reread the novelization instead of Rebel Rising when I’m looking for the depths, because this book just is not willing to do the difficult, risky storytelling that Jyn Erso cannot be herself without.

Originally posted on Goodreads.

My son for whom I choose to die

A woman and her son are on opposite sides of an age-old war between secret societies, but she refuses to release him without a final ultimatum. A short story, 4700 words, set in my blood magic world called Haem.

My beautiful son,

Your mother is an Anuvite. You know that, of course – you have just never accepted it, despite my whole existence to the contrary.

But no matter – I have given up trying to convince you. Your mother is also dead, or she will be by the time you have read this. My companions in Anuva are coming for me as you insisted they would.

Your mother says no more. She is silent in her zeal to love selflessly, proud to plunge into oblivion for her son. But I, Refoan Omzynyes of Anuva, say to you: you cruel, blind fool. How do you presume that you can love your bride, sacrificing for her and glorying in her and crushing your soul for the smallest chance to make her life better, when you cannot even love your own mother? Of course, you would insist that I am not so worthy of love as Couryan is. Very well, then. Let us examine that hypothesis. I am not worthy of love, being an Anuvite with her fingers entangled in metal and numbers, so you never bothered to love me (though you could have if you had wanted, naturally). Meanwhile Couryan is worthy of love, being a very pretty Suyn girl with Sight, ethereal and half-lost in heavenly worlds – and so you will bother to love her, and you are sure that you can.

I have a different hypothesis. I say that I am worthy of love – I will even say I am as worthy as Couryan, an almost perfect Anuvite as she is an almost perfect Suyn. That you didn’t love me shows that you couldn’t love me, and so you cannot love Couryan. You will break her heart, too. She will also fall prey to her own companions, her Suyn companions, too gloriously devoted to her heavenly worlds to see or care that they come for her. But at least she is yours to crush.

Your father was a Suyn spy planted in my Anuvite cell. I realized this soon after I realized I was pregnant with you, but I had you anyways. You were my son to have, my chance to remake the situation. I was too good of an Anuvite to use our Anuvite technology. On you, at any rate: as it turned out, your father’s Suyn blood magic calling to the gods of Couryan’s heaven could do almost nothing against our Anuvite metal bullets that we’d shaped with our own hands.

There was little patience in Anuva for a young woman raising a child on her own while trying to contribute to the work. Our city Odiry was expanding back then, and they needed some way to cross the Huaryens river that ran just on the outskirts. Either we of Anuva would build a bridge, or Suyn would come in with their magic, muse over their Sight for a while, and then command the water or the animals or do something else deep and mysterious. We were fighting hard with them for Odiry’s public works department – no time for a small, whimpering child. I had you anyways. I stayed at home with you. I kept you out of the fight over Odiry, the bridge, the Huaryens itself. I chose to let you play in the Huaryens instead, bringing you there on bright summer days while I tried to rush through our engineering manuals and sketch out plans, distracted by your hair turning from blond to red and gold and by your first words: water, bird, grass.

When you were five Suyn got into the police department while we weren’t paying attention and framed and exposed our cell, and we were all being hunted down. Anuva’s scholars advised us to remain composed, stay together, keep our covers and let them question us so Anuva would not lose its foothold in Odiry altogether. Suyn didn’t have strong enough cases against most of us as it was, but they would if we fled in the night and were mysteriously missing the next day. But the scholars were true Anuvites and could not order us or force us. My colleague Zoanos, who went without sleep for days calculating forces and drafting the bridge that we built over the Huaryens, chose to stay in Odiry and was executed by Suyn. Not because of anything Zoanos did wrong – because my other colleague Diefen, who worked in her same division of the public works department and had rejected her years ago because Diefen was too intimidated by her brilliance, had become terrified and fled rather than choose his way rationally and hold his ground to protect his companions. We hated him. And then I followed him out of the city, for your sake, so that Suyn would not find you if they found me and make their usual ridiculous assumption that I would try to force a young child who couldn’t choose for himself into Anuva, where we are all there by choice.

You and I wandered for years. I had chosen to wander, and so I chose to make it an adventure, hoping that you would choose so too. And you did – you looked at the huge sunsets that washed over the fields of wild wheat near Namyuenes and saw fire, glory, and wonder; you laughed for delight at the swarms of indistinguishable grey-brown birds descending on spilled food in Renoin; everywhere there was nature or animals, you were happy, while my ears rang for lack of city noises and buildings clattering up from the ground and numbers rolling through my mind. I found an apartment in Sofyues, where one window looked out on a little garden of flowers for you, and the other at a building with Nurevian facades for me to stare at and dissect. We stayed there for four years before I saw, like a ghost, the face of the woman who had arrested Zoanos. You know her face very well: it is well reflected in her granddaughter Couryan.

We left the apartment with you in tears for your flowers – though you refused to acknowledge either the tears or the flowers as we left – and we wandered again. Your soul healed in the emptiness and continual surprises of the wild lands we traveled through, while mine clutched at every schedule, list, and semblance of order I could create in the rolling irregularity of nature. We came to Somony, which was so full of Anuva that every government department had one of us leading it and every grid-spaced, evenly paved street had a number. I felt safe, and I thought you would adjust soon and perhaps enjoy your lessons more coming from a teacher in a school than from your mother, but we only lived there for two years before Couryan’s grandmother was hovering in the corners of my eyes again. We moved to Eneyues. You asked me why we were moving again. I told you that there were people who hated me and wanted to hurt me, and might hurt you as well, and I had to protect us. You asked why they hated me. I said I couldn’t tell you for your own protection, and that I would tell you when you were older. Which was stupid, and set you on fire with curiosity, but what could I tell you? About Suyn and Anuva, hidden in every corner of your beautiful world, locked in eternal mortal combat? That your mother was Anuvite and you too were hunted and torn from every place-that-might-become-home because of Anuva, because you were with Anuva, because as far as they were concerned you were Anuva regardless of anything you did or chose?

I want you to make your own life, my son – and if that life is with Couryan of Suyn, then go live that life with all your being and energy and love. But if you cannot love, you cannot love Couryan and you cannot have the life you desire. You’ll only trap yourself again with a binding to pain you did not choose.

We went to Eneyues, which was also teeming with Anuva, and I threw myself into the cell there to make something more of my life than just fearing, running, reacting. I needed to be proactive. Unfortunately, Couryan’s grandmother was also proactive, and she was there in a few months. I packed up again – and then my Anuva colleague Tonoas appeared at my door and demanded to know why I was leaving. I told him about Couryan’s grandmother and a little about my connections to the disaster in Odiry, and gave a very impressive speech about how my priority was to protect my son first, and then he told me, “Well, of course. That’s my priority too, and that of any other sensible Anuvite I know. Stay right here and just see how safe your son will be.”

They started to trail Couryan’s grandmother, close in around her, pin her down. Tonoas tarried in our neighborhood, drifting by every now and then to intimidate any hypothetically present Suyn, and then he tarried in our apartment, and then my bed. As far as I was concerned, I had made the world I wanted: it was Anuvite, ordered, full of freedom for me to work and to love, and for you to go to school and learn all you wanted about the sky and birds and flowers. Even what the Suyn said about sky and birds and flowers – that they were messengers of heaven, not carriers of wildness, strange powers, and fear. Nature’s wildness started to infect you, and you thought it was heaven. The Suyn told you it was heaven, and you chose to say yes.

I didn’t know this was happening and that the Suyn were getting to you, even though the signs were obvious, because the signs were you. Nurturing plants in the dirt for hours while oblivious to your own safety, watching flocks of migrant birds from improbable secret hideouts you’d found, constantly yearning for open and fresh air and leaving doors and windows open to send disarraying drafts through my papers – that was your soul, your true will. I was happy for you because you seemed as full of freedom and delight as I was. As far as we were concerned, I had chosen Eneyues, and you had chosen Eneuyes, and I had chosen you, and you had chosen me, and I had chosen Tonoas of Anuva and you had chosen Couryan of Suyn.

I think you told me once, or else I overheard or saw when looking through your letters, that Couryan was like a bird herself or a sunset or a flower – beautiful, ephemeral, capricious – only she knew. Nature didn’t know its own nature – it simply was, blindly. Couryan saw who she was and sought for it with all her heart and mind. She did in fact See: she had Sight, she could See for all of nature and know what it was, and then push it towards its truth. You could say that Couryan chose who she was – except that her choice was always aligned with her Sight and always aligned with Suyn. She never wanted anything else, never worked, never struggled, never suffered. The choice was always sitting there fully formed in front of her for her to pick up.

In this case, the choice was you. You were obviously in love with Suyn’s loves, the wild unordered things – you fit in her Sight of heaven. And she fit with your common, mundane sight of heaven, with her golden hair and delicate, open face. You spent a great deal of time together at school, and then at Couryan’s house while I was delighted to suddenly have plenty of time to be with Anuvites and work for Anuva. Two years passed, Couryan’s grandmother only making very occasional appearances. Then my colleague Nonoany was murdered.

Anuvites have exceedingly little patience for murder. Suyn can have the same level of distate for it, for sure – unless the murder is part of their Sight of heaven, in which case it is as beautiful as a wave throwing itself into a beach or a tree crashing in a forest. Evidently, Nonoany’s body crushed by the stones of her house and splattered with blood was beautiful. And so Suyn made it so.

We of Anuva immediately went on the hunt for Suyn, trawling through every street of Eneyues for who could have done this to our companion. We can have a great deal of patience for killing, too, when it comes to someone who has broken every rational moral law by murdering an innocent human being. And so we eventually came to Couryan’s house – Couryan and her grandmother’s house. You were there when we got there. You were there with Couryan, playing with blood, playing with magic.

Everything was clear in a moment. An Anuvite mind is always running, collecting data and finding patterns, clicking together pieces of puzzle on the edge of awareness until suddenly a sharp image leaps out from the pieces and crashes through into your consciousness. It happens when I’m working on an engineering problem, trying this way, trying another way, this number or that number or this particular configuration or what can possibly – yes. The insight breaks through and consumes me for a moment. In the space of a second my will is one with the universe.

You crashed into my mind, you and Couryan and Suyn and Couryan’s grandmother and me and Nonoany – you with Couryan, you with blood and Suyn magic – you with the same Suyn magic that had killed Nonoany, you part of the same group we wanted to kill to avenge her – and I grabbed you and rushed past my Anuvite companions out of the house, firing my gun into the ceiling to distract them, except that some of the bullets bounced off and came hurling down into them, and I heard Tonoas scream, all of them screaming, really, either from their wounds or their shock. I didn’t even stop to get anything from our apartment. I just left. With you, horrified and terrified and angry with curiosity, but safe.

And you were right to be angry, and I knew it. I had snatched you away from the home, the people, and even the things you loved, violently and suddenly. I knew I’d have been angry if I were you. I couldn’t bring you back – you had already marked yourself as complicit in Nonoany’s murder by being with Suyn and using Suyn magic, and now I had branded myself a traitor too by trying to protect you and possibly hurting Anuvites in the process. So all I could do was tell you the truth about these mysterious people who hated me. You were thirteen; you were beginning to become a man with a fully-formed will.

I told you about Anuva, and I told you about Suyn, and I hoped that your experiences with Suyn might help to balance out the bias in whatever I said about them. I told you that I was Anuvite, and every choice I’d made to protect you I’d made because I was Anuvite and I was determined to make a good life for us and not give up my will into fate. I said I was sorry, deeply sorry for all you’d suffered because of me. I told you that I knew what you were feeling about Couryan because I was feeling that way about Tonoas. (You hugged me then, your red-brown-gold hair against my cheek and your awkward, stretched-out adolescent body pressed into mine its echo.) I told you that I didn’t want to force you into anything, that you weren’t Anuva unless you chose to be, and you shouldn’t let yourself be Suyn either unless you chose to be. In a perfect world you wouldn’t have already been treated and made to suffer because people thought you were Anuva or Suyn: but it was not a perfect world. It still isn’t a perfect world. Is Anuva, that I love so much, about to kill me now because I ever chose Suyn?

You hugged me. But you didn’t say anything. You released me, and we continued on our way down the endless road. We came to Denyory eventually, where I thought we might be safe because it was so Suyn. Surely Couryan’s grandmother and her granddaughter wouldn’t think to follow us there.

I don’t know how quickly they did, because you never told me. You ate your meals with me, and then you went out into the fresh air to do whatever you did. You had to go out, of course; I wanted to stay hidden, and somebody had to buy all the mundane things we depended on. I hated not having those small regular chores I could control to mark out my days and weeks, but I did it because I thought we were less likely to be caught by either Suyn or Anuva if I stayed inside.

I slowly started to integrate into the tiny local Anuvite cell, easing my way in with another name. You were probably part of the Suyn cell at that point. You were sixteen and very handsome, with strong arms from working in the ground and delicate fingers for handling flowers. Only my hands are strong – for writing, for drawing, for holding books, for adjusting machinery, for knitting even fabric and handling small, precise guns. I have good eyes, too – especially for surveillance, after Tonoas’s training. So I started to go out sometimes to watch for Anuva, hiding in dark corners and buildings and simply observing for hours at a time. I tipped them off to a plot to murder an Anuvite, and they started to trust me. Life seemed to be working. It was moving, at least. I was always afraid, and every hour you spent away from me made you seem more alien and opaque, but years were passing without Couryan’s grandmother appearing. My plan was working.

I’ve deduced by now that I didn’t see her only because they’d decided to get me through you, instead. I slipped out of Couryan’s grandmother’s fingers too easily when she went for me directly, but if my son could catch me instead? Remove a pesky Anuvite whose existence threatened heaven, and make a Suyn with nowhere else to go but that heaven. It was clear. I could see it even then. I just didn’t dare to speak about Suyn and Anuva again with you – to force your will, or see what it truly was. I wanted you to be free, and I was afraid to see how you were free. I remained in our apartment or my surveillance cubbyholes, silent.

I saw you one day, kissing Couryan. Your passion for her was too beautiful, too full of life – I snatched bits and pieces of it and then had to look away from the pain of it and my reverence for it and the knowledge of what it entailed. I was determined to let you love Couryan if you would. You came home every day with the same blank-faced and somber expression you’d learn to put on, and I wanted to throw my arms around you and scream at you to go and love Couryan and leave me to suffer in joy. But I was afraid of what it might do to your love, and of course what it might do to me, if it might spring the trap being built around me. Still, I couldn’t contain myself. I started to be sloppy as I left my cubbyholes, hoping you would see me. At home I didn’t pry about how you’d spent your day, but I talked to you about sunsets I knew you’d find beautiful and small daily rituals I knew you enjoyed, hoping you would notice.

Don’t you see that I loved you? I desperately needed you to realize it. But if you ever did, it only makes that way you’ve treated me that much more unlike love.

I think Couryan saw me first. I’m guessing that she started to pressure you into finally acting and getting me out of the way. I just kept letting her see me, and letting you see me, and aching for you to figure out for yourself that your joy would only expand mine. But you remained silent and stone-faced.

Then one night you suddenly turned to me and said, “Mother, you need to be careful.” Your face had emotion in it. In a moment, I was blinded with hope. “You’re so exposed here like this with no one protecting you if the Anuva from Eneyues ever want to go after you. You need to…” You trailed off.

You were giving me a chance. You had built in an escape plan, for me.

“You can’t trust Anuva to protect you,” you said. “You were afraid they’d kill you. They want to kill you, not protect you. You need to…”

You looked me in the eye. “You need to get out of Anuva. They don’t care about you; you need to get out of it before they kill you.”

In a moment, I wasn’t blind anymore. I saw clearly.

But my silence just encouraged you. You’d spent too much time with Couryan, who actually indicates agreement by silence; I never do that, I speak my mind. But you just continued, “You need to find someone else to help you. I could help you, I have so many friends here. Just leave Anuva, stop relying on them – I know you must be relying on them to protect you here. Then my friends can help you…”

This was the out you gave me. This was your idea of a chance. Of a choice, even, a free choice. Leave my very self, the reason I suffered and you suffered, the only thing that held the pieces of my life and memory together, the only reason you even exist – and have my son. Or lose him, the last person I love, as he kills me with his own trap that he made for me, but do it as myself.

This was your idea of a choice. This was your idea of giving someone a choice. This was your idea of love.

How will you love Couryan? What kind of choices are you going to give her? Perhaps you are already giving her something delightful like “keep your Sight and the aura of otherworldliness it gives you that keeps me so madly in love with you, or else lose me if you ever come just a little too much more down to earth”? Maybe you’re giving her the wonderful freedom to kill an innocent, frightened woman made foolish by love, or else make herself despicable to the man she loves by betraying everything he thinks she stands for? Or perhaps you’ve already participated in her liberation, her choice to seduce the strange Anuvite boy before she was even a woman with her grandmother egging her on, rather than go against everything she knows and leave alive the woman whose existence threatens heaven?

I have had to make such choices. I’ve made them over and over again, for you. I’m Anuvite and I have to make my life out of my choices, somehow, even if they are terrible, if they are not real choices at all. But my family and my companions, the people of Anuva, should fill my life with real choices. We are here together to give each other freedom and make the fickle world with its fleeting sunsets and wild flowers hold us down a little less. But Suyn wants to hold us all down, to fix us into their tapestry of heaven or cut us out if we don’t belong. Make our choices for us so we never even have to think about freedom.

Maybe you think that you love me. Maybe you think I should consider that better than hating me purposefully. No, it’s not better. If you think you love me, you have so misunderstood love that you are twisted and dangerous and you will trap Couryan forever in the frozen vision of heaven where she is already losing herself.

But you made your choice. And I made my choice. I said to you then, calmly, “I can’t leave Anuva. The people who want to kill me aren’t the only Anuvites. I’m still safest with them.”

You pled with me a little more. Not that much. You did at least make it obvious that you intended to do away with me by telling the Anuvites of Eneyues where I was, probably making it seem like killing me would make the whole Suyn structure in Denyory collapse. Instead, of course, your purpose was to get me out of the way and potentially have evidence to convict a whole cell of Anuvites of cold-blooded murder. If it came out that I was Anuvite, all the better – they were even killing their own. It was the kind of thing that got Anuva dragged out into the open, exposed to the horror of the public like had happened in Odiry.

Assuming the Anuvites of Eneyues would forget about the oddly helpful anonymous tip-off, however. They know you and Couryan and her grandmother, and the minute they got any whiff of you they’d start going after you too, as my Suyn collaborator. They’d only become angrier when they realized I had been innocent. We’d all be dead in the end, justice done.

Except that I told them first. I wrote a letter and sent it to Tonoas and everyone else from the cell whose addresses I’d had. I told them that I was a Suyn spy, that I had killed Nonoany, and that you were innocent. You were always a double agent, secretly working for Anuva while pretending to be Suyn like your mother. You embedded yourself deep into Suyn to keep your true loyalties safe and to learn as much as you could. But now you’re about to marry a Suyn girl, and you’re not sure you can keep up the deception any longer.

The letter’s in your handwriting, you see. I didn’t teach you how to write for years for nothing. It’s written in your voice, in your handwriting, with your signature, or at least what your handwriting could be extrapolated to have become in the three years since Tonoas has seen it.

This is the out I’m giving you. This is my idea of love. I’m going to die anyways – I’m sitting right now in the room where my letter in your voice said that I would be. The Anuvites are likely coming from Eneyues now. This way or your way, they are going to kill me – it is coming at me from every direction, unstoppable.

But maybe I can still make the world a little more free for you. You can stay with Suyn if you want, or you can choose my story for yourself and join Anuva of Eneyues. You could join them and then beg to simply be left to live in peace, severing connections to both organizations. A real choice always involves more than two options. You could also use the opportunity to ambush the Eneyues Anuvites as they travel back and help make the world a better place. You could do nothing, simply let them kill me and return in peace. You could join them and try to overthrow the Denyory Suyn. You could ambush them and try to overthrow the Eneyues Anuva. You could do anything.

But whatever you do, your bride is waiting for you, and you love her. You want to love her. You want to love her as much as I know I love you.

And this is how I think you can love her that much, creating your own love out of your own choices. Be Suyn, be Anuva, be anything, but this woman that you would transform your whole life for? Let her be free too.

I think it should go without saying at this point that I love you, and that I am of Anuva, both forever, until death. You should realize that by now. And so I choose to die for you.

Refoan Omzynyes

“The world is evil, but the will is strong.”

Intelligently generate text with Markov Text Generator

Give this small program some text, and it can analyze what letters or words tend to appear together, then generate new text that’s statistically similar. You can configure it to look at pieces as small as individual letters, or at large pieces like whole groups of words. Under the hood, it counts how often particular letters or words appear after each unique piece, then uses those probabilities to build a new chain of pieces. I was informed that these are called Markov probability chains; thus, Markov Text Generator.

I originally wrote it since I wanted a program that could look at a few words in a language I was starting to make up and then create some more words that were similar, helping me get a better sense of the shape and sound of the language. But I soon discovered that I could use the same algorithm to generate all kinds of interesting text.

Unfortunately, this software only runs on Windows and has no nice user interface – it’s just a command line tool.

If you’d like to try it out, though, here’s how. First off, you can download Markov Text Generator here by clicking to download MarkovTextGenerator-1.2.zip. (You can also look at the source code there on GitHub.) Save the zip file somewhere, unzip it, and then open a command prompt and navigate to that folder. If you can figure out how to do that, you should be able to use MTG without much trouble.

Okay, so here we are in the folder where MTG is. Now you need to create some input text for MTG to analyze. How about first we try giving it a bunch of Alethi names from Brandon Sanderson’s Stormlight Archive, and see if it can generate some similarly Alethi-sounding names? I’m going to open up Notepad and put this text in a new file:

Kaladin Shallan Adolin Dalinar Kholin Renarin Gavilar Torol Sadeas Meridas Amaram Lirin Hesina Navani Jasnah Elhokar Laral Ialai Lin Balat Wikim Helaran Merin Aesudan Aladar Roion Coreb Avarak Matal Hashal Bashin Bethab Hatham Havar Jakamav Teleb Shulin Wistiow Tien Lamaril Natam Rillir Roshone Sebarial Ruthar Salinor Teshav Thanadal Vamah Yenev

I’ll save that file as “Alethi.txt” in the same folder that MTG is in, and then head back to my command prompt.

Now let’s try running MTG on this file with some basic configuration. In the command prompt, I’ll run MarkovTextGenerator.exe -i Alethi.txt -o 15. This means its input text is in “Alethi.txt”, and it should output 15 new words. Let’s see what we get…

Hmm, we’ve got some pretty odd words there. They look vaguely Alethi, but some of them are way off. How can we fix that? Well, right now by default, MTG is looking just at what comes after individual letters. It doesn’t see each letter in context. But if we told it to look at groups of letters instead, it can be more smart about what letters appear in what contexts…

So now let’s try running MarkovTextGenerator.exe -i Alethi.txt -o 15 -g 2. This tells MTG to use a “group size” of 2. Instead of seeing what tends to come after each unique letter, it will see what tends to come after each unique group of 2 letters.

We’ve still got some weird names in there, but we’re closer to actually sounding Alethi. Maybe try a group size of 3 with MarkovTextGenerator.exe -i Alethi.txt -o 15 -g 3?

Now we’re getting names so similar to the original ones that it’s not quite as useful anymore. See, group size is a sliding scale. At one end, with small group sizes, you get output that’s very different from the original text. As group size increases, the output becomes more and more similar to the original text.

So far we’ve just been using MTG to generate words. But how well can it do generating whole phrases and sentences? This time, I’m going to try giving it the entire text of Charles Dickens’ Great Expectations, snagged from Project Gutenberg. I took out the Project Gutenberg intro and licensing stuff at the beginning and end, then saved the text of the book as “Great_Expectations.txt”. So now let’s try running it through MTG, starting out with a large group size so that it will consider whole words and their usage instead of just letters. Something like MarkovTextGenerator.exe -i Great_Expectations.txt -o 30 -g 5.

Your result might be something like this. Pretty nonsensical, though it does mostly produce real English words. With larger group sizes, you might improve the output a bit…but there’s also another option. So far, MTG has been splitting up the text for analysis based on letters. But we can also tell it split up the text by words instead using the -w flag, like by running MarkovTextGenerator.exe -i Great_Expectations.txt -o 30 -w

This will probably take a while – it’s a pretty long book, after all – but once you’re finished you should get something along this line. Looking a bit better! But to improve it even more, we can set group size here, too. Instead of grouping letters like it did before, this will group words, so MTG will see what words tend to appear after each unique group of, say, 2 words. So let’s try running MarkovTextGenerator.exe -i Great_Expectations.txt -o 30 -w -g 2.

Nice! MTG is never going to generate text perfectly, since it’s totally unaware of rules of grammar and such. But the more input you give it to learn from, and the more you tweak the group size, the better output you should be able to produce. You can at least get some pretty entertaining nonsense.

If you enjoyed MTG, comment here or contact me and let me know!

The hiatus is over for now

In the 673 days since my last post on Sheesania, quite a number of interesting things have happened to me so that Present Alison is a little different from Past Alison:

  • I had two birthdays. Or more accurately, I had a lot of days between two birthdays, because the birthdays themselves did quite a bit less to change me than all the other days in between.
  • I finished high school and started college in the cornfields of Indiana, studying computer science at a Christian liberal arts school.
  • I had two internships doing software development work and learning how awesome LINQ, ReactJS, Scrum, and having money are.
  • I met Brandon Sanderson, talked to him, and even got to play Magic: The Gathering with him.
  • I knit an entire mistcloak, using more than 3 kilometers of yarn.
  • I watched Rogue One. My soul hurt. Enough said.
  • I started working on several new worlds in addition to Sheesania, some of which actually have magic or other significant speculative elements.
  • I discovered that I need to write short stories to stay sane at college. I am quite content with this price for sanity.

And I decided to get some of the things I’ve been working on together so I could post them here, and make Sheesania a better reflection of Present Alison. So over the next few weeks I’ll be posting a variety of stories, programs, essays, and other miscellaneous things that I’ve created in the last 673 days. And then we’ll just have to see what else I manage to come up with after that.

Letter to Kaladin, or a musing on the peculiarity of fiction

You should be able to understand the gist of this piece even if you haven’t read the Stormlight Archive; you just won’t get a few jokes and some of the more specific irony. But do be aware that there are some indirect and some small spoilers for The Way of Kings.

Dear Kaladin,

I would like to introduce you to somebody very important. His name is Brandon Sanderson, and he is the source of all your miseries.

Photo by Captain Demoux

Brandon was the one who killed Tien, and who made Amaram murder your spearmen. Brandon was the one who decided to bring Roshone to your hometown, and Brandon was the one to give Roshone the idea to force Tien into the army. Oh, and Brandon also killed Dunny, Maps, and Narm, and he’ll probably kill you too someday. Unfortunately, Brandon lives in an entirely different universe, so you can’t do anything about it. (But at least he’s darkeyed.)

You see, I hate to break it to you, Kaladin, but you’re actually a fictional character. You kind of don’t actually exist. Somebody made you up in his head and wrote down about it, and now little copies of you live in lots of people’s heads with slightly different physical features based on the age and gender of the person involved. (If you have trouble believing this, ask Hoid. He knows a lot of other very interesting things, too.) It’s sort of like a shared hallucination. Come on, isn’t that cool? You’re a shared hallucination! I can’t say that about myself. Anyways, so this guy Brandon Sanderson has a kind of overactive imagination, so one day he created you and decided to start making all those agonizing things happen to you because he was bored and besides, he needs to make money somehow and he didn’t want to be a surgeon.

The nice thing about being imaginary is that you’ve got an all-powerful creator watching over you who can turn your life around whenever he wants. For instance, you may be interested to know that in your original incarnation, you took the Blade and Plate of that Shardbearer you killed, and it was okay. In fact, you got to go to the Shattered Plains and have an entertaining time outdoing everyone in the army with your awesomeness while becoming best buddies with Adolin, then finally saving the Kholins from treachery in a whirlwind of magical Shardbearing coolness. But then Brandon decided that was too boring and made you an enslaved bridgeman instead. Now that particular example may not be particularly encouraging, but just think, Kaladin – if Brandon could make your life horrible just because he decided to, he could certainly make your life wonderful just as easily!

But you shouldn’t worry about it anyways, Kaladin. Your almost being driven to suicide was really all for the best. Because now you have a huge fan club over in this universe! Tens of thousands of people pay Brandon so they can watch you be “forced to forsake healing to fight in the most brutal war” and “struggle to save [your] men” as the advertisement on the back of the book says. Some of us use your woes for entertainment when we have to go on really long train rides and we can’t stand looking at the scenery and sitting on seats without nearly enough padding anymore. Others like to watch you narrowly escape death while they’re stuck in their houses because it’s raining so hard outside that they might actually get wet if they went out. I, for my part, had a lovely time reading the scene where you see Tien die while I was baking cornbread and had to sit and keep an eye on the oven temperature, because I own an awful oven that can’t even hold its temperature. (The cornbread turned out very nicely, by the way.)

But this might make it sound like we don’t really care about you or take you seriously. Oh, no! You can be sure that many of us care about you deeply. Some take your future welfare so seriously that they spend hours and hours thinking, writing and drawing about who you should marry. (I think you should go with Shallan, by the way.) Others are more concerned about your health, so they diagnose the exact mental and psychological disorders that you face and prescribe what you need to do to handle them. We also tend to get into arguments over these subjects, because after all, it’s extremely important to be right and to convince everyone else of what’s right so we can best help you. Who knows what terrible damage could be done to your soul if some idiots ship you with Syl!

Then there are the fans who admire your grit and determination and want to be like you, so they dress up as you and go to big meetings where they have to wait in really long lines for Brandon to write his name in copies of books he wrote about you. After all, he’s the one who gave you reasons to display your grit and determination. And then there are those of us who are so committed to you that we put Bridge Four sticker decals on our cars. Never mind that they decrease the resale value of those precious objects – as we sit and drive around the country in air conditioning, and as we stop at gas stations, rest stops with public bathrooms, and fast food chains, we are showing that we stand with Kaladin Stormblessed in his pain and suffering and his commitment to making the world a better place. Even better, we can pay Brandon to get hats with your slave brands on them so we can wear the hats and advertise our choice to be nerdy and cool whenever we want!

Kaladin, I am truly sorry for all you have gone through, and it really is a shame that Brandon had to do all that to you so he could make some money. Alas, happiness doesn’t sell. But I want you to remember, no matter what you go through – no matter who dies or who you fail, no matter who you lose or who betrays you, no matter what apocalypses, catastrophes, disasters, agonies come your way – you’ve entertained thousands of middle-class suburban nerds, not to mention a few urban ones, and they’re cheering for you. Cherish that, Kaladin. Don’t let anything get you down, because you’ve got a fan club. And after all, Brandon Sanderson’s going to die someday and leave you in peace.

How to follow a Twitter account without using Twitter

Say you’ve found a Twitter user whose posts you’d like to read. You don’t want to post anything yourself, you don’t want to know what other people are posting, you don’t care about trending topics or popular users or hashtags or whatever – you just want to follow that one user’s Twitter posts without any fuss.

This is surprisingly difficult.

I recently thought that I’d enjoy keeping up with Brandon Sanderson‘s posts on Twitter using my new Android smartphone – maybe I could just get a quick notification and a link to his tweet on my phone whenever he posts something. I looked into using an RSS feed to do this, but nope, Twitter doesn’t do RSS. So I gave in and decided to try using a proper Twitter app on my phone. And there are lots of nice Twitter clients to choose from on Android…but, well, that’s exactly the problem. There are too many to choose from, and they have too many distracting features I don’t care about, like tools for posting tweets yourself…while they don’t have features I do care about, like options that would let me see Brandon Sanderson’s replies to other users along with his normal tweets.

But there is a better way! And what’s more, with this method you can do more than just get notifications on an Android – you could also get notifications on an iPad or iPhone, or email notifications, or an SMS, or a phone call where a robot reads out the tweet…Though you may want to avoid that last one if you share a phone number with anybody.

Where we’re going today

IFTTT (“If This, Then That”) is a website that lets you automatically trigger a certain action when a certain thing happens. That sounds very vague, but that’s because IFTTT is so versatile. The trigger action can be anything from “My Android phone connected to my home wifi network” to “I posted something new on my blog” to “It’s 5:00 pm on Sunday” to “Somebody mentioned me on Reddit”. The resulting action can be anything from “Send me an email” to “Post a new photo on my Facebook account” to “Turn off my lights” (if you have the right kind of lights) to “Upload something to my Dropbox account”.

With IFTTT, you create a “recipe” that has one “trigger” and one “action”. I’m going to use IFTTT to create a recipe with a trigger of Brandon Sanderson tweeting something and an action of a notification being sent to me. I’ll show you how to get Android notifications as well as two different types of email notifications.

Setting up a Twitter trigger

Okay, let’s get going! First you’ll need to go to the IFTTT website and sign up for an account. Click the blue button. I know it’s hard to find, but I think you can do it.

2015-05-03_06-47-29

Fill in the information and click “Create account”.

2015-05-03_06-49-32

Go through the introduction…

2015-05-03_06-50-03

2015-05-03_06-50-12

2015-05-03_06-50-28

IFTTT asks you to choose three “Channels” you’re interested in using so it can recommend some recipes to you. It doesn’t matter what you choose, though.

2015-05-03_06-51-14

Now let’s start actually creating our recipe for getting notified of tweets. In the top right-hand corner, click on the little arrow next to your username, then click on “Create”.

2015-05-03_06-51-53

First we’re going to set up the trigger action – in my case, Brandon Sanderson tweeting. Click on “This”.

2015-05-03_06-52-06

There are a lot of options for triggers! But for now we’re just looking for the Twitter one. Find or search for it and then click on it. (You’ll probably see an icon for Twitter there, unlike me with my strange Internet connection.)

2015-05-03_06-52-27

Now we’re going to have to activate the Twitter channel, which is a bit of a pain…but you won’t have to do it again if you make another IFTTT recipe using Twitter!

2015-05-03_06-52-45

To do this you’ll need a Twitter account. If you already have one, you can just sign in, but I’m going to quickly sign up for one here. I’ll use this account to activate IFTTT’s Twitter channel and never use it again.

2015-05-03_06-52-59

Fill in the information and click Sign Up. Like I said, I’m only making this account so I can use IFTTT with Twitter, so I’m not even bothering to give Twitter an email that I actually check – I’m using a disposable email address from Mailinator.

2015-05-03_06-54-21

Now click “Authorize app” and IFTTT will be able to create a Twitter trigger.

2015-05-03_06-55-09

Twitter will send you back to IFTTT; click “Done” and then go back to the browser window where you were working directly with IFTTT. Now you’re be able to click “Continue to the next step.”

2015-05-03_06-56-38

Now it’s time to actually choose what will trigger a notification! So, we should choose the “New tweet by a specific user” trigger, right…?

2015-05-03_06-59-05

Actually, that depends. If you choose this trigger, you’ll get all the tweets that the person you choose sends out to everyone….but if they direct a message to a specific user, on the other hand, you won’t get it. So if Brandon Sanderson tweets “The 5th Alcatraz book is coming out today!”, I’d get it, but if he tweeted “@MarcTauss What exactly is that wooden thing on the cover of the 4th book?”, I wouldn’t be notified. Now I, for one, love to eavesdrop on Brandon Sanderson’s exchanges with fans, so I want to make sure to get all the tweets he sends to specific people. And so I’m going to choose another trigger – the “New tweet from search” one.

2015-05-03_07-02-02

Now I’ll search for everything coming from Brandon Sanderson. In Twitter search lingo, this is “from:BrandSanderson include:retweets”. If you’re trying to follow another user besides Brandon Sanderson (though why I can’t fathom), put their username in instead of “BrandSanderson”. So for instance, “from:FiatLingua include:retweets”. This is how you can get all the messages coming from somebody, not just the ones they send out generally.

2015-05-03_07-06-56

You’ve successfully set up a trigger! Now let’s see how you can get a notification sent to you when your trigger fires.

Setting up a notification action

Start by clicking on “that”.

2015-05-03_07-10-58

Well, there are sure a lot of choices here, too! I’m only going to demonstrate how to set up Android notifications and email notifications, but clearly there are plenty of other options available for you to try.

For now, though, let’s see how you could set up…

Simple email notifications

Find the cleverly named “Email” channel and click on it…

2015-05-03_07-14-33

Then click “Send me an email”.

2015-05-03_07-14-56

Now you can tell IFTTT what the subject line and text of each notification email should be. See those weird gray boxes? When you actually get an email, they’ll be replaced by information from the actual tweet. So if Brandon Sanderson sent out a tweet saying “The 5th Alcatraz book will be released tomorrow!”, I’d get an email with the subject “@BrandSanderson: The 5th Alcatraz book will be released tomorrow!”, and once I opened up the email I would see “via http://twitter.com/BrandSanderson”.

2015-05-03_07-17-37

If you click on one of the grey boxes, they’ll change to text surrounded by double curly braces, and then you can move them around as you like.

2015-05-03_07-19-34

Once you’re editing some text, you’ll also see a little test tube icon in the upper right corner. If you click on that, you can add more magical grey boxes that will replaced with different things when you actually get the email. I’m going to add a link to the actual tweet in the body of the email. So I’m going to click on the test tube icon, select “LinkToTweet”, and then click “Add Ingredient”.

2015-05-06_07-05-54

Additionally, I would like to have the text of the tweet put in the body of the email, so I’m going to move that {{Text}} thing. I’ll also make a few other changes. As you see, you can add text wherever you like; just don’t change what’s in between curly braces or the grey boxes won’t magically get replaced by information from tweets anymore.

When you’re finished, click “Create Action”.

2015-05-06_07-07-01

Now you just need to give your recipe a title, click “Create Recipe”, and you’ll be all set!

2015-05-03_07-22-26

And there you go! Next time the user you chose tweets, you’ll get an email like this:

2015-05-06_09-08-02

Email digest notifications

Instead of sending you an email every time somebody tweets, IFTTT can instead just send you an email every day or every week with all the tweets that have been sent out in the interim – an email digest. Let’s see how that would work out. First off, once you’re at the “that” part of making an IFTTT recipe, find and click on the “Email Digest” channel.

2015-05-03_09-18-03

Now decide whether you’d like to get an email every day or every week. I’ll be trying a weekly digest, but it’s basically the same process to set up a daily one.

2015-05-03_09-19-10

Here you can tell IFTTT when you want to get your digest and what should be in it. As I explained in the instructions for normal email notifications, you can move around the curly-braced grey boxes or delete them as you’d like, and you can add in other grey boxes by clicking on the test tube. Besides that, you can add or delete whatever other text you want.

2015-05-03_09-22-06

When you’re done, click “Create Action”…

2015-05-03_09-22-15

…name your recipe, click “Create Recipe”…

2015-05-03_09-24-15

…and you’re done! Now at the time you set, you should get an email from IFTTT with tweets like this:

2015-05-06_06-56-22

Android notifications

Now let’s try something a little more tricky: an IFTTT recipe that sends a notification to my Android phone when Brandon Sanderson tweets. So, once you get to the “that” part of a recipe, find and click on the “Android Notifications” channel…

2015-05-03_09-29-44

Click “Send a notification”…

2015-05-03_09-30-01

Now you can decide what the notification will actually say, using those same magical grey boxes I showed you before.

2015-05-03_09-31-08

I’m going to switch around a few things and then click “Create Action”.

2015-05-03_09-31-19

Name your recipe and click “Create Recipe” as always.

2015-05-03_09-31-59

But wait a minute. How will IFTTT know what phone to send the notifications to? It won’t…until you install the IFTTT app on your Android device! Let’s see how you can set that up. First, head over to Google Play and search for “IFTTT”.

shot_2015-05-03_09-49-09

Now choose “IF by IFTTT” and install it.

shot_2015-05-03_09-49-45

Click “Accept”. It does want access to a lot of stuff, but that’s because you can use it to do a lot of stuff.

shot_2015-05-03_09-50-28

Once it’s finished installing, open it up…

shot_2015-05-03_09-52-05

…flip through IFTTT’s little intro…

shot_2015-05-03_09-58-40

…and you’ll get to a login screen. You’ve already made an IFTTT account, so click on the “Sign In” link at the bottom.

shot_2015-05-03_10-00-16

Fill the username and password you chose and click “Login”…

shot_2015-05-03_10-01-00

…and there you go! Now when Brandon Sanderson tweets I’ll hear my message tone, and then when I look at my phone I’ll see a notification:

shot_2015-05-03_20-15-38

Which I can then click on:

shot_2015-05-03_20-35-38

Which I can then click on again:

shot_2015-05-03_20-35-48

And then I can click the “Open in Browser” button to open up the tweet in my browser, which will show me any replies to the tweet as well as any other tweets it was replying to.

shot_2015-05-03_20-36-47

And there you go, that’s how I’m now following Brandon Sanderson’s tweets without having to bother with the rest of Twitter. If you try this yourself, let me know how it goes!