HomeHow to Write a NovelHow to Write A Novel: Launch Bug, & how we’re fixing it

Comments

How to Write A Novel: Launch Bug, & how we’re fixing it — 2 Comments

  1. I am very sorry to you and to Holly for the inconvenience this problem caused. I hate when problems happen. It is bad for everyone. I am determined to keep significant system problems out of our future.

    Here is how the bug worked. When setting up How To Write A Novel in the system to make it available for sale, two leading spaces were saved in one of the fields in the system. Instead of saving “How to Write a Novel”, we had ” How to Write a Novel”. Normally, that would not be a problem, but in this case, we run a process called “serialize” on the data. Leading spaces are normally no problem in serializing, but in this case, the spaces were not plain spaces like the ones produced by the space bar. These were strange spaces produced by one of the pieces of software we used to put Holly’s system together. That software inserts the spaces to avoid certain problems, but in this case, the extra spaces caused a problem. These spaces are from the utf-8 character set, which has become standard, but introduces complications like this one. Here is the complication: the “serialize” function does not work if the data contains “multibyte” spaces as the evidently were.

    The symptoms were impossible to miss Our process for setting people up when they have signed up for a class was breaking at the point where it was trying to use data it expected to have been serialized.

    This problem took me a while to isolate. I fixed it by replacing using the data without serializing it. In case you are wondering, serialization is a way of converting a set of multiple data fields into one field. It is like taking the fields for your name and address and saving them like this: “field1name=firstname;field1value=Dan;field2name=lastname;field2value=Allen;” etc. No matter how many fields, if you put them into that format, then put quotation marks at the beginning and end, then all those fields can be stored together in one field in the system. Then to use that data, you have to unserialize it.

    The multibyte spaces did two things.
    First, when serializing data related to your signing up, only some of the fields were included. When the serialized function encounters multibyte characters, it stops.

    Second, when running “unserialize,” the program would stop running.
    The program where this happened is the one that handles notices from PayPal letting Holly know you paid. We can see the records created in this process, but we cannot exactly watch these programs run.

    If you want to know more or have any questions, comments, suggestions, etc, please do not hesitate to let me know.

  2. Thanks for the update and for adding me to the class. I have the class now, but (in case you didn’t already know about time issue) the forums aren’t letting me in, (says I’m not authorized) though I can see the subject lines of posts going up.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.