Ron Toland
About Canada Writing Updates Recently Read Photos Also on Micro.blog
  • Tubes by Andrew Blum

    A nice, quick intro to the physical infrastructure of the internet. Doesn’t really go into how all those pieces work – there’s no discourse on the technology behind a router – but does build a mental image of the boxes, buildings, and people that keep the world connected.

    Three things I learned:

    • ARPAnet's first Internet Message Processing machine was installed at UCLA in 1969. The machines were manufactured on the East Coast, but only West Coast universities were open to the idea of the network at the time.
    • In 1998, The Netherlands passed two laws to pave the way for fiber everywhere. One law required landowners to give up right of way for holes to be dug, second law required any company digging a hole to lay fiber to also let other companies lay their own cable in the same hole and share the costs. The one-two punch made it cheaper and easier to lay fiber, and also blocked anyone getting a monopoly.
    • The busiest route in the world is between London and New York, with more internet traffic than any other line.
    → 6:00 AM, Jul 10
  • Scorecard: Second Week

    Two weeks in. Had a holiday in the middle of this one, so…how’d I do?

    • Edit one chapter a day: Mostly check. 5 days out of 7 isn't too bad.
    • Write a new short story each week: Done. First draft of "Wednesday" is complete and ready to submit to litreactor. Draft of second story is coming together.
    • Critique two stories each week: Check. This has become the easiest one to do.
    • Find a new agent to query each week: Nope again. I might need to drop this one, till the editing is done.
    • Polish and submit a new story each month: On track. Hope to get feedback on "Wednesday" soon, and then will revise and start submitting. Also got a rejection back for one of the stories I'd submitted, so I need to send it out again this week.
    → 7:55 AM, Jul 7
  • Introducing elm-present

    I’m in love with Elm. No, really.

    I don’t know if it’s just that I’ve been away from front-end development for a few years, but working in Elm has been a breath of fresh air.

    When my boss offered to let us give Tech Talks on any subject at the last company meetup, I jumped at the chance to talk about Elm.

    And, of course, if I was going to give a talk about Elm, I had to make my slides in Elm, didn’t I?

    So I wrote elm-present.

    It’s a (very) simple presentation app. Slides are json files that have a title, some text, a background image, and that’s it. Each slide points to the one before it, and the one after, for navigation.

    elm-present handles reading in the files, parsing the json, and displaying everything (in the right order).

    And the best part? You don’t need a server to run it. Just push everything up to Dropbox, open the present.html file in your browser, and voilà!

    You can see the talk I gave the meetup here, as a demo.

    → 6:00 AM, Jul 5
  • Ironskin by Tina Connolly

    Fantastically well-done. Weaves together magic, fairies, Great War trauma, romance, sisterly rivalry, and the treatment of special-needs children into one cracking good story.

    So very happy to discover there are sequels.

    Three things I learned about writing:

    • Dribble out your backstory. At the start, offer just enough to explain the choices that brought the character to that point. Introduce the rest later, as needed for the story.
    • You can get away with a romance between two characters that have little in common if you make their raw attraction clear and compelling.
    • Sometimes the greatest climaxes (or turns in the story) happen when the protagonist realizes something about themselves that they didn't know before.
    → 6:00 AM, Jul 3
  • Scorecard: First Week

    Last week I set some goals to keep me on track for a productive summer.

    So, how am I doing?

    • Edit one chapter a day: Check. I'm working through the novel backwards this time, to keep it fresh for my editing eyes.
    • Write a new short story each week: Not complete, but new story (working title: Wednesday) is halfway done, and I'll wrap it up this weekend.
    • Critique two stories each week: Check. By the time the new story's done, I should have enough points to post it to the litreactor workshop for feedback.
    • Find a new agent to query each week: Nope. Need to set aside some time next week to do this.
    • Polish and submit a new story each month: Check. I've currently got three short stories making the submission rounds, one of which I submitted for the first time this month.
    → 7:58 AM, Jun 30
  • Crooked by Austin Grossman

    Another strong portrayal of a villain from Grossman.

    Avoids the trap of completely rehabilitating Nixon. He’s sympathetic without being likable, and interesting to follow without the reader always cheering them on.

    Loses steam in the second half. There’s plot lines that go nowhere, scenes that could have been cut without changing anything, and the climax happens completely off-screen, with no buildup or release of tension.

    Still, I learned a few things about writing:

    • Delivering most of your plot via dialog -- so long as you're not data dumping -- can be a great way to keep the story moving.
    • The best villains think they're the hero.
    • Restricting your book to one POV can be too confining. Multiple POV can let you explore other aspects of your world, which you might need if your story takes place somewhere very different.
    → 6:00 AM, Jun 26
  • Going for the Goal

    My wife’s in Arkansas for the next few weeks, visiting her mother for her annual pay-off-the-guilt-from-moving-to-California visit.

    Normally, this is a time I tell myself I’m going to get a lot of writing done, hermit-in-the-woods style, but instead end up staring at the keyboard, trying to dig up inspiration.

    So this time, I’m setting goals. Daily, weekly, and monthly goals:

    • Final-pass edit one chapter in the first novel every day.
    • Write a draft of a new short story every week.
    • Critique two stories submitted to litreactor (the online writer's workshop) every week.
    • Find a new agent to query every week.
    • Polish and submit a new story to a new market every month.
    I've decided to go with submitting the first novel to agents. However, I've also joined Publisher's Marketplace, so I can be selective about which agents I query. Less of a shotgun approach, and more of a laser.

    I’m hoping the explicit, bite-sized goals will keep me focused. Who knows? They might become new habits.

    → 7:59 AM, Jun 23
  • Altered Carbon by Richard K Morgan

    A 1990s trenchcoats-and-mirrorshades action film published in the 21st century with 1950s gender roles. An odd, frustrating, throwback of a book.

    Three things it taught me about writing:

    • Be careful when porting an old genre to a new skin. Bringing along the social mores along with the other elements will make your book feel dated from the start.
    • Taking an otherwise-competent character and pushing them out of their element is a great way to both explore a new world and make it challenging for them.
    • In sci-fi, it's not enough that the names of things -- computers, cars, etc -- change. Our relationship with them needs to change, too, or it's just window dressing.
    → 6:00 AM, Jun 19
  • The Long Way to a Small, Angry Planet by Becky Chambers

    Basically perfect. It’s low-key, character-driven sci-fi, stuffed with cool ideas and diverse cultures. Completely scratched my Firefly itch, in a good way :)

    Three things it taught me about writing:

    • Can think of chapters as episodes of a TV series, with cuts between multiple points of view, similar beats, and cliffhanger endings.
    • Having the Shit Go Down at the end of the book rather than the beginning gives the reader time to know and care for the characters, making it more tense.
    • You can get away with an infinite amount of info-dumping if it's a knowledgeable character explaining things to a clueless character.
    → 6:00 AM, May 29
  • Best Book Forward?

    At the Writer’s Coffeehouse this weekend, another writer asked what they should do when they have four novels, all finished, each in a different genre, that they want to pitch to agents. Should they target each book’s query to a different agent? Should they mention they have other novels when querying one of them?

    The answer – which surprised me – was no to both.

    Don’t mention the other novels when first querying. Save that for later, if they want to talk more.

    And instead of sending out queries based on the book, pick the agents you’d like to represent you, and send them the book you think has the greatest commercial potential.

    Agents will want to represent everything you have. But by querying with the book that will likely sell the best, it’ll be easier for them to imagine selling your book to a publisher, which will increase your chances of convincing them to represent you.

    So now I’m confronted with the question: have I been editing the wrong book?

    A frustrating question to have, when I’m only one editing pass away from being totally done. And I’ve already written the synopsis. And the query letter. And have agents picked out.

    But maybe I’d be querying the wrong book? Of the three, I think my most recent one’s the strongest draft. The second one’s the best story, though, and my beta readers' favorite. The first one is, of course, the only one that’s actually done, in the sense of being a final draft.

    So which one do I query with?

    → 7:37 AM, May 19
  • Persona by Genevieve Valentine

    Disappointing.

    Starts out well, action pumping and character backstories fleshed out just enough to make you care, but not enough to stop the flow of the story.

    But the world around them never congeals for me, and the atmosphere of threat and double-cross the story needs can’t happen without it.

    Three things I learned about writing:

    • Switching perspective characters early on is a great opportunity to give more context to what's happening, since it's another angle on the world
    • In a modern setting, you really can cut descriptions down to the bone, to put the focus on dialog and action
    • Can do character backstory in a single chapter, covering years of someone's life, with breaks in-between
    → 6:00 AM, May 15
  • My Life as a White Trash Zombie by Diana Rowland

    Fantastic. Absolutely nails the smugness and insincerity of the South, along with the surprise of finding help in unexpected places. Protagonist is a perfect mix of insecurity and snark.

    Thank the gods it’s a series; can’t wait to read the next one.

    Three things I learned about writing:

    • Narrating a character's internal debate in long-form is fine, so long as it's in the right place: when the character is away from other people. Don't do it during dialog.
    • You don't need dialect to write Southern characters. Getting their facial expressions and hypocrisy right is enough.
    • Finding a real-life struggle that mirrors the fantasy one is a good way to ground it.
    → 6:00 AM, May 3
  • Magic for Beginners by Kelly Link

    Exasperating. With the exception of The Faery Handbag, none of the supposed stories in this collection actually contain a story at all. Some of them contain multiple stories, nested and incomplete, but most are just character and setting with a complete lack of anything happening. Ever. For page after page.

    Possibly the worst short story collection I’ve ever read.

    Three things it taught me about writing:

    • Story is supreme. Choose your words well, but make telling a good story your first priority.
    • Deliver on your promises to the reader. If you promise zombies, give them some damn zombies.
    • If your story can be summed up in a single sentence, maybe it doesn't need to be an entire novel.
    → 6:00 AM, May 1
  • The End is Near

    Novel edits are coming along faster than I thought. Might actually get them all done by the end of the month :)

    It’s weird to see the novel being reshaped under my editing scalpel. I can feel the book getting better, little by little: its characters more consistent, the world more fully realized, the pacing tighter.

    I’m remembering my plans for a follow-on book, and looking forward to writing it. Can editing a novel make you excited to write the sequel?

    → 8:07 AM, Apr 21
  • The Historian by Elizabeth Kostova

    Masterful. Incredibly well-crafted series of nested narratives that simultaneously did a deep dive into Dracula lore and sucked me into a single family’s generations-long saga. Just…wow. So well done.

    Three things I learned about writing:

    • You can use flashbacks to cover over narrative time that would otherwise be boring, like train (or plane) travel
    • To make an old myth feel fresh, look for the side that's not usually given a starring role (like the Turkish side of the Dracula legend), and explore it.
    • Journals and letters are a great way to both nest stories, and keep each story personal, told by the person that lived it
    → 6:00 AM, Apr 17
  • The Shambling Guide to New York City by Mur Lafferty

    It’s got an elderly kick-ass demon-assassin, zombies that can think, and a death goddess working at a small press. For that, I can forgive the continuity errors and the occasional odd plot point.

    Three things I learned about writing:

    • Watch out for the vague "some": "something made her", "something told her", "some sort of sense"...it gets overused too easily.
    • Where you start your story affects how sympathetic your protagonist seems. Start it when they're under stress, and readers automatically feel for them. Start it with them relaxed but complaining about how rough they've got it, and readers might not be as charmed.
    • Vivid, brief descriptions and snappy dialog can pull a reader through the roughest parts of your story.
    → 6:00 AM, Apr 12
  • Strangely Beautiful, Vol 1 by Leanna Renee Hieber

    “Gothic” in the overwrought, melodramatic sense.

    There’s some fantastic ideas in here, but it was tough one for me to finish.

    Three things I learned about writing:

    • People falling love notice everything about their beloved. If writing from the POV of a character falling in love, their thoughts will dwell on even insignificant details about their beloved.
    • Constant repetition of unexplained magical elements makes them annoying and boring. Conserve the magic, to make it interesting.
    • Use a deep dive into a character's thoughts during conversation sparingly. Dialog should speed the story along, interrupting the flow with paragraphs of thought undercuts momentum and frustrates readers.
    → 6:00 AM, Apr 10
  • Cranking Through

    Managed to whittle the list of editing passes from twelve to twenty and now back to thirteen.

    Which means I didn’t finish them by the end of March, like I wanted.

    I did finish the biggest of the changes, though: giving each chapter to either the male or the female protagonist, swapping evenly between the two, and filling out her narrative arc so that her storyline has equal weight.

    The changes I have left are much smaller: revising character appearances, adding touches to scene descriptions, and making sure everything is consistent.

    Still, I’m setting weekly goals, aiming for three editing passes done each week. At that rate, I’ll be finished with the edits in early May :/

    Much later than I’d like, but I tell myself that’s better than not doing them, or worse yet, continuing to tweak and edit for a year or more.

    → 7:11 AM, Apr 7
  • Seven More Languages in Seven Weeks: Julia

    Julia feels…rough.

    There are parts I absolutely love, like the strong typing, the baked-in matrix operations, and the support for multi-type dispatch.

    Then there’s the pieces that seem incomplete. Like the documentation, which is very extensive, but proved useless when trying to find out the proper way to build dictionaries in the latest version. Or the package system, which will install things right into a running repl (cool!) but does it without getting your permission for all its dependencies (boo).

    All in all, I’d like to build something more extensive in Julia. Preferably something ML-related, that I might normally build in Python.

    Day One

    • can install with brew
    • book written for 0.3, newest version is 0.5
    • has a repl built in :)
    • typeof for types
    • "" for strings, '' only for single-chars
    • // when you want to divide and leave it divided (no float, keep the fraction)
    • has symbols
    • arrays are typed, but can contain more than one type (will switch from char to any, for example)
    • commas are required for lists, arrays, etc (boo)
    • tuples: fixed sized bags of values, typed according to what they hold
    • arrays carry around their dimensionality (will be important for matrix-type ops later on)
    • has dictionaries as well
    • hmm: typeof({:foo => 5}) -> vector syntax is discontinued
    • Dicts have to be explicitly built now: Dict(:foo => 5) is the equivalent
    • XOR operator with $
    • bits to see the binary of a value
    • can assign to multiple variables at once with commas (like python)
    • trying to access an undefined key in a dict throws an error
    • in can check membership of arrays or iterators, but not dictionaries
    • but: can check for key and value in dict using in + pair of key, value: in(:a => 1, explicit)
    • book's syntax of using tuple for the search is incorrect
    • julia docs are really...not helpful :/
    • book's syntax for set construction is also wrong
    • nothing in the online docs to correct it
    • (of course, nothing in the online docs to correct my Dict construction syntax, either)
    • can construct Set with: Set([1, 2, 3])
    • arrays are typed (Any for multiple types)
    • array indexes start at 1, not 0 (!) [follows math here]
    • array slices include the ending index
    • can mutate index by assigning to existing index, but assigning to non-existing index doesn't append to the array, throws error
    • array notation is row, column
    • * will do matrix multiplication (means # of rows of first has to match # of columns of second)
    • regular element-wise multiplication needs .*
    • need a transpose? just add '
    • very much like linear algebra; baked-in
    • dictionaries are typed, will throw error if you try to add key/value to them that doesn't match the types it was created with
    • BUT: can merge a dict with a dict with different types, creates a new dict with Any to hold the differing types (keys or values)

    Day Two

    • if..elseif...end
    • if check has to be a boolean; won't coerce strings, non-boolean values to booleans (nice)
    • reference vars inside of strings with $ prefix: println("$a")
    • has user-defined types
    • can add type constraints to user-defined type fields
    • automatically gets constructor fn with the same name as the type and arguments, one per field
    • subtype only one level
    • abstract types are just ways to group other types
    • no more super(), use supertype() -> suggested by compiler error message, which is nice
    • functions return value of last expression
    • ... to get a collection of args
    • +(1, 2) -> yields 3, operators can be used as prefix functions
    • ... will expand collection into arguments for a function
    • will dispatch function calls based on the types of all the arguments
    • type on pg 208: int() doesn't exist, it's Int()
    • WARNING: Base.ASCIIString is deprecated, use String instead.
    • no need to extend protocols or objects, classes, etc to add new functions for dispatching on core types: can just define the new functions, wherever you like, julia will dispatch appropriately
    • avoids problem with clojure defmulti's, where you have to bring in the parent lib all the time
    • julia has erlang-like processes and message-passing to handle concurrency
    • WARNING: remotecall(id::Integer,f::Function,args...) is deprecated, use remotecall(f,id::Integer,args...) instead.
    • (remotecall arg order has changed)
    • randbool -> NOPE, try rand(Bool)
    • looks like there's some overhead in using processes for the first time; pflip_coins times are double the non-parallel version at first, then are reliably twice as fast
    • julia founders answered the interview questions as one voice, with no distinction between them
    • whole section in the julia manual for parallel computing

    Day Three

    • macros are based off of lisp's (!)
    • quote with :
    • names fn no longer exists (for the Expr type, just fine for the Module type)
    • use fieldnames instead
    • unquote -> $
    • invoke macro with @ followed by the args
    • Pkg.add() will fetch directly into a running repl
    • hmm...installs homebrew without checking if it's on your system already, or if you have it somewhere else
    • also doesn't *ask* if it's ok to install homebrew
    • not cool, julia, not cool
    • even then, not all dependencies installed at the time...still needed QuartzIO to display an image
    • view not defined
    • ImageView.view -> deprecated
    • imgshow does nothing
    • docs don't help
    • hmm...restarting repl seems to have fixed it...window is hidden behind others
    • img no longer has data attribute, is just the pixels now
    • rounding errors means pixels != pixels2
    • ifloor -> floor(Int64, val) now
    • works!
    → 6:00 AM, Apr 5
  • I Am Providence by Nick Mamatas

    Disturbing. Most of the characters are completely unlikable, especially the men: the worst are outright misogynists and racists, even the best act like superior assholes to everyone else.

    Mamatas doesn’t pull any punches in exposing the sexism and harassment that happens at fan conventions. It makes for tough reading, both because the female protagonist is constantly experiencing it and because the male narrator, whose death she’s investigating, is one of the superior assholes it’s hard to sympathize with.

    Worth reading, though, if nothing else than as a “Do I act like this?” check.

    Three things it taught me about writing:

    • - Can get away with very skimpy descriptions -- or none at all -- if you choose the proper perspective to tell the story from (in this case, a corpse's).
    • Protagonist's motivation for pursuing the mystery can be thin, if the reader's interest is piqued enough for them to want to see it solved
    • Characters will always rationalize their behavior. Even when dead.
    → 6:00 AM, Apr 3
  • Emperor of the Eight Islands by Lian Hearn

    Beautiful. Simple, tight prose, telling a deeply moving story.

    Can’t wait to read the next one.

    Three things I learned about writing:

    • What a society condemns is just as important to making it feel lived-in as what it praises.
    • Characters don't always have to be imposing their will on the world. They can show their inner character by the opportunities they take advantage of, as well.
    • In a world of bad choices and flawed people, heroes can be cruel and cowardly, and villains can show mercy.
    → 7:00 AM, Mar 29
  • On the Eyeball Floor and Other Stories by Tina Connolly

    A strong collection of stories. Connolly moves from near-future sci-fi to alternate world fantasy to present-day witches, populating each story with strong, unique characters.

    Will definitely be picking up her novel, Seriously Wicked, which takes place in the same world as one my favorite stories from this collection.

    Three things it taught me about writing:

    • The thinner the story, the shorter the work should be. Don't make the reader wade through lots of background or context just to get to the heart of events.
    • Writing in the present-day relieves you of a lot of world-building duties, lets you focus on creating great characters.
    • Even stories told via journal entries (or texts, or emails) can have a proper buildup to a climax.
    → 6:00 AM, Mar 27
  • Headstrong by Rachel Swaby

    A cornucopia of female scientists and engineers that got left out of the history I learned in school.

    It’s amazing how much these women accomplished considering how much was stacked against them. Time after time, in these biographies, I read how a brilliant scientist would be forced to work for free, because the university didn’t hire women. Often, they’d find employment in a German university, only to be kicked out once the Nazis took power and started firing Jewish scientists.

    That kind of treatment would make me rebellious, want to stop my work completely and find something less important to do.

    But these women persisted.

    Three of the many things I learned:

    • Grace Hopper was the first woman to graduate with a PhD in math from Yale. She invented the compiler, set the foundations for COBOL, and was considered so valuable to the Navy that she was called back from retirement to work another 19 years (!)
    • When Einstein needed tutoring in the higher math he needed to pursue his theory of General Relativity, he turned to Emmy Noether, the inventor of abstract algebra. Through the course of teaching Einstein, she invented the equations needed to set General Relativity on a solid mathematical footing.
    • Marie Tharp mapped 70% of the ocean floor, and discovered the Mid-Atlantic Ridge. She insisted that it was confirmation of continental drift for years (and was fired for it!) before theory became accepted.
    → 6:00 AM, Mar 20
  • White Horse by Alex Adams

    Frustrating and disappointing. Adams' writing is stuffed with metaphors, giving everything a dreamy quality that makes it hard to take anything seriously.

    Didn’t help that I just came off reading Octavia Butler’s Earthseed books, which do a much better job of narrating a woman’s journey through a post-apocalyptic world.

    Three things it taught me about writing:

    • If readers already know the narrator survives a scene in a flashback, don't try to wring tension out of their survival.
    • Readers need to know not only what your characters are doing, but why, if they're going to care.
    • When writing a character from a different country, do several editing passes to be certain their dialog, analogies, and expressions all match where they're supposed to be from.
    → 6:00 AM, Mar 13
  • Everyone Gets a Pass

    My original plan for editing the first novel turned out to be…rather naive.

    I thought it would be enough to fix the female protagonist’s plotline, then make a few description tweaks, and be done.

    Instead, I’m looking at making a dozen or more editing passes over the novel, each one picking out a thing to fix and make consistent through the book.

    I’ve had to change character appearances, character names, city names, backstory, world history…nearly every element needs to be tweaked one way or another to line up better with what I think the novel should be.

    So I’m keeping a running list of things to fix as I go, jotting them down as I find them. That way I can focus on just one editing task at a time, getting one thing right all the way through the book before going back to the beginning and starting on the next fix.

    My goal was to have these edits done by the end of the month (for a total of three months of editing), so I could spend the next three months editing my second novel. But we’re a third of the way through March, and, well…my list keeps growing.

    Still, I’ll push on. I’m finding I still like this novel, still like the characters. I want to do them justice, give them the best book I can. So I’ll keep working through the list, till the list is done.

    → 9:00 AM, Mar 10
← Newer Posts Page 17 of 33 Older Posts →
  • RSS
  • JSON Feed