|
Zugg MASTER
Joined: 25 Sep 2000 Posts: 23379 Location: Colorado, USA
|
Posted: Mon Jun 18, 2007 5:29 pm
Next version of CMUD (1.34?) |
OK, now that I've updated zExplorer for the latest LOTRO expansion and have finished the Zuggsoft Affiliate program, I can *finally* get back to working on CMUD.
(Actually, I still have to add some Google Adsense stuff to the site this week, but that's pretty easy).
Chiara and I are taking a couple of days off towards the end of this week since I have been putting in a lot of hours trying to get zExplorer out the door. Chiara's grandmother also passed away last week, so we are still dealing with that additional stress. So it doesn't look like you will see a new CMUD this month, but I'm shooting for the middle/end of July for the next CMUD version.
This next CMUD version is going to be a big one. I don't know if I'm going to stick with the 1.34 numbering scheme, or whether I'll jump to 2.0. But here is what I'm hoping to add to the next version:
- SSH Support (via CMUD Pro addon)
- LUA scripting, including enhanced COM interface (zs.* object) for other languages
- Telnet Option triggers (and ATCP support) implemented as a new type of Event trigger
- Human-readable XML import/export (and fixing import/export/package library bugs of course), including being able to edit the readable XML for "class scripts"
- Integrating Scintilla editor control into main Edit window, and also implementing option for editor to save your main edit tab (untitled) contents across sessions
- Initial trigger tester (similar to what zMUD had)
- Functions! These will be real scripting functions that will utilize a new #RETURN command to return a value
Of course, I will also be fixing a ton of bugs at the same time (including the major mapper bug). I'm always focused on bugs and stability as my highest priority. But I decided it was time to start moving on some of these new features that I've been discussing forever.
Will I be able to do all of this before the middle of July? Who knows. Maybe it will be the end of July. As usual, I'll only release it when it's ready. But this should give you an idea of the direction that I'm going and what's coming soon. Should be fun! |
|
|
|
Larkin Wizard
Joined: 25 Mar 2003 Posts: 1113 Location: USA
|
Posted: Tue Jun 19, 2007 9:02 am |
This may be the single-most anticipated update for CMUD ever!
|
|
|
|
Fang Xianfu GURU
Joined: 26 Jan 2004 Posts: 5155 Location: United Kingdom
|
Posted: Tue Jun 19, 2007 9:45 am |
Indeed. I'm trying not to think about it so I don't get too excited.
|
|
|
|
Tech GURU
Joined: 18 Oct 2000 Posts: 2733 Location: Atlanta, USA
|
Posted: Tue Jun 19, 2007 3:48 pm |
Ditto... I'm most interested in functions...
|
|
_________________ Asati di tempari! |
|
|
|
Zugg MASTER
Joined: 25 Sep 2000 Posts: 23379 Location: Colorado, USA
|
Posted: Tue Jun 19, 2007 8:25 pm |
Something else that should be cool in the new version...
The SecureBlackBox SSH components that I'm planning to use for SSH also support tunneling via HTTP Proxies (Web proxies). I don't know if this only works for SSH, or if it also works for plain Telnet. But if it works for plain Telnet then CMUD will get this feature too. If it only works for SSH, then it will be part of CMUD Pro. I'll let you know when I get deeper into the implementation. |
|
|
|
Fang Xianfu GURU
Joined: 26 Jan 2004 Posts: 5155 Location: United Kingdom
|
Posted: Tue Jul 03, 2007 9:55 pm |
Well... I was just thinking about this after seeing this thread and remembered that CMUD exposes more things to its COM interface than it does through its scripting functions. You can do things like retrieving the default value of a variable this way. Perhaps you could consider adding the LuaCOM component to CMUD's implementation of Lua and creating a zs.com object as well so you can access CMUD's COM functions without the added overhead of calling the CMUD %session variable from Lua.
Note: I don't actually know anything about LuaCOM and how it implements access to COM objects, and whether it would suit CMUD. It's something to think about at least. The alternative would probably just be "zs.com=zs.func.session" which is hardly a grind. |
|
|
|
corvus Newbie
Joined: 16 Jun 2007 Posts: 3 Location: Brisbane, Australia
|
Posted: Wed Jul 04, 2007 12:55 am SSH |
Just a quick question, atm i am having to use putty to log into my shell account (wolfpaw). Is this what the SSH feature will enable me to do within CMUD rather than having to use another program. If not, this would also be another good feature to have within CMUD itself.
|
|
|
|
Fang Xianfu GURU
Joined: 26 Jan 2004 Posts: 5155 Location: United Kingdom
|
Posted: Wed Jul 04, 2007 1:12 am |
That's exactly what it's intended to replace, corvus :)
|
|
|
|
Zugg MASTER
Joined: 25 Sep 2000 Posts: 23379 Location: Colorado, USA
|
Posted: Wed Jul 04, 2007 1:41 am |
Fang beat me too it :) The SSH in CMUD Pro should directly replace PuTTY. In the first version, CMUD Pro won't have any of the port-forwarding features, but this is planned for the future. This isn't really very important for MUDding anyway as port-forwarding is usually only used to support an external program (like zMUD/CMUD using PuTTY to handle the SSH). Once port forwarding is implemented, then you'll be able to use CMUD-Pro to forward SSH connections for other external programs.
Keep in mind that only CMUD-Pro will have SSH. CMUD-Pro is a new product that will have a higher price than the regular version of CMUD, and you'll need to buy an upgrade to go from CMUD to CMUD-Pro. I'll have more details on the other advantages of CMUD-Pro later in the month. And at least for a while, the upgrade price will be discounted. For example, if CMUD-Pro has a price of $44.95, the upgrade from CMUD -> CMUD-Pro will probably only be $9.95 (making it a bit cheaper to buy the regular CMUD plus the upgrade). But this special price will only exist for a short period (a month or so) and is just to give a price break to existing CMUD users. Eventually it will be cheaper to buy CMUD-Pro to start with, rather than buying CMUD and then upgrading to Pro. |
|
|
|
Zugg MASTER
Joined: 25 Sep 2000 Posts: 23379 Location: Colorado, USA
|
Posted: Wed Jul 04, 2007 1:44 am |
Fang, regarding the COM interface...I'm considering something along those lines for Lua. But my gut feeling is that the Lua interface will have *more* features than the current COM objects. I'm using this as an opportunity to revisit the COM interface and to provide a better interface than the current COM for the scripting languages like Lua. But that's what I was talking about in the other forum thread about Lua when I was trying to figure out how Lua handled objects and properties. I want you to be able to access an alias (for example) as an object in Lua, and then access it's various properties. My goal for the Lua implementation is to make Lua as attractive as regular zScript and to have Lua totally integrated into all aspects of CMUD. It will probably take a few versions to get to this final goal, but that's my plan.
|
|
|
|
corvus Newbie
Joined: 16 Jun 2007 Posts: 3 Location: Brisbane, Australia
|
Posted: Wed Jul 04, 2007 2:22 am |
Thats absolutely brilliant then. That has been something that has on my mind for a long time with having to use a seperate program for a mud related thing that i'm sure every admin and mud owner out there must have to use as well. The price doesn't really factor into it for the advantage of a serious mud client for admin.
|
|
|
|
Fang Xianfu GURU
Joined: 26 Jan 2004 Posts: 5155 Location: United Kingdom
|
Posted: Wed Jul 04, 2007 2:29 am |
Zugg wrote: |
My goal for the Lua implementation is to make Lua as attractive as regular zScript |
If by "as attractive" you mean "more attractive", then you're spot on from what you've already described. I have one word for that: awesome. |
|
|
|
Zugg MASTER
Joined: 25 Sep 2000 Posts: 23379 Location: Colorado, USA
|
Posted: Wed Jul 04, 2007 3:45 am |
Well, I'd like to think that zScript will be "more attractive" to a lot of people because of the zMUD compatibility. Also, I have some new stuff planned for zScript that should make it even more attractive (no, not saying anything more yet ) So I'll stick with "as attractive" for now For people who are already in love with Lua, they will probably find Lua "more attractive" than zScript in many ways. But for most existing users there won't really be compelling reasons to learn a whole new scripting language, unless speed is a huge concern (Lua will probably be faster than zScript, but I haven't done any real benchmarks yet).
|
|
|
|
Zugg MASTER
Joined: 25 Sep 2000 Posts: 23379 Location: Colorado, USA
|
Posted: Wed Jul 04, 2007 10:46 pm |
Except for a bit more testing, the SSH stuff is basically done now (well, except for the port forwarding that I'm not doing till a future version). I've also improved the security of how CMUD stores passwords. In v1.34, if you save a password for your character, it is stored in the SESSIONS.DB database in "encoded" form. It's not encrypted...just encoded so that it's not plain text.
With SSH, I wanted to improve this security so that I could feel safer storing my password and using the auto-login feature of SSH. So, I have created a new database file called SESSIONKEYS.DB which is where your passwords are stored. In this file, the passwords are strongly encrypted. By default, it uses an internal encryption key, which isn't very secure. But I added a feature to CMUD (normal CMUD, not just CMUD-Pro) called the "Master Password". You can set this in the Edit menu of the Sessions window. This essentially creates a "passphrase" for the SESSIONKEYS file. Without your master password, there is no way to decrypt the passwords stored in that file. If you set the master password, CMUD will prompt for it upon startup, and if you don't enter the correct password, CMUD will not run.
If you forget your master password, you can always delete the SESSIONKEYS file, but you will lose all of the stored passwords for your sessions. I feel better that this is much more secure now for people who want to utilize this feature to protect their login info.
In the SESSIONKEYS file I am also storing the MD5 SSH fingerprint from each SSH server that you connect to. Unlike PuTTY, I do *not* warn you when you first connect to a new host. I really hate that. Yeah, I know that it's just warning you that the server might be spoofed. But honestly, that's pretty rare. If you are that paranoid, you can use the new "Message Log" feature in CMUD that keeps a log of all of the status bar messages from connecting. In the message log, you will see info lines that tell you about the SSH server you are connected to. Specifically, it will display the MD5 fingerprint for the server in that window.
After the first time connecting to a server, the next time CMUD will compare the server fingerprint with what is saved in the SESSIONKEYS database, and if the server key changes, *then* you will get the popup warning message which allows you to cancel, connect once without changing the stored key, or change the stored key to the new value. This is similar to the window that PuTTY displays.
I also implemented all of the Public Key authentication methods, and added a screen that allows you to generate your own SSH key pairs (similar to the PuTTYgen program, but integrated into CMUD). CMUD can generate all sorts of key types, including compatible key files for PuTTY. CMUD is using the SecureBlackBox SSH components, and they are a full-featured implementation of SSH and basically implement everything. The only thing I didn't include was IDEA encryption support, since there are more licensing and export issues with that.
Now that SSH is completed, I've started working on the Lua integration. Today I just did the initial playing and testing with the Delphi Lua interface. It's very similar to the C Lua interface, so using the "Programming in Lua" book I was able to make a good amount of progress. I've got a test program where the Lua script can access the elements on the main form (such as setting a label caption on my form from within Lua). I was also able to override the default "print" function with my own routine that displays the results to a log window. Looks like the basic operation of Lua is very easy. Tomorrow I'll start getting more serious and start looking into metatable, userdata, and stuff like that.
The DelphiLua code that I found on the net is pretty bad stuff. I'm going to end up just writing it all myself. I gained a lot of experience with this type of programming when I was writing the Scripting Host for zApp a couple of years ago. That gave me a good background on how to access Delphi object properties and methods from an external scripting language.
That's the latest progress report. Everything is going well. Still some big surprises in store for v2.0, but I'm going to wait until I'm further into the development before I talk more about them. |
|
|
|
|
|