MUSHclient version 4?

Posted by Nick Gammon on Wed 15 Dec 2004 07:29 PM — 62 posts, 205,801 views.

Australia Forum Administrator #0
It is probably time for a major release - version 4.

Historically major releases are usually done after adding a heap of new features. In this case, since version 3.50 which is advertised on the main MUSHclient page, we now have:

  • Lua scripting.
  • A few things Lua made possible like encryption, compression, getting style colours in trigger scripts.
  • Customisable keyboard accelerators.
  • Remappable colours.
  • Custom spellcheck.
  • Lots more script functions, including moving windows, colouring notepad windows.
  • Support for UDP packets, with an example of how this could be used for a custom status bar window.
  • Packet modification - so you can change the text of incoming lines.





Previous major releases

  • Version 1.

    Initial main release with triggers, aliases, basic functionality.
  • Version 2.

    Added asynchronous connecting, spell checker, much more configurable, better activity window, printing, log files, searching, timers, alias arguments, scripting.
  • Version 3.

    Added PCRE (regexps), custom colours, tab-completion, recall window, send-to-all-worlds, character name generator, better scripting, notepad windows.




It is usually difficult to decide exactly when a major release is ready. Usually the one that stays stable for months is not version 1, 2, or 3, because shortly after being released minor but annoying bugs are found.

Thus the "stable" releases (usually one per year) so far have been:

  • Version 1.04 (January 1996 to May 1997)
  • Version 2.03 (June 1997 to February 1998)
  • Version 2.13 (April 1998 to March 1999)
  • Version 2.14 (April 1999 to September 1999)
  • Version 2.15 (September 1999 to May 2000)
  • Version 3.04 (August 2000 to May 2001)
  • Version 3.17 (August 2001 to May 2002)
  • Version 3.32 (November 2002 to March 2003)
  • Version 3.42 (May 2003 to Feb 2004)
  • Version 3.50 (May 2004 to November 2004)


Those are the releases that have stood the test of time, usually being around for a year or so. Interestingly, many were done in May of their year.

The question is: is version 3.59 (or 3.60 which has some minor changes) ready to be re-badged as version 4? I have gone back through the old suggestions and bugs list. There don't seem to be very many that are really urgent. A lot of the things still outstanding are cosmetic, or can be achieved another way using the existing version.

If anyone who uses MUSHclient regularly thinks there is a compelling reason for a change that should be made before releasing version 4, please speak up. :)

Amended on Thu 16 Dec 2004 06:44 PM by Nick Gammon
Australia Forum Administrator #1
I'll point out that the "official" version gets downloaded much more often than the ones announced on this forum.

For example, in December 2004 so far, over 2,000 copies of MUSHclient 3.50 have been downloaded, compared to 69 copies of 3.56, which is the next most popular.

In November 2004, MUSHclient 3.50 was downloaded 4,667 times, however version 3.51 was downloaded 44 times.
USA #2
Seems Ok so far. Though I haven't tried 'every' new things that has been added. (Heck haven't tried using most of the stuff from old versions...) And yeah, major versions tend to get downloaded more. In general you have very stable beta versions, compared to some software, and very few serious bug fixes. However, for most people 'beta' means, "let someone else try it first." ;)

I don't see any abvious reason to not upgrade the latest version to a 4.0.
Sweden #3
A question and a some comments:

Question:

What is the difference between the spellchecker listed as introduced in version 2 compared to the custom spell-checker listed as introduced in version 3? I thought the one we have right now is the same that was introduced from the start? :)

Comments:

I think it would have been good to have something in the future version 4 that is attractive to non-coders. That is, people who use MUSHclient out-of-the-box. As it is, I don't think those users will be hurrying to download the current version even if it is rebranded as version 4. I don't know how compelling that is, but since the fact that the official version is downloaded more than the 'betas' was mentioned as a reason to go to version 4, I figured it was worth mentioning. :)

I still upgrade regularly myself, but I have to admit it is mostly because I sort of do compulsively with all software. ;) For me, there haven't really been any must-have features added in a fair while.

So personally, I would have loved to see some of the outstanding design suggestions implemented before going to version 4. Such as 487 (perhaps with the addition of MUSH code syntax highlighting, even), 495, 498 and 499.

USA #4
I think that a version four would be nice, except that...
Quote:
A lot of the things still outstanding are cosmetic, or can be achieved another way using the existing version.
I've worried myself that a lot of people are put off by the suggestion that they simply "do it themselves" with scripting, because most people don't know how to script at all or enough. As Linda said, people want an 'out-of-the-box' experience.

Instead of making it all core MUSHclient features, perhaps the paradigm could be shifted somewhat from "core functionality" to "extensions", much like e.g. Firefox. Then, you could have a library of extensions (plug-ins) to add in all these features.

This way, everybody is happy: there is no program bloat unless you specifically want the features, and for those who do want the features, they can have them.

I'm sure it would be possible to have a set of 'approved plug-ins' that people could choose from, where users could contribute their own. Perhaps, if there are enough, there could even be a browsable online library. Better yet would be the ability to upgrade plug-ins, but I understand there are significant problems with overwriting old variables and the like.
Australia Forum Administrator #5
Linda:

The spellchecker was in fact introduced in version 2.16. My quick browse of the release notes got it wrong. It is the same one it always was (I have amended the post above).

I'm not so worried about whether current users upgrade or not, that is a decision based on whether the new features are worth it. The problem is that by not at least making the later ones the official version, any minor bugs or problems will be downloaded as "official" when they have already been fixed. As long as the new version doesn't have more bugs.

Remember the old saying? "Upgrade - exchange your old bugs for new ones.".

I'm inclined to think the core functionality is pretty good as it is - I don't want to get into the software bloat syndrome, like a few programs I could name, where later "improved" versions get harder and harder to use because the core features are swamped under all the extras.

This is where scripting comes into it. I know a lot of people don't want to use it, and that is fine. But one day, if you ask "how do I make a trigger that reacts when X is greater than 10?" I can reply - "a small script will do that". This is better IMHO than cluttering up the trigger dialog box with lots of little extra combo-boxes and checkboxes which try to achieve the same effect, and probably won't be as good anyway. Then the beginner user stares at those and thinks "I wonder what they are for - are they important?".




As for your other points:

  • Suggestion 487 - convert normally formatted text to MUSHcode.

    Isn't that there already? Commented softcode on paste? Or do you mean in the notepad, where you can see it? Or formatting the other way? (Adding comments). Can you be more specific about what you would like it to do?
  • Suggestion 495 - spawned windows.

    I think the infrastructure is there for doing that as a plugin. My recent post about the status bar windows illustrate the general idea. Once things stabilise with MUSHclient proper I think I'll try to do a separate window plugin, along those lines.
  • Suggestion 498 - thesaurus.

    I checked that a while ago. To purchase it costs hundreds of dollars, at the current rate of registrations (registrations compared to downloads) I would need quite a few to recoup the cost. I was thinking of you when I tried to get the Word thesaurus working through scripting. I think that cries out for a suitable plugin.
  • Suggestion 499 - tabbed windows.

    This was one of your suggestions, to point and click to change world windows. Did the status bar menu not work for you? Where the world name appears on the status bar (at the bottom) if you click on that a menu of all open worlds pops up, then just select the one you want. That lets you quickly change worlds with "point and click".


Australia Forum Administrator #6
Quote:

Instead of making it all core MUSHclient features, perhaps the paradigm could be shifted somewhat from "core functionality" to "extensions" ...


That has been the idea for a while. This is the reason more and more script commands are incorporated, so that plugins can become more powerful. Things like moving windows, finding out where they are, activating them, sending messages from one to another and so on. Plus stuff like Lua, external DLLs and so on.
Sweden #7
I am aware that the goal is to keep MUSHclient bloatfree, and I certainly don't like bloated software as such. However, I remain unconvinced that all the necessary core features have been added, and I'd personally rather take a little more bloat to get those in a painless, scriptfree way. :)

Still, I do agree that plugins are a good idea for those issues that can be solved just as well through a plugin as though a core enhancement, since they do offer people the choice of using them or not.

Perhaps it would be a good idea to, if possible, offer some new plugins coversing some of the suggestions that add significant functionality as part of the version 4 release? They could be billed as new features via bundled plugins, or something such.

In regards to the specific suggestions:

487

My main thought about this was actually the add-on I made to that suggestion: syntax highlighting for MUSH code in the notepad. However, the original suggestion also mentioned having some of the features of the MUSHformatter program in the notepad (http://mform.kempe.net/).

495

If it can be solved fully through a plugin, that's certainly a great solution. However, when the subject has been dicussed in the past, my impression has been that the plugin solution would not come close the functionality of this feature as seen in SimpleMU. For example, I don't believe it would be possible for each window to have its own input area, or to hold as much content as a world window, given that they'd be based on the notepad?

498

I remember that you said you thought it might cost to much, but I didn't recall if you ever found out for sure. Given that this is the case, that is obviously not practical unless, as you suggest, it could be done by using Words dictionary and thesaurus. Again, a plugin that can actually do that would be a great solution. :)

499

The statusbar solution is okay for the actual switching, but the real advantage of a tabbed interface is that the current indicators of activity in a world or of whether it is open or closed (the colour of the number, that is) would be easily viewable for all worlds. Now, if you have more than 10 open, the status of the extra worlds isn't viewable unless you check a submenu.

For me, being able to quickly determine the status of my open worlds is usually a top priority, and the most visible and easy to use way of accomplishing this that I can see is by allowing an unlimited number of worlds to be displayed on the activity toolbar.

USA #8
On the thesaurus issue.. Making a plugin to use Word's version is nice and all, but some of us won't touch Office with a 10,000 foot pole. lol If you have to make a plugin anyway, why not a database that uses the existing ODBC features we already all have, with the addition of the scripting needed to perform a thesaurus lookup. Yes, this means creating a thesaurus from scratch, but it would be 'ours', not something designed by some company that will charge huge amounts of money to add it. Same frankly with the spellchecker. Yes, it is nice that we have one, but it isn't totally inconcievable that you could feed a lot of text through a program, generate a database of all unique words, then go back and check to see if they are right. "Hmm. That looks good.", clicks 'Keep'. For a spellchecker the only criteria is feeding enough words into the database to make it useful, you don't even have to type them in yourself, just make sure they are right once in there. Then it is just a matter of implimenting some code to run a search for likely words. That is a tad harder, but not impossible.

Point is, we are looking for prebuilt solutions, which often don't even work well in the environment they exist in, and trying to adapt them to something they where not designed for. However, the problem isn't designing the plugin/code to check a word or return a thesaurus search, its getting the data into the database used in the first place. And a fair amount of that can be automated. Its not totally impossible, just inconvientent, compared to buying a prebuilt solution. There seem to be a lot of lazy people here. -Including me.- ;)
USA #9
Of course, you can always use something that is royalty free:

http://wordnet.princeton.edu/

http://www.cogsci.princeton.edu/~wn/license.shtml

Its just too bad it doesn't also act as a spellchecker, then you could kill two birds with one stone and rid yourself of the spellchecker we got, which is functionally not much more advanced than one from the 1980's.

Sweden #10
However, if the only reasonable way to have a thesaurus is through a plugin that uses Word's thesaurus, I don't think that approach should be discarded even though some will not use it. :)
USA #11
Think that is my point Linda. It is the only reasonable solution people are willing to look for. Including something as common sense as finding an existing royalty free one, which took like 10 minutes on Google. ;)
USA #12
Quote:
Things like moving windows, finding out where they are, activating them, sending messages from one to another and so on.
Yes, the capabilities are there, but I believe that most of these are not actually implemented via plug-ins - the problem for the end-user who doesn't know how to write scripts is that capabilities to script are not useful. Perhaps you could release "official plug-ins" to do some of the things you don't think should be in the core but seem to be in demand? Depends on how hard it is compared to how many people want it, of course. :)
USA #13
Perhaps just adding a "get more plugins" button (either on the plugin tab, or in the help menu) to guide them to the list that's here.

Since we do have a list. However most of the big plugins are incorperated already in the download. Chat protocol is a perfect example of this. But yes, perhaps some guidance to the user about how to expand MC with the plugins that are already available (as I'm sure a large percentage doesn't frequent these forums).
USA #14
Right. I was thinking mainly of a 'get more plugins' button - something to really rub in the fact that the architecture likes plugins, and that much functionality really depends on plugins - and that you officially support this.
Sweden #15
However, a 'get plugins' button isn't really the solution as long as those things you'd like haven't been done as plugins. ;)

What I find a bit disheartening at times is when feature X is asked for, and the response 'it would be better as a plugin, to make it optional and avoid bloating the software' is given, but then said plugin doesn't always surface. Obviously, they take time like any coding, but to me it somehow feels like the plugin solutions are less likely to actually happen than those features who get picked to be actual core enhancements.

Just the idea that it can be done as a plugin doesn't make those of us who can't do plugins any happier, and so we keep asking for them as actual program features instead, to try to make it likelier that they'll show up. :)

And I'll still maintain that I don't think that real spawned windows or a tabbed interface are bloat features, but that they are things that ought to be part of the basic package. :)
Australia Forum Administrator #16
I have added a "plugins" item to the Help menu, so that you are guided to the plugins page, without necessarily having to know about the forums.
Australia Forum Administrator #17
Linda, I feel a little unmotivated to spend hours and hours adding new features, when last November 4,667 copies of MUSHclient were downloaded from this site, however 8 were paid for.

This month, 2,247 copies have been downloaded so far, however 9 have been paid for.

A few years ago I used to reckon that around 1% of people paid for shareware, now it looks more like 0.1%.

A friend of mine told me a joke a few years ago, it goes like this:

Quote:

A little boy was invited to have dinner at a friend's house.
The friend's mother asked him if he liked peas.
"Oh yes", the boy replied.
So, he was served up peas for dinner, however he didn't eat them.
"I thought you liked peas", the mother said.
"That's right", the boy replied, "but not enough to eat!".


Sometimes I think writing shareware is like that. Thousands of people like your program, enough to download it and use it, but not enough to pay for it.
Amended on Fri 17 Dec 2004 02:01 AM by Nick Gammon
Australia Forum Administrator #18
It seems that it is a bit early to release version 4 anyway. A few extra bugs have been found in scripting (subtle bugs, but there nonetheless). Also I have added a few extra features regarding warning you if scripts have been disabled due to a parse error, and a couple more things like that.

So, it is probably best to test this (as version 3.60) before making it the official version.
USA #19
Don't forget that a great deal of the downloads are probably upgrades, not actual new users. If you wanted to track the difference you'd have to have some kind of auto-update feature in MUSHclient, but even that wouldn't always work. Still, it would help differentiate new users from upgraders.
Australia Forum Administrator #20
Quote:

Don't forget that a great deal of the downloads are probably upgrades, not actual new users.


Upgrades to unregistered copies, maybe. However remember most of those are version 3.50 - not the latest one released on the forum, and that has been current for months now.

No, sorry to dash your idea there, but at the rate of 4,600 downloads per month, and if *every* registered user was downloading version 3.50, that is still only 3% of the downloads.
Amended on Fri 17 Dec 2004 04:22 AM by Nick Gammon
Australia Forum Administrator #21
Quote:

... but to me it somehow feels like the plugin solutions are less likely to actually happen ...


I was hoping the plugin idea would allow for features to be added that did *exactly* what you want, rather than having to put up with what the implementor thought everyone wanted.

I know no-one has done it yet, but something like the MUSHcode formatter (an improved one on the built-in one) is an ideal problem to be solved by a plugin.

You could get the notepad text, format it how you want, and put it back again. Someone could do that in Perl, Lua, VBscript, whatever.

Sometimes people write to me and say "if only your client had feature X, you would get heaps more people using it" (whatever X is).

So at times I spend weeks adding X, and the rate of registrations (per month) is unchanged.

I do remember one time someone said that the nag screen was really annoying, and it should not take over the whole desktop. So, I made the nag screen not "stay in front" for the next version, trying to be nice to my customers.

However, far from getting more registration because of the "improvement" the number that month dropped dramatically. It seems that the nag screen is one of the instrumental features in getting the 0.1% of people (who download it) to register to be even that high.

I know it sounds great: take out the nag screens, add heaps of features, and lots of people will pay for it. Sounds good, doesn't actually happen. Try it yourself if you don't believe me.
Sweden #22
I completely understand that that situation wouldn't motivate anyone to add new features, regardless of whether they are done as core enhancements or plugins. I don't feel I have any right to expect anything to be added, if it sounded like that. :)

What I was trying to get at was that when feature X is discussed, and someone says 'it can probably be done as a plugin', that isn't really a positive answer for someone who can't do their own. :) Essentially, it amounts to almost no chance of feature X being added. Yes, if you could do it yourself, you could add it just the way you want, but if you can't, then that flexibility doesn't really matter.

And no, I won't say that any of the features I have suggested will bring in more registrations. I can't know that, so it would be silly of me to make that claim. But I do know first hand that the lack of spawned windows have been a deal-breaker when people (MUSHers, specifically) have chosen between MUSHclient and SimpleMU. And I do know that some of them now own registered SimpleMU copies.
USA #23
Well, 3% is 30 times more than 0.1%, which is some improvement at least. :) I didn't mean to say that there aren't a lot of people who don't register, merely that perhaps it's not quite as dire as you initially said (even though I fully agree that it's not that much less dire.)

It's a tricky dilemma, that of shareware. People register MUSHclient because they're nice people, not really for any other reason. The nag screen can go away or be ignored fairly easily. I think what it comes down to is that since MC is fully featured from the get-go, the only incentive is to be nice. But, I know we've been over this many times, so there's not much point in doing it again.

To get back to the subject at hand, even though I think scripting is a great idea, I can't help but feel that as Linda described for people who can't script, having it is as good as not having it. I fully agree that I don't want to move the onus on you to implement it all (as plugins or not), which is why I'd suggested to put more of an emphasis on community. I think one thing to consider is that you seem to think plugins should be exactly how the users want them, which is true ideally; but for most people plugins merely make it closer to how they want it. (Myself included, e.g. for Firefox, and I know how to script/write programs rather well!) Do you have an estimate of how many plugins are released on the forums that people might not know about if they're not forum regulars? Of course, any idea like this requires somebody to maintain the whole thing, which can again be a whole new bother... :)
Australia Forum Administrator #24
Quote:

Yes, if you could do it yourself, you could add it just the way you want, but if you can't, then that flexibility doesn't really matter.


Yes I quite understand. I have various programs here that have scripting capability (eg. the Visual Studio program that I write MUSHclient in). I virtually never use it, because I can't be bothered to learn yet another scripting language for situations that in many cases can be done another way (with core functionality <grin>).

However I think the answer "it can probably be done in scripting" is better than "I have no plans to do it". For example, I tried to get a thesaurus to work using scripting, and partly succeeded.

If something is simple then I usually do it myself and post the method here, so that it can be used immediately, without new downloads, and the mucking around that entails.

Plugins were intended to be an easy-to-use method of achieving that. Rather than saying "add 5 triggers, 3 aliases, a timer, and put this in your script file", I (or others) can just say "download and install this plugin, and it is all done for you".
Sweden #25
Quote:
However I think the answer "it can probably be done in scripting" is better than "I have no plans to do it".


That is true, certainly. I guess from a user perspective, its easy to worry that "it can probably be done in scripting" really means "I could do it, but now that plugins exist, I probably won't." and that some features that potentially could make good core enhancements are relegated too quickly to the 'perhaps suitable for a plugin' pile.

All in all, even if no new features that I use are added, I still think that MUSHclient is a great program. :) I just find myself bemoaning the lack of those spawned windows and unlimited window tabs on really busy days. ;)
Australia Forum Administrator #26
I think the tabbed window idea is something that could be fairly easily added with a plugin. I know I keep saying that, but it would make a nice half-day project during the Summer months here.

I think you are envisaging a thin (horizontal) window which would list (in a sort-of tabs format) each currently-open world, and if you clicked on one, it would activate that world. Is that it?
Sweden #27
Well, what I was envisioning was to (optionally, since some people don't like it) be able to have the interface be like the tabbed interface of Firefox or Mozilla, with each world corresponding to a page.

But yes, the actual tab list would be a narrow horizontal bar, ideally with the name of each world (possibly configurable to use either the name or the number, the latter in the same fashion as the current activity toolbar) and ideally capable the same changes in colour according to status as the current activity toolbar displays.
USA #28
I agree that a Firefoxish tabbed interface would be brilliant.

I also agree that it's important to reiterate that with or without these new features, I as well think MC is a great program. :-)

How could you do such a thing with scripts? Do scripts have access to Windows routines? Seems that this is more than just moving around windows but also creating buttons and the like.
Australia Forum Administrator #29
Well, I was thinking of an external window, like the status bar window we are discussing in another thread.

However I can see one problem. The status bar window works fine, it is just a status bar for one world. However for something like a tabbed interface the tabs are global. That is, they don't belong to a particular world.

That will make scripting them somewhat clumsy. Perhaps I'll Google on how to do tabs, it mightn't be too hard. :)

Of course, this puts back version 4 a bit.
Australia Forum Administrator #30

I must admit it was easier than I thought. I have added the tabbed interface, see screenshot below. I hope that was what you had in mind, Linda. :)

You can have them at the bottom or top, I suppose that had better be an option.

Australia Forum Administrator #31
Quote:

But I do know first hand that the lack of spawned windows have been a deal-breaker when people (MUSHers, specifically) have chosen between MUSHclient and SimpleMU.


Having got the tabs out of the way, is there a major difference between spawned windows, as you call them, and the ability in MUSHclient so send chats and whatever to notepad windows? Is it the colour? The fact they won't eventually fill up? Something else?
Australia Forum Administrator #32
Thesaurus

I downloaded Wordnet as Shadowfyr suggested. The Windows version just installed very simply, and the default Windows-interface program brings up a nice window where you can look up the meanings of words and their synonmys. It is actually very good. Look up "babble" for example and you get four senses of the word, and a whole heap of synonyms.

It seems to me that just having that there would go a long way to having a thesaurus handy. After all, a quick copy and paste and you are done.

It also has a command-line interface, so it could be captured by a plugin (by executing an operating system command and capturing the output), like this:




c:\WordNet\2.0\> wn babble -over

Overview of noun babble

The noun babble has 1 sense (no senses from tagged texts)

1. babble, babbling, lallation -- (gibberish resembling the sounds of a baby)

Overview of verb babble

The verb babble has 4 senses (first 2 from tagged texts)

1. (3) babble -- (utter meaningless sounds, like a baby, or utter in an incoherent way; "The old man is only babbling--don't pay attention")
2. (2) babble, blather, smatter, blether, blither -- (to talk foolishly; "The two women babbled and crooned at the baby")
3. ripple, babble, guggle, burble, bubble, gurgle -- (flow in an irregular current with a bubbling noise; "babbling brooks")
4. spill the beans, let the cat out of the bag, talk, tattle, blab, peach, babble, sing, babble out, blab out -- (divulge confidential information or secrets; "
Be careful--his secretary talks")



I'm not sure what you would do with that. You still need to select the correct sense of the word, and choose the synomym you want (if that is what you want it for).

In this case, I don't know that an inbuilt solution gives you much more than this standalone one.
Amended on Sat 18 Dec 2004 03:53 AM by Nick Gammon
Australia Forum Administrator #33

This is what the GUI interface looks like:

#34
Just a quick note @ tabbed windows: YAY! :-)
Australia Forum Administrator #35
Just to motivate people who want a bit more core functionality, a few more fun things will appear in the next version. The tabbed windows are a nice touch, and then I looked at the ANSI and custom window configurations.

You can now lighten or darken, or add or reduce saturation of the custom colours.

And then for maximum fun, the "random" button. This lets you change your entire ANSI colour set to one chosen at random. You can get some pretty interesting colour schemes that way! You saw it here first. :P
#36
I once had a nice colour trigger set up: it coloured every letter in another, completely randomly chosen colour. Not a lot for readability, but surely made great screenshots. ;-)
USA #37
tabbed windows is disable-able, correct?

Bottom, top, None?

Looks like its going to behave like a toolbar (which would imply on/off).
I assume yes, but just making sure.

Edit: And Nick, that looks really nice. Even if I wont ever use it.

Amended on Sat 18 Dec 2004 07:26 AM by Flannel
Australia Forum Administrator #38
Exactly. None, top or bottom.
USA #39
Looking great, Nick. That's exactly what I would have expected.

(See, it's not always that bad! *grin*)
Sweden #40
The tabbed windows look great. :)

Are they currently capable of showing status & activity like the activity toolbar, btw? I have one program, EditPlus, where a changed but not saved file gets a little red star in front of the tab name instead of a blue one (the default), but whether that is easy to accomplish or not I don't know.

The thesaurus solution sounds pretty good actually. My initial thought had been something like what Word does, where you can right-click on a word and it brings up a menu which includes Synonyms. If you then mouse down to Synonyms, it pops out a list of such for the selected word. But that probably would require it to actually be installed into MUSHclient.

Regarding the spawned windows, I think that are a couple of issues with using notepad windows (at least, as I currently understand how it would work) to simulate them.

First of all, they can't (as I understand it) have a separate input window. This, as it see it, is a crucial feature for real spawned windows, as it really allows you to separate out specific channels, pages etc completely. Without that, I can't really see the benefit to the 'workflow', so to speak.

If you have a separate input window, you can type your pose in your main output window, and take a brief pause to answer a page in another window, without having to first copy and cut out for later your half-finished pose. Believe me, I do this too many times a day, and its no fun at all when you lose the pose because you copy something else. ;)

It could also allow for you to, in those spawned windows, simply type your message instead of having to remember channel prefixes, names for paging and so on. The window would automatically handle that bit, turning 'Hello' into '+pub Hello', for example. Ideally, it would allow me to do '+pub Hello' as well, and recognize that as the 'right' expression, for maximum flexibility.

Secondly, the size limit of the notepad could be a problem, especially if you want to keep a channel discussion going throughout a whole session. If you forget to log and would like to capture the whole backlog of an important discussion, it wouldn't be a good idea if they have to periodically empty themselves out to keep from being filled up.

Thirdly, they're sort of 'out of the way'. I actually use the notepad pretty rarely because I always forget I have the windows open, since they don't show up on the activity toolbar.

In some thread or other from last year, which I've been trying to find again, there was some talk about how real spawned windows could use a tabbed interface in interesting ways. I believe one of the ideas was to have spawned windows noted on the tab somehow (perhaps with a number indicating how many spawns you have), and accessible as a kind of drop-down menu when you right-click on the tab (and maybe anywhere else in that world).
Amended on Sat 18 Dec 2004 10:50 AM by Linda
USA #41
To the Thesaurus issue. Glad to see it really works. lol I didn't install it to find out, just gave that as an example of how you can actually find stuff that could be integrated, instead of relying on the somewhat questionable theory of paying someone for every addon. As for integration vs. non-integration. Integrated, like Linda mentioned, you could have the word you right click on pop up a window not unlike the one already available, then automatically replace the word you clicked on when you select the word you want and click OK. Having it external is the same problem as with some other 'solutions' people have found for things. You need a) to know it exists, b) know where to get it and c) even if provided with the client, if not accessable from the client people are not going to understand why not.

As for the spawned windows. Linda covered most of it. However, the one advantage that your extended toolbar gadget has is that it exists 'outside' the main window. This allows it to be dropped on the desktop and allows for other applications to be open there as well, without either expanding the client to fill the screen (thus burying other applications) or making you place it above or below the world window, which robs you of lines of text in the main world window. This may still be easier to manage as a customizable window run through scripts, but to go that route creates issues as well. You can't just open on, click a few buttons to configure what it does (like telling it to use the say command for everything) and just use it. Also, as a plugin, it isn't something there by default, it has to be added manually. It also, in the short term, locks people into using and ActiveX control, which means coming up with a different solution later on anyway, when you eventually design a full linux version. For me, the deal breaker though is forcing it to appear in the same MDI space as the world window. That is best left to the worlds imho, not secondary, but related windows, which is one of the things that made notepads so annoying to a lot of people already. Other than that issue, I agree with Linda's assessment of what such windows should be designed to do.
Sweden #42
I don't personally think that spawned windows are secondary windows in the same way as a notepad, since they do concern activities that take place in a specific world. A notepad window, on the other hand, could be use for creating a grocery list while MU*ing. ;)

However, I do think it would be ideal if a spawned windows solution could please as many people as possible. Perhaps it would be possible to make it so that you can choose whether the spawns appear in the regular MDI space or whether they are free floating in some fashion? However, I can't think of an application where you can have windows belonging to it exist outside of the main application window, so maybe that isn't doable.
USA #43
I see programs that mix them all the time., it is anything but impossible.
Australia Forum Administrator #44
Quote:

Are they currently capable of showing status & activity like the activity toolbar, btw?


They don't at this stage. The snippet I found on the Web just shows the window title. I'll take a look at how it works and see if I can add some sort of status. This is where these things blow out in time. The initial idea works OK until the enhancements take a week of extra work to get right. ;)

Quote:

If you have a separate input window, you can type your pose in your main output window, and take a brief pause to answer a page in another window, without having to first copy and cut out for later your half-finished pose.


I just want to point out that this particular issue is available right now, in MUSHclient. Just select Window -> New Window, and you get a copy of the current world window including a separate input area.

Now I agree it doesn't filter the output text, you see the same things as in the original window (although you can pause it at the message from the other player you are replying to). However you shouldn't be losing half-typed poses even now.




The intention of this thread when I started it was not to find all possible enhancements that people want, but any comparatively minor ones that could be added so a new "official" version can be released by Christmas.

I think that the current one, with the tabs, and various extra features, can be a candidate for that. I'll make that available later today, and if not too many bugs are found, then that can become version 4.

Sweden #45
Quote:
I just want to point out that this particular issue is available right now, in MUSHclient. Just select Window -> New Window, and you get a copy of the current world window including a separate input area.

Now I agree it doesn't filter the output text, you see the same things as in the original window (although you can pause it at the message from the other player you are replying to). However you shouldn't be losing half-typed poses even now.


True, but without the filtering, it doesn't really cut back on the chaos any, or help you avoid miscomms by ensuring that anything you type in that window goes to its intended source. I've tried it a couple of times, but found that it doesn't really help that much in my situation because of that limitation. Its also, like the notepad windows, easy to lose track of.

But certainly, it doesn't fit in under doing minor fixes before 4 is released. It just turned into a bit of a discussion of this feature once again since you wondered why the notepad solution doesn't cut it. :)
Australia Forum Administrator #46
That's fine, just checking you knew about it.
#47
Doh, is there anychance of deci/centi/millisecond interval timers being implemented in version 4?

And the tabbed windows look wicked good, thanks Nick :D
USA #48
You can probably do smaller timers in Lua.

http://www.gammon.com.au/forum/bbshowpost.php?bbsubject_id=4956&page=999999

Actually... I dont know. The Lua manual only talks about seconds. But if you could get the OS to return time in windows (which is the number of milliseconds since 1970 or whatever) then you should be able to do it.
Australia Forum Administrator #49
I was toying with the idea of timer of less than a second. I suppose everyone's keen? Trouble is the various interfaces that assume a second granularity, but it can probably be worked around.
#50
well, there's built in variables that has the number of seconds (or milliseconds rather) from midnight, so you could time things in milliseconds using that

But - you can't do XXX.. wait 300 milliseconds then do XXX..

Like, say, you have a trigger that does

Sub Eat_Herb (a,b,c)
  if herbbalance = 1 then
    World.Send "eat herb"
  end if
End Sub

and this sub fires on "You have recovered balance" & "You may eat another plant"

So, you don't want to double eat and you get the following output:

2705h, 3290m ex-
You may eat another plant.
2705h, 3290m ex-
You have recovered balance on all limbs.
2705h, 3290m ex-

then you'd double eat.. with a millisecond timer I wouldn't have to worry about that sort of thing.
Australia Forum Administrator #51
I don't quite understand that bit. Where do timers come into this example?

To save double eating can't you just store the fact that you have eaten something in a variable, and clear it when an appropriate message arrives?
Australia Forum Administrator #52
Anyway, before I get bogged down with sub-second timers, I have released version 3.60, which has gone from a few minor updates to 22 enhancements.

So, not quite ready to rebadge as version 4 yet.

Interestingly, one of the fixes was a fix to a previous improvement. Just shows how it is hard to get these things perfect.

In 3.57 I added a change to the notepad windows, on request, so that the title of the window would be offered when you saved it. Seemed a simple idea. However in the wisdom of the Windows programmers, certain characters in a document title stop it from saving. It is not as if you get the dialog box, and have to change a few things, you don't even get that.

It is this sort of thing that makes me grind my teeth when using Windows. I have an Access database that does that. One of the forms, a while ago I changed it, and now when I use it, it says "you have changed it, do you want to save the changes?". I say "yes". Then I close it. It says "you have changed it, do you want to save the changes?". I say "yes". And so on. Eventually I close it without saving the changes. Kind of annoying.
#53
Doh, sorry about my previous post on this thread.

Basically I don't say


dim herbbalance

Sub Eat_herb (a,b,c)
  World.Send "eat herb"
  herbbalance = 0
End Sub

I do:

dim herbbalance           ' Variable

Sub herbbalance_on (a,b,c) ' Sub to turn herbbalance on
  herbbalance = 1
End Sub

Sub herbbalance_off (a,b,c) ' Sub to turn herbbalance off
  herbbalance = 0           ' Called on the trigger:
End Sub                     ' ^You have eaten an herb\.$

Sub Eat_herb (a,b,c)        ' Sub to eat an herb
  If herbbalance = 1 then
    World.Send "eat herb"
  End If
End Sub


That's how it do it currently, and er, to simplify (not exactly how I do it, but for simplicity's sake) things I call eat_herb on balance/eq/etc.

So, if I get balance and eq simultaneously, I do eat_herb twice, and I overeat.

Now, if there were millisecond interval timers, I could do..


<timers>
  <timer name="anti_double_eat" script="imaginary_herbbalance_on" second=".3" >
  </timer>
</timers>

dim herbbalance           ' Variable
dim fake_herbbalance

Sub herbbalance_on (a,b,c) ' Sub to turn herbbalance on
  herbbalance = 1
End Sub

Sub herbbalance_off (a,b,c) ' Sub to turn herbbalance off
  herbbalance = 0           ' Called on the trigger:
End Sub                     ' ^You have eaten an herb\.$

Sub imaginary_herbbalance_on (a,b,c)
  fake_herbbalance = 1
End Sub

Sub Eat_herb (a,b,c)        ' Sub to eat an herb
  If fake_herbbalance = 1 AND herbbalance = 1 then
    World.Send "eat herb"
    fake_herbbalance = 0
    World.EnableTimer "anti_double_eat", 1
  End If
End Sub



If I did it that way, then the fake balance variable would be turned to false, then be turned on 300 milliseconds later, enough so that I don't double eat on the chance that I call this sub twice.
Amended on Wed 22 Dec 2004 04:32 AM by Nick Gammon
Australia Forum Administrator #54

2705h, 3290m ex-
You may eat another plant.
2705h, 3290m ex-
You have recovered balance on all limbs.
2705h, 3290m ex-


Why don't you turn on the "I have eaten" flag when you send "eat herb"? After all, you know you have just done it.

So you could do something like this:


if not just_eaten then
  Send "eat herb"
  just_eaten = true
end -- if


I suppose the problem here is that if you get two triggers in quick succession you might clear the flag twice. Well, you can find when a trigger matched (with GetTriggerInfo).

Now it doesn't matter how quickly the messages arrive, you instantly set a flag the moment you eat. So, if the second trigger fires it doesn't eat again.

You could also store the time you just ate (when sending "eat herb"). Then you don't clear the "just eaten" flag until a trigger arrives at least a second or two afterwards.
Australia Forum Administrator #55
Quote:

Doh, is there anychance of deci/centi/millisecond interval timers being implemented in version 4?


Regardless of your problem above, and whether or not the timers will solve it, I have indeed been working on sub-second timers in version 3.61. A bit more testing and I can release it for you to play with.
#56
Thanks a lot Nick :)
#57
I was looking for a way to get the system time down to the millisecond (similar to gettimeofday on Linux, perhaps), but I have not yet found a way to do this either in Lua or in MUSHclient. I have C code for a gettimeofday function, and I might be able to wedge it into Lua, if I can figure out the interface. If you'd like to include the capability to get time down the millisecond resolution in version 4, I'd be more than happy to share my function for grabbing the seconds/milliseconds time.
Greece #58
Hmm, why would you want to do that? And wouldn't MC have to check all the timers each millisecond to see if they should fire or not, thus making it quite slow?
#59
I'm not talking about timers. I want to grab the system time, including the current milliseconds, so I can time certain events between prompts. As all of the date/time functions are currently coded, I can only go down to the resolution of seconds.
USA #60
Javascript and Perl can currently get milliseconds, you can currently extend Lua to do the same, via C.

http://www.gammon.com.au/forum/bbshowpost.php?bbsubject_id=4915
#61
Thank you, Flannel! That's exactly what I'll do then. I can easily convert my gettimeofday function into a DLL to extend Lua and have some fun with it.