Release of 1.0.0.8 of Story Editor
Wait? What happend to 1.0.0.7? Did you skip it?
Well, truth be told it was released but a minute later i decided to pullback that release as there was a major bug with moving around the chapters and scenes (which was there also in the previous versions) and since that part of the code was next on my list of rewriting I have actually decided to rewrite it.
The version in front of you should work and the bugs with the outline are fixed.
Which brings me to another point. Rememeber me talking about how cool it would be if you could just keep track of al kinds of stuf? Well, you can now!
Just take a look under "View" and then "Manage" and you can create your own content types. So far the solution is rather bare bone, but then again it is only two days of work.
Because I have no achieved the minimum feature set I'm going to do some creative writing, after all that is why I created the application and see what other minor bugs and annoyances I can encounter. So don't expect any updates soon.
By the way: If you still haven't tried Story Editor, then you can download the installer and if for some reason you don't like it just uninstall it.
PS: There is a minor bug in the update checker of 1.0.0.6, it says it was unable to check, but in reality it did... Whoops
Story Editor V1.0.0.5 (Export and printing)
A week has passed so I'm releasing another version of my favorite story writer solution: Story Editor.
So what is added in this version?
- Exporting to multiple file types is now supported. Think PDF, docx, html, rtf, txt and a few others.
- The application now has print and print preview capabilities.
Because the previous version implemented update detection you don't even download the installer, or if you want to use it, you can download it from here.
The next version will implement a complete new feature, which is the creation of contexts. Explaining what "contexts" are is a bit hard, but basically you can create your own database. For the non-technical skilled that means that you can create the context "character" in which you say that every character has a name, age, et cetera. This was actually the primary reason for me to create Story Editor as some story editors already allow this but only for a few contexts like character, item, location. But what if you are writing a space opera and you want to keep track of the various spaceships? You don’t want to store that in "character" or "location".
Well, that is where context comes in to play. Just create a context, design what the context should contain and start filling in.
I hope that I can implement the most basic feature in a single day (I have only 8 hours available for story editor) but otherwise this functionality will take a bit longer.
Anyway enjoy the latest release and if you encounter any problems, please let me know.
Story Editor v 1.0.0.4 (installer and auto-update)
It took longer than I had hoped, but the very first version of Story Editor, my favorite creative story writing software, now has an installer. No longer you will need to move around files. Just launch the installer and you are set to go.
I have also spend a bit of time to ensure that you don't need to worry if you have the latest version, because Story Editor will check if there is a new release for you. Nothing too intrusive, of course, because you are writing and you don't want to grab the mouse to click away an annoying "please restart your system" while you are writing.
When you see this at the bottom, just click on it and it will ask if you want the update, say yes and while it is being downloaded you can continue writing.
Once the download is complete, hit it again and the new version will be installed.
So what will be in the next version? Well, I'm going a bit back to add some more text editing functionality and also exporting/printing.
Don't worry about checking the website or reading my blog. From now on you will be notified
Next version of Story editor
Quite a productive night, if I may say so.
Currently the new features are already worthy of a new release. It has an installer, it has file association and an update checker. Yep, now you can ignore my blog and still have the latest version of Story Editor.
However I have good news and bad news. The bad news is that you will have to wait untill it has been released. The good news is this release will most likely be done before the weekend. The reason for the delay is because a) it's late and b) I want to test the downloading mechanisme. Oh and of course, it needs to alert you when a new version is availabel. So I still got my work cut out for me for this week.
Story editor
I like writing stories. They are a form of entertainment to me and as such I enjoy spending my time in writing something else then code. However I have never found a tool that met my requirements. In my opinion an application for creative story writing should be focused on allowing you to write as comfortable as possible without any distraction, which often means you turn off the automatic spell-checker and more.
Now Microsoft Word would have been a great tool were it not that I need to keep track of all kinds of things in my story. I used to do this with an Excel file but that didn't work. I have tried some of the creative story writing software out there (open-source, free and commercial) but they either provided too much, miss certain features or required me to work in a way I thought was cumbersome (I don't want a pop-up when I look at details of a person).
So I have decided to write my very own story editor.
A key feature will be that it uses a dynamic data format. In most applications you can add and edit your characters but then you only a few predefined fields available, like name, birthday, bio and notes. If you are writing a deep space story which involves many alien races you would need to define that for each character in the bio. In my story editor I want to be able to just add an extra field.
Another feature I'm going to put in for certain is that everything can have transient properties, which is fancy way of saying that some properties might not last forever. In the Lord of the Rings we see that the one ring switches quite a bit from owner. Having one field to track information about the owner would be insufficient as I want to know the owner of the ring at a certain point in time. Of course, this system is a bit cumbersome when you want to keep track of the owner of the a ball in a football match.
The first release will be when the editing of files and the outline editor fully works.
Custom exceptions
Besides finishing my study I'm currently also working as a software developer. And yesterday I came across a problem which thought me how a lesson.
The project I was working is basically a custom import tool for a financial software. We get an CSV or an XML file and that is imported using the SDK of the financial software. Nothing hard except that the SDK is unfinished and various features are yet to be implemented. The majority does work, but it is like walking through a mine field and every time you move forward the application might blow up in your face
The application is written in Visual Basic .NET (not my choice, but it does the job) and the SDK uses exceptions to notify that a certain feature is not working or when a certain object doesn't meet certain requirements when you ask it to be saved.
Because of the huge amount of data, I used reflection so that I don't have to type as much. My system also uses exceptions, and I won't be surprised if you already where this is going, but while I was debugging I came across multiple exceptions of the SDK which meant that I either had to write a workaround for it or remove the feature until the SDK does support it. When I finally fixed the majority of the errors I suddenly got hit in the face by the following exception:
[cc_text]Unable to complete save[/cc_text]
Now the SDK did provide cryptic error messages but this one was completely new and I was doing a bare bone test. I called a coworker over to see if he knew what it meant but he also didn't know what the message meant. A few minutes later he came back to me and said that the part of the SDK did work on his side and that the error must be somewhere in my code.
To cut a long story short. The exception that I got was my own and I hadn't noticed because I had already encountered so many exceptions of the SDK that I just presumed that it was again the SDK that was throwing a fit.
Once I realized that it didn't take long to solve it (I returned a true instead of false somewhere), however I was more worried about how to prevent it in the future. After some thought that also was simple.
If any of the application code would throw a fit it would throw not the standard exception which would have been:
[cc_vb]throw new Exception("Unable to complete save")[/cc_vb] but a custom type and a search and replace later we got:
[cc_vb]throw new UtilityException("Unable to complete save")[/cc_vb] so that error message would contain a special prefix by which it would be clear that it was our own code that decided to throw an exception.
[cc_vb]
Public Class UtilityException
Inherits System.Exception
Public Sub New(ByVal str As String)
MyBase.new(str)
End Sub
Public Overrides ReadOnly Property Message() As String
Get
Return "UtilityException: " & MyBase.Message
End Get
End Property
End Class
[/cc_vb]
In the future we will know when it was our own mine to blew up. A simple solution but it would have saved us a lot of time if we had done this from the start.


