Michael Martin

Can anyone give me Michael Martin’s e-mail address. I just installed a couple of his/her extensions and they don’t work for me. :question:

I’m sure Michael would be glad to help you out, but it’s considered polite to contact the author only after you haven’t found the answer on the forums or when you’re sure it’s a bug in the extension. Are you having some specific problems with the extensions?

I don’t request help unless I need it! :imp:

No need to be angry. Juhana was trying to help, by suggesting that you could ask for help in the Imform section of the forum instead of mailing Michael. There are plenty of people here that know lots about Inform 7 that would be able to help out with your problem if you told them about it.

Plus, if the answer is posted publicly, other people with the same problem/question might be able to find it.

Sorry about the rant but this is my problem: :unamused:

From inside the Extensions:

Now it is not so much these exact Extensions (straws and camels backs), but the whole language - I am getting to the point of not wanting to even try writing a new line of text when I know that what I will get back is not a functioning line or two but some obscure error messages. I have been programming for up to 50 years and this is the strangest language I have ever encountered. And I have used a lot of them!

Well, that’s the problem right there! :laughing: It’s like that New Math song…

Inform 7 is definitely aggravating at times, and one of the worst problems it has is documentation. In my opinion the error messages are part of the documentation, and they’re no exception.

Fortunately, this here forum more than makes up for the shortcomings of the documentation. I bet you’ll have an answer to this by Monday afternoon.

The thing for me, besides the addictive yet oddly counter-productive thrill of learning a programming language that’s not like any other I know, is that after hours of grinding my teeth and tearing my hair to get the syntax right, I have readable code that I can come back to later and still understand.

Anyway, your problem sounds like some kind of namespace conflict. Best bet would be to make a trimmed-down copy that duplicates the problem. If trimming it down until you see the conflict doesn’t present a solution, then post the code here.

The above short program produced the following:

The messages are for the Extension programmer, not the end user!

I rest my case! :ugeek:

It’s an interesting case, but it’s not the extension’s fault; the problem seems to be that Inform includes the two extensions in the wrong order or parses the other before it has included the other one. You can fix it by just leaving out the instruction to include Reactable Quips (QBC already does it automatically).


test Room is a room.

Include Quip-Based Conversation by Michael Martin.[/code]

This compiles for me:


test Room is a room.

Include Quip-Based Conversation by Michael Martin.[/code]

What I think is happening (I’m not experienced in using extensions) is that Quip-Based Conversation begins with the line “Include Version 10 of Reactable Quips by Michael Martin,” so when you use that line again in your code, you’re effectively pasting two copies of Reactable Quips into your code, which leads to the problems you’ve encountered. (Inform really should automatically catch it when an extension is included twice – though maybe the business with “version 10” is making a difference here.)

UPDATE: Right, what Juhana said.

I’ve reported it (inform7.com/mantis/view.php?id=666) but I’m not sure if it’s a bug or a feature request.

Thanks, that worked - but how did you know?

Juhana has more experience than I do, but the first error message you got indicated that something had gone wrong with the definition of “quip,” and the second one sounded like the sort of thing that happens if you try to define quip_null twice. Obviously you yourself weren’t defining quip_null twice, so the problem was something to do with the extensions. I looked in the code for Quip-Based Conversation, and noticed that it already had the command to include Reactable Quips, so I suspected that the problem might be that Reactable Quips was somehow getting included twice, and so quip_null was getting defined twice. Then I tested it by deleting the “Include Reactable Quips” line from your code.

One thing I’ve found is that it has helped me some to just try doing some simple programs that don’t include any extensions before experimenting with extensions, because it helps me figure out what the error messages really mean. For instance, one of the most common error messages is “The sentence ‘The watch is hot’ appears to say two things are the same - I am reading ‘watch’ and ‘hot’ as two different things” etc. This is the message you get when you’ve forgotten to define “hot” as a property, but the error message doesn’t help you figure it out that much. Not that I’m an I7 expert or anything, and I’ve spent an irritatingly long time trying to figure out what my error was when it turned out I had put a semicolon where a colon could be, but I find making my own syntax errors was more useful than making syntax errors with other folks’ extensions.