Ron Toland
About Canada Writing Updates Recently Read Photos Also on Micro.blog
  • Notes from Strange Loop 2015: Day One

    Unconventional Programming with Chemical Computing

    • Carin Meier
    • Living Clojure
    • @Cognitect
    • Inspired by Book - unconventional programming paradigms
    • "the grass is computing"
      • all living things process information via chemical reactions on molecular level
      •  hormones
      • immune system
      • bacteria signal processing
    • will NOT be programming with chemicalsusing metaphor of molecules and reactions to do computing
      • nothing currently in the wild using chemical computing
    • at the heart of chemical programming: the reaction
    • will calculate primes two ways:
      • traditional
      • with prime reaction
    • uses clojure for the examples
    • prime reaction
      • think of the integers as molecules
      • simple rule: take a vector of 2 integers, divide them, if the mod is zero, return the result of the division, otherwise, return the vector unchanged
      • name of this procedure: gamma chemical programming
      • reaction is a condition + action
      • execute: replacement of original elements by resulting element
      • solution is known when it results in a steady state (hence, for prime reaction, have to churn over lists of integers multiple times to filter out all the non-primes)
    • possible advantages:
      • modeling probabilistic systems
      • drive a computation towards a global max or min
    • higher order
      • make the functions molecules as well
      • fn could "capture" integer molecules to use as args
      • what does it do?
      • it "hatches" => yields original fn and result of applying fn to the captured arguments
      • reducing reaction fn: return fewer arguments than is taken in
      • two fns interacting: allow to exchange captured values (leads to more "stirring" in the chem sims)
    • no real need for sequential processing; can do things in any order and still get the "right" answer
    • dining philosophers problem
      • something chemical programming handles well
      • two forks: eating philosopher
      • one fork or no forks: thinking philosopher
      • TP with 2fs reacting with EAT => EP
    • "self organizing": simple behaviors combine to create what look like complex behaviors
    • mail system: messages, servers, networks, mailboxes, membranes
      • membranes control reactions, keep molecules sorted
      • passage through membranes controlled by servers and network
      • "self organizing"

    How Machine Learning helps Cancer Research

    • evelina gabasova
    • university of cambridge
    • cost per human genome has gone down from $100mil (2001) to a few thousand dollars (methodology change in mid-2000s paid big dividends)
    • cancer is not a single disease; underlying cause is mutations in the genetic code that regulates protein formation inside the cell
    • brca1 and brca2 are guardians; they check the chromosomes for mistakes and kill cells that have them, so suppress tumor growth; when they stop working correctly or get mutated, you can have tumors
    • clustering: finding groups in data that are more similar to each other than to other data points
      • example: clustering customers
      • but: clustering might vary based on the attributes chosen (or they way those attributes are lumped together)?
      • yes: but choose projection based on which ones give the most variance between data points
      • can use in cancer research by plotting genes and their expression and looking for grouping
    • want to be able to craft more targeted responses to the diagnosis of cancer based on the patient and how they will react
    • collaborative filtering
      • used in netflix recommendation engine
      • filling in cells in a matrix
      • compute as the product of two smaller matrices
      • in cancer research, can help because the number of people with certain mutations is small, leading to a sparsely populated database
    • theorem proving
      • basically prolog-style programming, constraints plus relations leading to single (or multiple) solutions
      • can use to model cancer systems
      • was used to show that chronic myeloid leukemia is a very stable system, that just knocking out one part will not be enough to kill the bad cell and slow the disease; helps with drug and treatment design
      • data taken from academic papers reporting the results of different treatments on different populations
    • machine learning not just for targeted ads or algorithmic trading
    • will become more important in the future as more and more data becomes available
    • Q: how long does the calculation take for stabilization sims?
      • A: for very simple systems, can take milliseconds
    • Q: how much discovery is involved, to find the data?
      • A: actually, whole teams developing text mining techniques for extracting data from academic papers (!)

    When Worst is Best

    • Peter Bailis
    • what if we designed computer systems for the worst-case scenarios?
    • website that served 7.3Billion simultaneous users; would on average have lots of idle resources
    • hardware: what if we built this chip for the mars rover? would lead to very expensive packaging (and a lot of R&D to handle low-power low-weight environments)
    • security: all our devs are malicious; makes code deployment harder
    • designing for the worst case often penalizes the average case
    • could we break the curve? design for the worst case and improve the average case too
    • distributed systems
      • almost everything non-trivial is distributed these days
      • operate over a network
      • networks make designs hard
        • packets can be delayed
        • packets may be dropped
      • async network: can't tell if message has been delayed or dropped
        • handle this by adding replicas that can respond to any request at any time
        • network interruptions don't stop service
    • no coordination means even when everything is fine, we don't have to talk
      • possible infinite service scale-out
    • coordinated multi-server transactions pay large penalty as we add more servers (from locks); get more throughput if we let access be uncoordinated
    • don't care about latency if you don't have to send messages everywhere
    • but what about the CAP theorem?
      • inktomi from eric brewer: for large scale services, have to trade off between always giving an answer and always giving the right answer
      • takeaway: certain properties of a system (like serializability) require unavailability
      • original paper: cathy lynch
      • common conclusion: availability is too expensive, and we have to give up too much, and it only matters during failures, so forget about it
    • if you use worst case as design tool, you skew toward coordination-avoiding databases
      • high coordination is legacy of old db design
      • coordination-free designs are possible
    • example: read committed isolation
      • goal: never read uncommitted data
      • legacy implementation: lock records during access (coordination)
      • one way: copy on write (x -> x', do stuff -> write back to x)
      • or: versioning
      • for more detail, see martin's talk on saturday about transactions
    • research on coordination-free systems have potential for huge speedups
    • other situations where worst-case thinking yields good results
      • replication for fault tolerance can also increase your request-serving capacity
      • fail-over can help deployments/upgrades: if it's automatic, you can shut off the primary whenever you want and know that the backups will take over, then bring the primary back up when your work is done
      • tail latency in services:
        • avg of 1.2ms (not bad) can mean 0.1% of requests have 100ms (which is terrible)
        • if you're one of many services being used to fulfill a front-end request, your worst case is more likely to happen, and so drag down the avg latency for the end-user
    • universal design: designing well for everyone; ex: curb cuts, subtitles on netflix
    • sometimes best is brittle: global maximum can sit on top of a very narrow peak, where any little change in the inputs can drive it away from the optimum
    • defining normal defines our designs; considering a different edge case as normal can open up new design spaces
    • hardware: what happens if we have bit flips?
    • clusters: what's our scale-out strategy?
    • security: how do we audit data access?
    • examine your biases

    All In with Determinism for Performance and Testing in Distributed Systems

    • John Hugg
    • VoltDB
    • so you need a replicated setup?
      • could run primary and secondary
      • could allow writes to 2 servers, do conflict detection, and merge all writes
      • NOPE
    • active-active: state a + deterministic op = state b
      • if do same ops across all servers, should end up with the same state
      • have client that sends A B C to coordination system, which then ends ABC to all replicas, which do the ops in order
      • ABC: a logical log, the ordering is what's important
      • can write log to disk, for later replay
      • can replicate log to all servers, for constant active-active updates
      • can also send log across network for cluster replication
    • look out for non-determinism
      • random numbers
      • wall-clock time
      • record order
      • external systems (ping noaa for weather)
      • bad memory
      • libraries that use randomness for security
    • how to protect from non-determinism?
      • make sure sql is as deterministic as possible
      • 100% of their DML is deterministic
      • rw transactions are hard to make deterministic, have to do a little more planning (swap row-scan for tree-index scan)
      • use seeded random-number generators that are lists created in advance
      • hash up the write ops, and require replicas to send back their computed hashes once the ops are done so the coordinator can confirm the ops were deterministic
      • can also hash the whole replica state when doing a transactional snapshot
      • reduce latency by sending condensed representation of ops instead of all the steps (the recipe name, not the recipe)
    • why do it?
      • replicate faster, reduces concerns for latency
      • persist everything faster: start logging when the work is requested, not when the work is completed
      • bounded sizes: the work comes in as fast as the network allows, so the log will only be written no faster than the network (no firehose)
    • trade-offs?
      • it's more work: testing, enforcing determinism
      • running mixed versions is scary: if you fix a bug, and you're running different versions of the software between the replicas, you no longer have deterministic transactions
      • if you trip the safety checks, we shut down the cluster
    • testing?
      • multi-pronged approach: acid, sql correctness, etc
      • simulation a la foundationDB not as useful for them, since they have more states
      • message/state-machine fuzzing
      • unit tests
      • smoke tests
      • self-checking workload (best value)
        • everything written gets self-checked; so to check a read value, write it back out and see if it comes back unchanged
      • use "nefarious app": application that runs a lot of nasty transactions, checks for ACID failures
      • nasty transactions:
        • read values, hash them, write them back
        • add huge blobs to rows to slow down processing
        • add mayhem threads that run ad-hoc sql doing updates
        • multi-table joins
          • read and write multiple values
        • do it all many many times within the same transaction
      • mix up all different kinds of environment tweaks
      • different jvms
      • different VM hosts
      • different OSes
      • inject latency, disk faults, etc
    • client knows last sent and last acknowledged transaction, checker can be sure recovered data (shut down and restart) contains all the acknowledged transactions

    Scaling Stateful Services

    • Caitie MacCaffrey
    • been using stateless services for a long time, depending on db to store and coordinate our state
    • has worked for a long time, but got to place where one db wasn't enough, so we went to no-sql and sharded dbs
    • data shipping paradigm: client makes request, service fetches data, sends data to client, throws away "stale" data
    • will talk about stateful services, and their benefits, but WARNING: NOT A MAGIC BULLET
    • data locality: keep the fetched data on the service machine
      • lower latency
      • good for data intensive ops where client needs quick responses to operations on large amounts of data
    • sticky connections and consistency
      • using sticky connections and stateful services gives you more consistency models to use: pipelined random access memory, read your write, etc
    • blog post from werner vogel: eventual consistency revisited
    • building sticky connections
      • client connecting to a cluster always gets routed to the same server
    • easiest way: persistent connections
      • but: no stickiness once connection breaks
      • also: mucks with your load balancing (connections might not all last the same amount of time, can end up with one machine holding everything)
      • will need backpressure on the machines so they can break connections when they need to
    • next easiest: routing logic in cluster
      • but: how do you know who's in the cluster?
      • and: how do you ensure the work is evenly distributed?
      • static cluster membership: dumbest thing that might work; not very fault tolerant; painful to expand;
      • next better: dynamic cluster membership
        • gossip protocols: machines chat about who is alive and dead, each machine on its own decides who's in the cluster and who's not; works so long as system is relatively stable, but can lead to split-brain pretty quickly
        • consensus systems: better consistency; but if the consensus truth holder goes down, the whole cluster goes down
    • work distribution: random placement
      • write anywhere
      • read from everywhere
      • not sticky connection, but stateful service
    • work distribution: consistent hashing
      • deterministic request placement
      • nodes in cluster get placed on a ring, request gets mapped to spot in the ring
      • can still have hot spots form, since different requests will have different work that needs to be done, can have a lot of heavy work requests placed on one node
      • work around the hot spots by having larger cluster, but that's more expensive
    • work distribution: distributed hash table
      • non-deterministic placement
    • stateful services in the real world
    • scuba:
      • in-memory db from facebook
      • believe to be static cluster membership
      • random fan-out on write
      • reads from every machine in cluster
      • results get composed by machine running query
      • results include a completeness metric
    • uber ringpop
      • nodejs library that does application-layer sharding for their dispatching services
      • swim gossip protocol for cluster membership
      • consistent hashing for work distribution
    • orleans
      • from Microsoft Research
      • used for Halo4
      • runtime and programming model for building distributed systems based on Actor Model
      • gossip protocol for cluster membership
      • consistent hashing + distributed hash table for work distribution
      • actors can take request and:
        • update their state
        • return their state
        • create a new Actor
      • request comes in to any machine in cluster, it applies hash to find where the DHT is for that client, then that DHT machine routes the request to the right Actor
      • if a machine fails, the DHT is updated to point new requests to a different Actor
      • can also update the DHT if it detects a hot machine
    • cautions
      • unbounded data structures (huge requests, clients asking for too much data, having to hold a lot of things in memory, etc)
      • memory management (get ready to make friends with the garbage collector profiler)
      • reloading state: recovering from crashes, deploying a new node, the very first connection of a session (no data, have to fetch it all)
      • sometimes can get away with lazy loading, because even if the first connection fails, you know the client's going to come back and ask for the same data anyway
      • fast restarts at facebook: with lots of data in memory, shutting down your process and restarting causes a long wait time for the data to come back up; had success decoupling memory lifetime from process lifetime, would write data to shared memory before shutting process down and then bring new process up and copy over the data from shared to the process' memory
    • should i read papers? YES!
    → 9:00 AM, Oct 5
  • How to Fix Riddick

    I love Pitch Black. It’s an almost perfect B movie to me, all horror and snark and very little fat left on the bone.

    After the bloat of Chronicles of Riddick, I was hoping the third movie would be a return to form, stripping away the mythology of the sequel to reveal the basics that made the original great.

    Instead, Riddick is just another male power fantasy, embracing every cliche possible, from “one man against the wilderness” to “masculine man of manliness converts lesbian to heterosexuality.”

    What a mess.

    But it’s not hopeless. There’s a good movie buried in there. We get flashes of it in the dialog given to the grunt mercs, which is cynical and darkly funny. We see more of it in the early scenes of Riddick hunting the mercs down, a horror film where Riddick is the monster.

    It’s this film we need to strengthen.

    We start by dropping the entire first third of the movie. I don’t care how Riddick ended up marooned on the world. The fact that he is marooned is what’s important, and that it happened after the events of Chronicles of Riddick. But I can learn he’s marooned there from the mercs' dialog when they talk about someone setting off the emergency beacon, and I can deduce this is happening after Chronicles when I see Riddick wearing his Necromonger armor.

    Instead of starting with backstory, the movie should open with the mercs landing. By starting there, all the mystery they encounter gives the movie tension. We know (or think we know) Riddick’s going to show up at some point, but we don’t know where or when or how. And when we find out he called the mercs there, and we read his note, we wonder when the bodies will start to fall.

    The entire first half of the movie should be given over to this Alien-like horror sequence, with the mercs pitted against Riddick, the monster in the night.

    Given more room to breathe, this part can tell us all we need to know about Riddick’s time on the planet. We can see him use his dog to trick the mercs. We can watch him use the water monsters' poison to kill one or two of the others (and let him explain in an off-hand remark that he’s immune to their venom). By using the planet as part of his arsenal, we’ll get the sense that Riddick’s been there a while, that he knows his way around, and that the mercs face an uphill battle.

    For the final half, we can introduce the rain storm. This twist forces Riddick to reach out to the (reduced to maybe one or two remaining) mercs for a truce, and now we get the scenes of a captured Riddick escaping and the tension of the mistrust between the two groups.

    Finally, Dahl’s character should have a consistent sexuality. Either she should be – and remain – a lesbian, and the sexual talk between her and Riddick rewritten into a form of oddly respectful banter, or her line to Santana should be changed to “I don’t f— little boys,” and it made clear that she’s attracted to men that could their own against her in a fight (maybe by hitting on Diaz). Either way, their lines to each other need to be rewritten to show some chemistry – either friendly or otherwise – between the two.

    → 9:00 AM, Sep 30
  • Pride and Prejudice by Jane Austen

    The second of the set of classics I’ve decided to finally go back and read.

    As with Heart of Darkness, this book deserves its status. It’s oddly written from a modern perspective, violating rules left and right – telling instead of showing, switching from third to first person narration at the end of the book, having significant action happen off-screen – but is an absolute delight to read. The characters are all distinct and interesting, the dialog often made me laugh out loud, and despite the gulf of two hundred years – and a good deal of class status – made me relate to and care about the happiness of the Bennets.

    Three things I learned about writing:

    • Verbal tags (e.g., he shouted, she sighed) aren't as necessary as I thought. Austen uses almost none, yet since we know so much about each character's personality, we can infer the tone and intent.
    • Description can be dropped for a book set in the same time period as the audience. Austen didn't need to describe a drawing room, or a coach, or any of the characters' clothes. Cutting all that description gave her more room for dialog and inner thoughts, which was more time for us to spend getting to know and care about her characters.
    • Don't feel constrained by time. Austen zooms in and out of events as she pleases, summarizing a ball but giving a single conversation blow-by-blow. Skipping over events let her cover a lot of ground in a single novel.
    → 9:00 AM, Sep 28
  • Dropping Threads

    Novel’s made it to 43,593 words.

    Starting to worry that pantsing it means I’m dropping plot threads. I’ve already noticed a major one that just completely fell of my radar, and two more that are smaller but also haven’t been addressed in a while.

    Not sure if I should slow down and try to fill them in, work the missing threads back into the book, or keep moving forward, and worry about fixing it later.

    This might even be a good thing, a sign that these plot elements don’t belong, and should be cut, not reinforced.

    It’s hard to tell which is right. I think it’s too late for the major plot point, that’ll have to wait for the second draft. The minor ones, though, I think I can fill in as I go, and take care not to leave them behind. I guess if I get stuck somewhere further in to the book, and it’s because of these missing threads, I’ll know to be more careful in the future.

    → 9:00 AM, Sep 25
  • Aliens vs Predator: Which is the Better Movie?

    A friend of mine last week insisted that Aliens was a better movie than Predator. Having fond memories of both of these movies from my younger days, I didn’t believe her at first. I thought the movies were very different but equally good sci-fi films.

    I re-watched both movies to test her thesis, and man, was I wrong. Aliens is far and away the better movie, and not just because Sigourney Weaver can out-act the former governor.

    Both movies turn out to be very similar to each other, but the writing and structure of Aliens is much better, much better.

    How They're Similar

    Both movies follow a military team into an uncertain situation. This uncertain situation turns out to contain an alien threat.

    The alien threat in both cases clearly outmatches the resources of the team.

    Both squads have an Outsider Who Is In Charge along with them (Dillon in Predator, Burke in Aliens). This Outsider has a different moral code than the rest of the team, being concerned with either profit or enemy intelligence above everything else.

    The original mission in both movies is supposed to be rescue, but we find out the team has been tricked, and they’re really there to advance the Outsider’s agenda.

    The Outsider is karmically punished for their betrayal of the team by the alien threat.

    The climax of both movies is a one-on-one fight between the protagonist and the main alien threat.

    What Aliens Does Better

    Almost everything.

    The Team

    Let's start with the team, since that's who we spend most of the movie with. This is supposed to be a tight-knit group of people who have worked together for a long time, and we're supposed to root for them throughout. So the film needs to take every chance it has to communicate that to us.

    Aliens succeeds. Its marines seem to actually like each other, and function as team. We get to see them joking and talking as they come out of hyper-sleep and while they’re eating before the mission briefing. They continue to banter using their radios as the mission starts (before things go haywire).

    We also get a clear sense of the hierarchy and role for each member of the team: we know who the sergeant is, which people are carrying the heavy guns, who’s got the radar for spotting, etc.

    Predator fails to do any of this. The members of the team don’t seem to like each other at all. We don’t see them bantering, but we do see them do some macho posturing, which is not a substitute.

    What’s more, none of the team members really seem to have a clear role. They all carry basically the same weapons, they don’t work in groups, and they all have the same skills.

    The one exception is Billy, the tracker, but he’s so close to the “wise Native American hunter” stereotype that it doesn’t serve to flesh out his character, it just makes him more of a caricature.

    The Betrayal

    Next, the "turn" or "betrayal" moment, when we find out the Outsider has tricked the team.

    In Aliens this is a real betrayal. Burke locked two of them in with an alien in the hopes it would impregnate one of them, and was ready to kill the others so he could take off on his own (with the alien and its host). The Outsider turns out to be a real threat to the team, and there’s conflict generated both in overcoming his betrayal and deciding how to punish him for it.

    Predator’s betrayal is much lower key. The team’s capture of the rebel camp seems effortless, with not much risk to any of the team members. Dillon’s betrayal is just an ulterior motive for getting in the camp. He never directly puts anyone’s lives in danger, and so the protagonist’s treatment of him feels overblown and melodramatic. There’s no real punch to it.

    It would have been much better to make Dillon’s betrayal more serious. Imagine if Dutch’s team made it to the camp only to find that everyone was dead, with Anna the only survivor. She won’t talk, but they decide to take her back with them anyway. As they head back to the evac point, the team start getting picked off by the Predator. Eventually only Dutch, Anna, and Dillon are left.

    Dillon finally confesses what’s really happening: he knew about the Predator, and contracted Dutch’s team under false pretenses because his first pick got wiped out by the alien. He wants to capture it, which is why he hasn’t been shooting to kill when he sees it. He’s ready to admit that he was wrong, though, and wants to help kill it so they can all get home.

    Now Dutch has got a real moral problem: should he trust Dillon and work with him to defeat the predator? Or should he punish him for betraying his team and getting most of them killed?

    Either choice is interesting, and would have a significant impact on the plot.

    The Climax

    Finally, the climax of Aliens is done better. I don't just mean the robot-on-alien action (which is objectively awesome).

    I mean that in the Predator climax, the alien gets progressively dumber. He starts out as this advanced warrior, but eventually ditches all his advantages – his armor, his gun, his helmet – to take on the protagonist in one-on-one combat. Against such a willfully dumb and weakened adversary, how could the protagonist lose?

    In Aliens, the alien queen gets smarter as the fight goes on. We originally see her as just an egg laying machine. But she escapes from the power station before it blows up, stowing away on the ship. Once on the ship, she waits until they’re docked with the main one before emerging, and when she does she goes after the humans for food (Well, and maybe a little revenge. She does seem pissed off). She uses every advantage she has, all her strength and cunning, which makes Ripley’s victory even more impressive.

    → 9:00 AM, Sep 23
  • The Discovery of Middle Earth: Mapping the Lost World of the Celts by Graham Robb

    An odd book. The author’s main thesis – that the Celts knew enough about geometry and astronomy to align their cities with the path of the sun – is convincing, once his evidence is laid out. But along the way he falls into claims that sound more like an “aliens built the pyramids” book, such as when he says all Celtic art was based on complex geometric designs.

    It’s hard to fault him too much, though; the central idea is inspiring, and his excitement at getting to share it bleeds through.

    Just a few of the things I learned from this book:

    • The Druids -- and the Celts in general -- were not illiterate, though writing down druidic knowledge was taboo. Most of their writing was done using the Greek alphabet.
    • There were several large Celtic migrations in the 4th and 3rd centuries BCE, that were apparently well-planned (Caesar relates one that was planned two years ahead of time). Many of these ended up in northern Italy; both Bologna and Milan were founded by migrating Gauls.
    • The Roman conception of Gaul's geography was terrible. Tacitus thought Ireland was just off the coast of Spain (!). Caesar had to rely completely on local knowledge to navigate the terrain. In contrast, a Gaul from Marseille (Pytheas) circumnavigated Europe in the 320s BCE (Mediterranean to Atlantic Coast to Britain to Baltic to Black Sea back to Mediterranean), taking accurate latitude readings the whole way.
    → 9:00 AM, Sep 21
  • Writing Through It

    Novel’s grown to 41,169 words.

    This week’s writing has been done not in spite of stress, or without it, but because of it.

    A lot of things I thought were settled suddenly popped back up again: my mother-in-law has been in and out of the hospital, the buyers for our house seem to be having second thoughts, and my day job turned into slamming my head into a brick wall over and over again, for eight hours.

    On top of that, the time for me to pack up the house and move is getting closer, so I’ve got that prep to deal with: going through years of accumulated memories in an empty house and sorting through which ones get to come with us and which ones get left behind.

    I thought it would prove too much, and that I’d have to stop writing again. I did take off an extra day this week, spent it watching movies instead of working on the book.

    But the next day I got back into it, and was surprised to find that writing the novel – at this point, at least – is the easiest way to take my mind off of all the stress. It’s hard to feel lonely when I’m writing dialog, or worry about my house selling when I’m trying to work through a character’s alibi.

    I’m not sure why it’s so different now than back in July. Perhaps it’s because I’ve loosened my grip on my outline, so I don’t have to think so far ahead?

    Whatever the cause, I’m grateful for it.

    → 9:00 AM, Sep 18
  • Ex-Heroes by Peter Clines

    Fantastic, pulpy action. I mean, it’s zombies vs superheroes, how could I not read this?

    The writing is sharp and moves along at a good clip, with a cinematic feel. Clines' use of flashbacks lets him bounce back and forth across the zombie apocalypse divide, deepening the characters and the world without slowing the action.

    Three things about writing I learned from this one:

    • Even in an ensemble book, focus on no more than half a dozen characters. I couldn't tell the non-superheroes apart in this one, and gave up trying to keep track of them all. The heroes were all well-fleshed out, but the regular humans were extras, and who watches a movie for the extras?
    • Using flashbacks in short, quick bursts can let you jump in to the interesting part of the story immediately, building and keeping momentum behind the main storyline. Clines could have used the first third of the book to work through each heroes' timeline before the zombie apocalypse happened, but it would have resulted in a much slower book.
    • Don't be afraid of writing what you want to write. I'm sure there are plenty of people that would look down on the zombies + superheroes concept, but I'm glad Clines ignored all of them and wrote something this fun and entertaining.
    → 9:00 AM, Sep 16
  • A Dirty Job by Christopher Moore

    An amazing achievement. Moore’s novel deals head-on with the tragedy and emotional wreckage of losing someone you love, but doesn’t pull its comedic punches either. You end up with a book that’s perfectly willing to poke fun of the lead character one minute, then show the empathy resulting from his experience of tragedy the next.

    Oh, and did I mention Moore does it while keeping the writing so smooth its frictionless, juggling multiple points of view, and occasionally just stopping the action to give background on the psychology of the main character?

    Forget amazing. It’s intimidating.

    Three things I gleaned from this one:

    • You can get away with dropping a lot of background info on the reader if it's: a) humorous and entertaining, b) about one of the main characters, c) dropped in after the reader's already emotionally invested in that character
    • Placing a tragedy at the heart of a comedy gives it an emotional weight that strengthens both
    • You can setup multiple POV later in a novel by swapping out from the main character for short bursts in the beginning, then gradually lengthening the time away from the main POV character as you go. By the time you get to the longer passages later in the book, your readers won't have any problems switching and keeping track of them all.
    → 9:00 AM, Sep 14
  • The Only Thing Blocking Me is My Fear of Being Blocked

    Novel’s reached 37,510 words.

    My semi-pantsing of the thing is still working. The characters are starting to do and say things on their own now, which I’m taking as a good sign. It means I can relax my grip a little more, give them leeway to go through the story in their own way.

    I still get a sense of physical terror when I sit down at the keyboard, though. It’s been getting stronger every day the past week, as if each day’s success means I’m that much more likely to fail the next day. I know it’s not true, that the words will come if I just sit down and push them out.

    But fear isn’t rational. Sure, I’m not as worried anymore about making the first draft as perfect as it can be. Now I’m just worried about being able to write each day’s part of the draft at all.

    Only way I’ve found so far to defeat the anxiety is, of course, to write. Writing the day’s words pushes the fear back a little, proves once again that I can do this, that I can create something on the page.

    → 9:00 AM, Sep 11
  • Ninety Percent of Everything by Rose George

    Fascinating. Shines light on an invisible but vital industry. The author got to travel on a container ship from the UK to Singapore, and she uses each stage of the journey to dive into the history and current existence of merchant sailors, from their food to how they deal with pirates to the convoluted shell companies that own and run the ships.

    Extremely well-written, and made my next visit to the Maritime Museum much more interesting, because I understood more of the context in which those ships were operating.

    Three of the very many things I learned:

    • Merchant sailors are often cheated out of pay by their bosses. In 2010 alone, the International Transport Workers Federation managed to recover $30 million in back pay that was owed to seafarers.
    • The Suez Canal is only wide enough for one-way traffic, so they have to stagger the ships going through in convoys each way
    • Merchant sailors captured by pirates in the Indian Ocean are held for 250 days (!) on average
    → 9:00 AM, Sep 9
  • Heart of Darkness by Joseph Conrad

    Realized recently that I’ve never read many of the classic works of literature: no Dickens, no Hemingway, no Austen. So I picked up a dozen or so and I’m going to work my way through them.

    Heart of Darkness is one of those books I’ve heard about for years, especially about its influence on other books and movies (notably Apocalypse Now).

    It’s an odd book, short and yet seemingly told with one long breath, filled with racist slurs but treating the plight of africans under colonial rule with sympathy, overflowing with details one minute and skipping ahead days the next.

    A few things about writing I learned from it:

    • Dropping the use of chapters, and keeping the narrative flow constant, means there's no pauses for the reader to use as an excuse to put the book down.
    • A story that reads well aloud can be forgiven a lot. There's large points where Conrad tells instead of showing, or skips over details, or repeats words and phrases, but it never bothered me enough that I stopped reading. The language drew me in; it sounded like the narrator was there whispering in my ear, and how could I be so rude as to stop listening?
    • First-person narration is still very powerful, combining direct access to a character's thoughts with the characterization and reading speed you get from dialog.
    → 9:04 AM, Sep 7
  • Maybe I'm a Pantser

    Novel’s at 32,277 words.

    Most days I’ve managed to write more than my 250 word goal, hitting somewhere north of 500 words before stopping for the day. Those words are flowing more easily now, the scene building itself out as I keep asking myself “what the characters would do?” without regard for the rest of the plot I’ve outlined.

    I even found a way to make my inconsistencies consistent within the scope of the story, which was not only a pleasant surprise, but has helped me loosen the grip of my inner editor and just set words down on the page.

    We’ll see how long it lasts, but for now I’m going to ride the wave this technique is giving me.

    → 9:00 AM, Sep 4
  • On Writing by Stephen King

    Revelatory.

    I first read this ten years ago, when I was first trying to take my writing seriously. It was inspirational then, and inspirational now, though I’ve discovered different lessons in it this time.

    From the autobiographical section, I got a strong sense of the struggle King went through to become the successful writer he is. There were multiple points where he could have stopped, where people wanted him to stop, but he didn’t. Success in writing wasn’t something he was born into, it was built out of hard work over decades that finally paid off and lifted his family out of poverty.

    From the section on the writing craft itself, I’ve pulled three new techniques to try:

    • Write the story first, and do the research later. The desire to get things right in the first draft is something I struggle with. King emphasizes getting the story out, and then doing the research needed to make it feel true.
    • Shoot for a second draft that is 10% shorter than the first. King insists this will push you to not only eliminate pesky adverbs, but also take out anything that is not story.
    • Rely on your characters and the situation they're in to tell you the story, not your outline. I've been using this last technique to push my current novel forward. Instead of thinking through each action to its consequences for the outline in my head, I'm just writing out what the characters do and say, letting it evolve on its own. It's helped me overcome the stress and blockage I had two weeks ago, and made writing much more enjoyable.
    → 9:30 AM, Sep 2
  • The Fuller Memorandum by Charles Stross

    One of those books I tried several times to read, failed to get into, and finally just plowed through.

    I’m glad I did. Stross has created a fantastic updating of the Lovecraftian mythos, blending it with computer science, government bureaucracy, spy thrillers, and comedy (yes, all four).

    The result doesn’t have the creepiness or the horror of the source material anymore, but is much more entertaining.

    (Incidentally, this is the third novel in the series. Yes, I started with the third one. No, I didn’t feel lost, but I did feel silly for not starting at the beginning.)

    Three things I learned about writing:

    • You can still get tension from a narrative told as a memoir. When your characters can go insane or become disembodied spirits, terrible things can happen to them but still leave them able to narrate.
    • Writing what you know can give you interesting twists on old material. Stross was a programmer for a while, and that kind of thinking is what makes his take on Lovecraft's old gods feel new.
    • Even in a first-person story, you can still show non-POV character scenes by cheating a little, and having the narrator imagine how they would have gone.
    → 8:00 AM, Aug 31
  • Back to Work

    Novel’s at 29,068 words: I’m back to working on it, and it feels great.

    The week off really helped me relax, as did spending time with my friends, getting out of the house and forgetting about the stress of moving for a while. I was only able to write a few hundred words on Saturday, but it felt like a victory.

    I’ve kept up a moderate pace since then, carving out enough time to write at least 250 words each day. I’m keeping the word goal low for now, letting myself go over it but also giving myself permission to stop when I hit 250. It’s a small number, but it’s more than zero, and a target I can hit.

    → 9:00 AM, Aug 28
  • Strategy: A History by Lawrence Freedman

    A rambling, overly-long book. Spends so much time digressing from his core topic – dipping into cognitive theory, the history of Standard Oil, and Greek mythology, among others – that he doesn’t find time (in 700+ pages!) to tie anything together.

    The final section is the biggest offender, becoming just a parade of names and quotes with no background, no context, and no focus.

    The one point he hammers on constantly is that any attempt to resolve conflicts by playing up the common interests of the parties involved is an “anti-strategy,” as he labels it. This quirky obsession puts him in some odd positions, like when he spends some time talking about the amazing Jane Addams, only to disparage her thinking on conflict by slapping the “anti-strategic” label on it. Many of the women he discusses end up dismissed in a similar fashion, making his attempts to undermine their thinking seem motivated by something other than rational thought.

    Even though I felt like putting it down multiple times, I did learn a few things:

    • Chimps not only compete politically, they use coalition building within the group, and engage in raids and genocidal warfare outside the group.
    • Clausewitz is more famous today, but the most popular writer on military strategy in the 19th century was Jomini.
    • Martin Luther King wasn't originally committed to non-violence. Only once some of Gandhi's followers joined his organization -- and after Rosa Parks' successful boycott of buses -- did he commit to nonviolence as a strategy
    → 9:00 AM, Aug 26
  • How to Fix Kingsman: The Secret Service

    Kingsman: The Secret Service is an uneven movie. It’s trying to both subvert and exploit spy movie clichés, and it doesn’t always work.

    The easiest way to fix it is if we just swap Roxy (the female Lancelot) and Eggsy’s roles, making Roxy the protagonist.

    The opening scene becomes Galahad giving the medal to his comrade’s daughter, not his son. The daughter grows up watching men abuse her mother and feeling powerless to stop it. Galahad plucks her out of poverty and brings her in to train for the Kingsmen.

    We make one more change, and make her the first woman they’ve ever had compete for a spot. Now she’s got two things to prove: that both women and lower-class people can make it into this elite service.

    Eggsy can be the supporting character, one of the other competitors that’s also lower-class. He cracks self-deprecating jokes about it being positive discrimination, that none of the lower-classes ever make it, etc. Roxy can give him confidence, teach him to believe in himself, and help him reach the #2 spot. When her mentor (Galahad) gets killed, and everything goes “tits up”, he’s the one she calls, even though he failed the dog test (Roxy still passes that; there’s a great character scene to be had there).

    By reversing the two characters, we move the movie away from the clichés that it tries and fails to subvert, and into “I’ve not seen this before” territory. Every emotional beat gets stronger, every fight becomes more interesting.

    → 8:07 AM, Aug 24
  • Time to Breathe

    I haven’t written anything for the novel in a week.

    More importantly, I haven’t let myself work on the novel in a week. I’ve been following Vivien Reis' advice, giving myself time to step away from writing and focus on what’s happening right now with my family.

    It’s turned out to be exactly what I needed. I’ve been able to focus better at work, I’ve been more relaxed about all the house showings and paperwork and myriad other little things I’ve had to deal with as we prepare to up sticks and move.

    I still feel guilty, though. Like I’m shirking my homework, which is fine for a little while, but eventually you sit down for the final exam and you haven’t a clue what’s going on.

    So I’m going to try writing again this weekend. Not much, just an hour or two at most, and with no word count in mind.

    Perhaps this way I can use the novel to keep me busy, to keep my mind off things, on days when I’m not at work. And assuage some of the guilt I’m feeling.

    → 8:00 AM, Aug 21
  • 8 Brief Comic Reviews

    Ms Marvel (Wilson, Alphona): Well written. Not written for me.

    Captain Marvel (DeConnick, Soy): Not as well written. Also not for me.

    Superior Spider-Man (Slott, Stegman): Amazing concept and writing. Art confusing and slightly cliche.

    She-Hulk (Soule, Pulido): Its cancellation was a tragic loss. Easily my favorite superhero comic.

    Five Ghosts (Barbiere, Mooneyham): So well-done, it’s use of women as just damsels in distress sticks out like a splotch of mud on an otherwise perfect painting.

    Saga (Vaughn, Staples): Perfect.

    Wicked + Divine (Gillen, McKelvie): Awesome concept. Disappointing that they take it to such a mundane place. Emotional heart of the story is strong, though.

    Superman: Red Son (Millar, Johnson): A very 50s take on an alternate Superman. Fascinating, especially the Epilogue.

    → 8:03 AM, Aug 19
  • Making Peace with Doctor Who Season 8

    There’s a moment in the first episode of Season 8 where The Doctor turns to Clara and says: “You can’t see me. You look at me, but you can’t see me.”

    Re-watching the episode recently, along with the rest of the eighth season, I felt that line was delivered from Peter Capaldi to me, to the audience, a plea for us to give him a chance, to let go of anything we thought we knew about The Doctor and just see him, see his version of The Doctor, and judge him based solely on that.

    I’m glad I gave him that chance, and watched Season 8 all the way through, because Capaldi’s Doctor is in many ways amazing, and very fun to watch.

    He’s got the grumpiness I liked from the First Doctor, the alien perspective of the Fourth, and the arrogance of the Third. Those happen to be some of my favorite Doctors, and his blend of their characteristics, combined with his own no-nonsense take, is fantastic.

    Capaldi’s no-frills, no apologies, no sentimental nonsense version of The Doctor is a refreshing change after Smith and Tennant. Gone are the dewy pauses and the hand-wringing. Instead, we get a Doctor that doesn’t waste time over the lives he can’t save, not when he can spend that time saving others.

    The perfect expression of all this is in the Mummy on the Orient Express episode. The Doctor doesn’t hesitate to use the mummy’s victims to gather all the information he can, asking them question after question even as they’re dying, with no apology for not being able to save them and no comfort offered – save that their answers can help the others escape the same fate. He’s splendidly hard-nosed, which makes his last-minute gamble in directing the mummy away from its next victim and onto himself all the more powerful: you know this is a Doctor that would not put himself in danger lightly.

    Granted, in order to enjoy Capaldi’s performance, I had to drop a lot of habits I’ve built up watching the new seasons of Doctor Who. I had to let go of any need for continuity, taking each episode as it came and forgetting anything that had gone before. I also had to drop my need for plausibility in plot and circumstance; most (ok, all) of the episodes contained elements that stretched beyond the merely fantastic and into the completely impossible or nonsensical.

    In this, it helped that I’d just come off watching a lot of Classic Doctor Who episodes. The same approach let me enjoy them: don’t worry about continuity, don’t worry about the special effects, don’t worry about the setup making any sort of sense. Just watch The Doctor and his Companion having adventures, enjoy the dialogue, and let your imagination fill in the rest.

    → 8:00 AM, Aug 17
  • Treading Water

    Novel stands at 26,750 words.

    Haven’t posted here in a while because my life is being turned upside-down.

    My wife’s currently in Arkansas, tending her mother, who was admitted to the hospital a few weeks ago with a serious heart-and-lung condition. My wife flew out just three days after she heard, and has been there ever since.

    Her mom has been discharged, and is recovering, but will need near-constant care for the next year or so. My wife’s currently providing that care, and intends to keep providing it. That means we’re looking at moving, at leaving the house and city and friends we’ve come to love here in California, and going back to Arkansas.

    So my past few weeks have been a blur of getting my wife to Arkansas, supporting her through the early days of her mom’s discharge, and now putting our house on the market and preparing to move.

    Needless to say, I didn’t hit my target word count for NaNoWriMo.

    I’m finding it hard to write in general, not just finding the time but finding the mental space to build up the novel in my head and then set it down on paper. It’s like I have room in my head for my job and my wife and my move, and nothing else.

    If I manage to squeak out just 150 words in a day, I have to call it a victory, because many days I don’t manage any.

    But I haven’t given up, and I won’t stop writing during this new phase of my life. I’ll grind out what I can for now, and look to pick up the pace once we settle in to our new digs.

    → 8:00 AM, Aug 14
  • Feeling My Way Forward

    Novel’s currently at 7,787 words.

    I’ve only written the first couple of scenes, and I’m already at a point where I’m a little undecided about which way to go.

    I have the words ready to go to start toward the next scene, but I’m not sure what to do once I get there.

    So do I pause here and outline out what happens next? Wait to write more till I know what’s going to happen? Or just let the words flow, and find out what happens as I write it?

    The latter instinct terrifies me. The former path makes me worry I’ll spend too much time plotting, and not enough time writing.

    I guess I can always go forward now, and fix any mistakes later. It just feels like a wrong turn this early could force a lot of extra rewriting later.

    → 8:02 AM, Jul 17
  • Slowed, Not Blocked

    Not much progress this week: only at 4,180 words.

    I’d like to say that I didn’t get to write much this week, as if writing time were something that were doled out to me by a woman with a hairnet and an ice-cream scoop.

    But that’s not the case. The truth is I didn’t take as much time to write this week as I needed to. I chose other things – morning exercise, staying a little longer at work, going out with my family – and that’s ok, but I need to remember that it’s a choice.

    That means I’m on the hook for not getting as far as I should have this week. It also means it’s in my control to change that, to make different choices and get more writing done.

    So my writing slowed this week, but I haven’t stopped, and I’m not blocked altogether, thank goodness. It’s just a reminder that I have to carve out the time I know I need to make the progress I want.

    → 8:00 AM, Jul 10
  • It's Begun!

    Started writing the new novel July 1st, as scheduled. Already 1,600 words in.

    It was an incredible relief to write those first 250 words. I had such a hard time outlining the book that I was afraid I wouldn’t be able to put anything down, that the magic would fail me this time.

    But it hasn’t yet. I’m already adding things to the world, color and details I didn’t think of before, just by writing about it.

    I forgot how much fun this can be, making things up and seeing where they lead. It’s addictive.

    I don’t want it to end.

    → 8:00 AM, Jul 3
← Newer Posts Page 24 of 33 Older Posts →
  • RSS
  • JSON Feed