TJ Mott’s Writer – Version 0.1.0 Release

Hello everyone,

Today I created the first public release of my own word processor, writing/publishing tool. This is a beta release, version 0.1.0, but I am currently able to use it for my writing tasks. This is a free, open-source application for Windows, and you can find out more here or download the installer at the project’s GitHub page. Here’s a direct link for the version 0.1.0 installer.

The actual word processing side is fairly basic since my needs are pretty simple. It’s based on Microsoft’s FlowDocument model, and I hooked up a few basic editing/formatting controls in the Ribbon at the top (half of them may not work since I don’t really use them…FYI). Nothing special to it; I mostly followed the online WPF RichTextBox samples and kept it pretty basic. Word has a billion times more features. Anyway, it does what I need, and it has the capability to export to a Word document which is what you’d submit when publishing. Here’s a screenshot from the opening scene of Rescue at Waverly:

But for me, the real power in this application is the way it organizes information, allowing you to easily move sections/chapters around without risk of copy-paste errors, as well as the Markdown document system used for creating notes and reference material. Here’s the main view, with some components partially expanded:

Some of the notes I’ve started to compile. Most of my notes are still kept in a personal Redmine website, but my plan is to host all these features within this application itself:

There’s a ticket tracker and file browser, but mine are currently empty so I have no meaningful screenshots to show. However, I’m using SQLite’s full-text search to search everything: titles, contents, notes, tickets, etc. Here’s a slightly-redacted screenshot of that:

And that’s really all I have to show for now. It’s free for download and use, so if you’re interested, go ahead and install it. If you find any issues, let me know.

Thanks,

TJ Mott

What Inspired The Thaddeus Marcell Chronicles?

Since releasing “Rescue at Waverly,” I’ve been submitting links to my work all over the Internet, to various promotional sites to get my name out there. And one of the things I constantly get asked by the online submission forms is some variation of “What inspired you to write?” I thought it might be fun to go into further detail and examine the history of my project, “The Thaddeus Marcell Chronicles.” And if you’ve ever considered writing your own fiction, maybe if you see how my process went, it’ll give you some ideas.

It All Began with Star Wars

When I was a kid, most of the fiction I read was from the Star Wars Expanded Universe, which was a collection of novels that were first released in the early 1990’s. I loved reading, and starting around the third grade, I spent much of my time in school ignoring my teachers and quietly reading Star Wars novels instead. At some point, for whatever reason, I decided I wanted to write science fiction, too. Why? I don’t know, it’s been so long I don’t remember. Maybe it’s the same nature that made me want to get into programming after spending so much time with computers as a kid, because I was exposed to Microsoft QBasic at around this same time. But that desire to write never really went away. As I grew older, it was fueled by my interests in math and physics, and it persisted even when I found myself working a full-time career in IT and software development.

Space Pirates

The first thing I remember trying to write was called “Space Pirates.” This was around fifth grade, maybe even a little earlier. It didn’t have much of a plot, but as I recall, it followed a crew of three pirates who worked around Earth space and somehow got involved in a ground war on Venus. I think I had 20 or 30 pages written, and then I must have gotten bored and moved on. (My manuscript might still be sitting on a rotten 3.5-inch floppy disk somewhere in an old abandoned Missouri farmhouse. I wouldn’t go looking for it though, floppies had lifespans measured in milliseconds and it’s now been twenty years or so.)

Killer Toy Robots

Around the same time, plus or minus a year, I remember working on a story involving a toy robot. It was given to some kid as a Christmas gift. However, it was accidentally programmed at the factory to be a military assassin, and once turned on, it escapes from its family and starts a robot revolution. I was young and impressionable, and I’m pretty sure I had just read “Tales of the Bounty Hunters” and regurgitated IG-88’s story in my own terms. Minus the parts where he uploaded a copy of his droid brain into the second Death Star’s main computer, of course.

Flight School

In sixth grade, I had my first “finished” work. We were supposed to write a short story for a school writing project. I wrote about a cadet in flight school who passed a flight test by using a highly-classified starfighter maneuver that he wasn’t supposed to know about, and so he got in a lot of trouble for it. But he was friends with the guy who’d developed it, who was a high-ranking wing commander or something. Most of the story was about the flight itself. (If I had to guess, I must have been reading the “X-Wing” series at the time.) I remember my teacher saying that it was very unique coming from someone my age. Sadly, I don’t have a copy of this anywhere, because I think it would be funny to re-read something I’d written at the end of elementary school.

The Triumvirate of Alpha Centauri

This story started in seventh or eighth grade, I believe, around 2001. I was in a typing class in school, but I somehow already knew how to type well. (Hey, I was born in the late 1980’s with a keyboard in one hand and an MS-DOS command reference in the other. I learned to type at such a young age that I don’t even remember it.) So instead of following my typing lessons, I mostly goofed off. At the time, the school had a computer lab full of Am5x86’s loaded with Windows 95 and something like 8 MB of RAM. And you didn’t dare go out to the Internet on them. Have you ever seen a 486-class PC try to load web pages with animated Flash advertisements and ten pop-ups per second? It wasn’t pretty. So when I wasn’t modifying minesweeper.ini files to give myself an impossible high score on every computer in the lab, I mostly goofed off by writing, because Word 95 ran fairly well once it actually finished loading.

During this class, I ended up writing a partial story about the three co-equal Presidents (a triumvirate) of Alpha Centauri, which was a former colony of nearby Earth. The main character was one of the Presidents, and he was also a General in charge of the military. Everything was perfect in Alpha Centauri and so the characters spent their free time building giant lasers and blowing up asteroids, or moving moons into different orbits with huge rocket motors just for fun, and things like that. In hindsight, it was pretty silly stuff. I didn’t have any goals, and the story was nothing more than a disjointed string of juvenile sci fi dreams written just to kill some class time.

While writing it, I never actually got past that string of silly and unconnected stories, but I had brainstormed how it should continue. According to my evil plans, partway through the story, a giant fleet emerges from hyperspace near Alpha Centauri. This obviously alarms the three Presidents, because hyperspace hadn’t been discovered yet, and this fleet is far larger than their own. Then, to their surprise, the fleet’s commander is an older, rougher version of the General, even though the General had been present for the entire story so far. They find out that he was abducted from Alpha Centauri 10 years ago, and the one who’d been President/General since then was actually some kind of secret robot clone who didn’t even know he was a robot. (A continuation of my robot theme, but he was never a Christmas gift who launched a robot revolution.)

Then the story was going to switch to a flashback. After his abduction, the original non-robot General discovered there was a huge human civilization out there, with hyperdrive and all kinds of advanced technology that Earth and Alpha Centauri never knew existed. He became a pirate and a mercenary, scouring the galaxy to find his way home. Along the way, he stockpiled weapons and technology to bring back so he could defend his home from the rest of the galaxy, and he became the leader of very powerful independent fleet. This returning General (he was named Thomas back then) was grizzled and battle-hardened, covered in scars and even with a cybernetic hand.

After the flashback ended, it would return to the present. Earth and Alpha Centauri were near the edges of a rapidly-expanding empire which they certainly couldn’t fight, not without help. Then there would be a massive interstellar war, and all the ships and weapons and technology that the General brought home would save the day.

Writing a Novel – For Real This Time!

My ideas got shelved for a long time, but I never forgot them. I still had the itch to write, but I never felt inspired enough to make a serious effort on anything. Finally, I had a dream which inspired my first published novel. It was short, just a tiny snippet I remembered after everything else faded, but it ultimately became a scene in “Rescue at Waverly” and was the seed that sort of defined the whole work for me. In this dream, a man is aboard a small transport, trying to reassure a woman he’d just rescued from an enemy starship. She was someone he once knew and loved, but somehow they’d been separated by life’s circumstances and he hadn’t seen her in many years.

For some reason this really struck me. But it wasn’t a story. It was just a snapshot, an image without any context. So I provided the context by dusting off some of my old backstory about the General from Alpha Centauri. I threw away the juvenile silliness about moon-sized rocket engines and blowing up asteroids for birthday celebrations. I also got rid of details that seemed cool when I was in junior high school, but really didn’t make sense to me anymore. Why was he replaced with a robot, and by whom? And how did nobody ever discover that a President was a robot? I couldn’t come up with any reasonable explanations so I changed him from a President and General from Alpha Centauri into a complete nobody from Earth, with no robot clone to replace him after he disappeared.

Even then, as some details began to take form, I wasn’t sure how to begin. Writing a novel with the intent to publish it is a big undertaking, and I never had any formal education in anything like this. I have a somewhat intuitive sense for writing and grammar just because of the sheer amount of reading I’ve done in life, but I never paid much attention during my English or writing classes in school. So during my 20’s, I probably wrote 20 different versions of the first chapter. Each time I finished it, I hated it, so I’d throw it away and start a new version from scratch, with different ideas and characters and starting points in mind. During one of these, I decided to begin the storyline well into his pirate/mercenary career, rather than starting at home before he was abducted. And that actually made things a lot easier.

Although I was frustrated by my lack of progress, looking back now, I realize how important it actually was. Writing takes practice. You can’t start cold and inexperienced and put out a well-written work on your first try. All of those thrown-away chapters were bad for various reasons, but with each iteration, it got better. My skills as a writer improved, the work slowly became more plausible and less goofy, and it also became more focused. After years and years of these false starts, I finally had something workable by around 2015.

During 2016, I decided to take it seriously. I began putting some serious time and effort into it, and had a pretty rough early version of “Rescue at Waverly” written by the beginning of 2017, although later that year I literally deleted the entire middle section and re-wrote it all from scratch because it was terrible. But 2017 was a very big year for me. I finished the first novel, wrote about a third of its first sequel, and plotted my ideas out into a six-book series. I finally self-published that first book at the start of 2018, and although the details have changed dramatically, it still has minor traces of my old fifth-through-eighth-grade science fiction fantasies in it, if you know exactly what to look for.

Developing the Sequels

While working on “Rescue at Waverly”, I had another inspiration from nowhere which lead to “Rebellion at Ailon.” It was just a daydream, really, I don’t even recall when or where or why. And surprisingly, the daydream didn’t even make it into the final book! I wrote a few variations on it but they just didn’t work, and I eventually decided that it was a bad idea and abandoned it. But the story I developed around it seemed to work, and so I actually finished writing that story without the very seed that had spawned it! I guess I’ll say this much: it centered around Thad, who’s been operating under an alias, revealing his true identity to a certain Ailonian. I can’t say any more because it would reveal some spoilers even though the event never happened. But it’s a quirky thing that surprised me when it happened. The entire novel was written to develop and support a single scene that didn’t make it into the novel!

As I worked on “Rebellion at Ailon”, I continued to develop the rest of the series. I have pages and pages of notes and character biographies and even one large hand-drawn map of space, and as I added detail to this mental model of my science fiction universe, the storyline began to take on a life of its own. I’ve changed or even removed certain plots or storylines, ones I’d planned long ago, because they’re no longer consistent with the direction things have gone. It’s like I created a living, breathing thing, and now I’ve lost control of it. And yet things are advancing in a manner that, to me, seems quite logical and natural given the background of history, politics, and technology that I’ve already developed.

The important thing is that the series still ends exactly where I wanted it to. It still hits many of the important waypoints I created in order to get from start to end, but it otherwise deviates greatly from the course I’d originally plotted. And I think it’ll be a far better work because of that, because some of my earlier ideas were terrible. Some of them just followed basic science fiction tropes, abandoning the strong character development and realistic environment I strived for in “Rescue at Waverly”. Although they still got from Point A to Point B, sometimes they really became campy, relying on stupid tech gimmicks and forgetting that I’m trying to develop characters who will have changed a lot by the time the series concludes.

Final Thoughts

So this was kind of long and meandering, but I hope it was interesting. One important take-away is that the ideas I’m publishing now didn’t just happen in recent history, and many of the ideas weren’t even consciously developed. No, it’s all been simmering in the back of my mind for a very long time, around 20 years! I can’t speak for other writers, but for me it simply took that long to get all my ideas in order, and for me to mature enough to do something with them. Is that normal for writers? I don’t know. Maybe if I’d paid more attention in class instead of reading Star Wars novels, I’d know more. Then again, if I’d paid attention in class instead of reading Star Wars novels, maybe I never would have started this project.

 

Nerd Alert – My Custom Software for Writing

Boring Update About My Second Novel

First off, I assure you all that Book 2 of the Thaddeus Marcell chronicles is mostly written now. I’m nearly done with my first draft of “Rebellion at Ailon” and then comes the editing process. I feel much more experienced and confident this time around, and so I think that this first draft will be pretty close to the final published version, apart from some polishing, fixing up consistency issues, replacing some placeholder names with real character names, spending some serious time with a thesaurus, and so on. In any case, I’m feeling very comfortable with my self-imposed publishing deadline of January 2019.

But none of that is really the topic today. Instead, I want to talk about far more interesting things: word processors.

Now, if you’re done laughing and you’re still here, cool. If you didn’t know, I’m a software engineer at my day job. Writing is just a side hobby that I enjoy and sometimes it draws in a few extra bucks. But who says the two can’t be combined? (Yes, even my side projects have side projects…)

Are you nuts? Why In The World Would You Write Your Own Word Processor?!?!

When I started writing the Thaddeus Marcell Chronicles (probably around 2016-ish is when I got serious about the project, though it’s been on my radar since junior high school and I’ve probably had half a dozen aborted attempts since then) I switched back and forth between Microsoft Word and LibreOffice, depending on whether I was on a Windows or a Linux PC. Towards the end of 2017, I ran into some major annoyances while editing Rescue at Waverly. My biggest problem was how much I needed to move things around. Scenes and chapters got cut and pasted all over the place while smoothing out the story flow. But the document was difficult to navigate. Word and LibreOffice outlined inconsistently and didn’t always get along, and I found myself doing document-wide searches on a few remembered phrases just to get me close to the section I was trying to find.

But I’m a software engineer, right? I don’t have to put up with this! I’m gonna go make my own word processor! With blackjack and hookers! My main goal was to improve document organization so I could easily navigate it and move things around. Overall, it’s really basic and tailored specifically to my use. Sometimes it’s buggy, and it’s definitely not at all fit for public consumption. It saves everything to an XML document and I still sometimes have to hand-edit the XML to do a few things because sometimes that’s faster than adding the feature to the application itself.

The Amazing WpfApp1.exe

It’s written in C#, using WPF (Windows Presentation Foundation) for the user interface and targeting .NET Framework 4.5.something-or-other. Unfortunately, using WPF means it will not run on Linux even with Mono or Wine, but oh well. C# is my best programming language and I had to compromise somewhere in the interest of developing something quickly. In this case I lost the ability to write on over half of my personal PC’s.

Here’s a couple screenshots of the main window. Yes, it’s titled “MainWindow” and yes that’s because I never bothered setting window titles myself. (Such details weren’t important for a tool I wrote for myself.)

List of series (a.k.a. my evil plans for the next decade of my life)

Showing the chapters and scenes within a book

Here’s a top-down overview of the involved data structures necessary to understand the application, as illustrated above:

  1. Universe: A Universe is a single XML file containing a collection of related stories.
  2. Series: This is what you’d expect. A series is a collection of related books, usually with a common theme, characters, and plotline. As you can see above, I have plans for three series in the Thaddeus Marcell universe.
  3. Book: This is also what you’d expect. Rescue at Waverly is a book. Rebellion at Ailon is a book. I have many such book ideas outlined above. Have fun speculating. 🙂
  4. Chapter: Okay, I need to quit starting definitions this way, but this is what you’d expect. Here, a chapter is a collection of Scenes. Chapters are somewhat arbitrary. I’m sure there are rules out there somewhere, but I don’t know the rules and I don’t play by the rules.
  5. Scene: A scene is a single narrative section. In my writing, a change of scene usually involves a change in point of view or narrator, or a skip in time. You can see some scenes listed under the chapters above. Scene names are only for me, they are never included in the published work so sometimes I get pretty goofy with them just so I can remember it.
  6. Trash: You don’t delete stuff, at least not intentionally. If I delete something, it only gets hidden and moved into the Trash. It takes a conscious effort to “Show Trash” and then delete stuff later. I just clicked on “Show Trash” for this screenshot, and I couldn’t tell you what half the deleted things were supposed to be. Many of them are empty scenes. I guess I need to empty the trash sometime.
  7. Showing the Trash. Okay, I admit I deleted the USPSA scene because my fellow IDPA Safety Officers would have my head about it.

How I Organize Things

I quickly learned how to abuse chapters. Now, when setting up an outline I create a “chapter” for each subplot, and fill it with scenes. Later, during the editing process, I move the scenes out and interleave them into the real chapters that end up in the published version, and the subplot chapters get trashed.

I also have the ability to color the scene names in the main window. You can get a glimpse of that in the trash screenshot above, where some entries have red text and others are black. This is arbitrary. I use it to flag sections I know are done, or mark ones that really need some more work, or to mark scenes for possible deletion.

Abusing chapters to organize subplots – with bonus not-quite-spoilers on Rebellion!

The Main Editor Window

Here’s a screenshot of the main editor that opens when I edit a scene. Each window only shows one scene at a time, but I can have several such windows open simultaneously when I need compare different scenes/chapters. I don’t think Word or LibreOffice really know how to do that.

Scene editor windows

My Dirty Little Secret

Okay, so I didn’t really write a word processor. Not like you’re probably thinking, if you aren’t a coder and you’ve somehow survived reading this far. Actually, most of the main editor window is just an out-of-the-box System.Windows.Controls.RichTextBox instance, which gave me just about everything I needed for a basic word processor without writing much code. Thanks, Microsoft! I simply dropped in a RichTextBox, hooked up some editing buttons (most of which I’ve never actually used or even tested, and I’m sure some of them will BSOD all PC’s within half a mile of me if I actually click on them), and a few extras like the bug-ridden-but-I-don’t-care zoom control and some basic document statistics.

Despite its importance, this really is the smallest part of the application. I spent at most an hour putting this editor window together, and the vast majority of that time was spent coding the search feature that I’ve only used maybe three times ever. Overall, this editor probably has 2% of the features of Word or LibreOffice, but it’s the 2% I care about so it works well for me.

To me, the real value is in the rest of the application, not in the editor itself. I spent most of my time elsewhere developing seemingly-trivial things like reordering scenes, renaming chapters, collecting statistics, and exporting portions to Word format using a template that’s close-ish to what I need to upload to the Kindle Direct Publishing website.

And context-menu handlers! So many context-menu handlers! Most of the application’s C# code (incorrectly) lives inside event handlers in MainWindow.xaml.cs. There are some 600-lines of context-menu and button handling here!

My Visual Studio solution

(Don’t critique my solution too harshly. This is an internal my-use-only tool I never intended to release. I didn’t quite follow things like “best practices” or MVC/MVVM/whatever the cool kids call it these days. It grew very organically and I’d be a bit embarrassed by it if I was releasing this as a product. It’s not even checked into source control! Yes my code is bad and I should feel bad.)

A Couple Other Interesting Tools

You’ve seen most of the application already. Most of what’s left is pretty boring, but I’m a bit proud of these two parts.

Statistics Dialog example, apparently for Chapter 7.

Here, I can see statistics on a selection. This can be for a single scene, a chapter, or an entire story. I realize this looks very boring and mundane at first, but Word/LibreOffice only gives you document-wide statistics. It wasn’t easy for me to figure out how long chapters or scenes were. Now, it’s trivial. It also works great with how I organize things while drafting. Since I (mis)use chapters to organize subplots during the initial writing phase, I can view statistics on the “Crew Mutiny” subplot and see how long it is. Then I can decide if I need to add to it, or trim it down because it’s taking up too much of the story.

Which leads to this bizarre and colorful thing that makes that even easier:

Redacted screenshot of the pacing dialog for Rebellion at Ailon

This window breaks up a selection and helps you compare lengths. There’s a thick black border around each chapter (in this case, each “chapter” is a subplot for Rebellion). Within that is a colorful box for each scene. And all the boxes are proportionally scaled, e.g. a box that is twice as big contains twice as many words. It’s far from perfect. The scaling means the text on smaller sections is cut off and can’t be seen. Oh well.

This is extremely useful for me to figure out pacing. For example, how far does the reader need to go until such-and-such event happens? Is it way too close to the beginning of the work even though in my mind it should be near the end? Or is a subplot involving minor characters growing too large and beginning to dominate the novel? (Not-quite-spoiler alert: Rebellion originally had an entire subplot following Commodore Wilcox’s Yellow Fleet that I decided to move into the third novel.)

This view isn’t quite as useful later on, but it’s been invaluable while outlining and writing out a first draft. Although it is a bit prettier on a finished work:

Not-redacted pacing dialog for Rescue at Waverly

So, there’s a sneak peak into the mind of a software engineer who can’t even do non-software side projects without ending up writing software anyway. Maybe someday I’ll clean this up and release it under an MIT or BSD license. But no promises.