| Categories | |  |
| | |
| Blog Archives | |  |
| | |
| | Blogs | |  |
|
|
|
|
I'm having eye surgery tomorrow to remove a cataract in the right eye. This means that I probably won't be around for the rest of the week. I will be required to wear sunglasses for several days after the surgery. Just wanted to give you guys a heads up. The database corruption wiped out the entry I had on my coding hiatus. So, I'm posting another one. I'm on "vacation" from coding WheelMUD code until this Fall. I will however take any code that is introduced during my hiatus. I already had somebody provide a code patch yesterday. I will add the patch as soon as I deal with the latest hardware problem. I will keep doing webmaster and sysadmin duties for the site. I'm just a bit overwhelmed with real life at the moment. I just moved to a new house, and my kids are here for the summer. Anyways, I'll be around. We had the hard drive that has the user's home drive fail a while back (just before we moved to the new house). Thankfully, I was able to run CHKDSK on it and saved the files. To my dismay, I found that this drive is a Maxtor. Well, I'm sticking to only Seagate hard drives from now on. I really don't care how much cheaper Maxtor is, Seagate drives have only failed on me once. I had a stack of 6 Maxtor drives that had failed in the last 3 years. As you can imagine, I'm pissed off. I went an ordered a 500 gig SATA Seagate drive, and it was delivered to me on Wednesday. To my horror, I didn't realize that the server didn't have any SATA jacks on the motherboard. AAAARRRGGGGHHH! So, now I need to buy a SATA card. Thankfully, there are a few in town. I'll probably pick one up at OfficeMax on my way home from work. This hard drive is the one that contains everybody's Outlook PST file, so I can't get attachments until the new one is installed and the files transferred over from the old one. Well, I had a hair pulling session trying to recover the passwords on this site. Both my admin and host paswords got hosed, so I couldn't just login and fix them.
I first went Googling to find a winform app to help with this problem. Well, all the solutions were just modules to install on your DotNetNuke installation. Since I can't even login as host, this approach is just totally useless. Thankfully, DNN uses the ASP.NET 2.0 Membership Providers.
So, I started with Membership.Provider.RetrievePassword(). Oops, "Bad Data". Crap! I tried other account passwords with the same result. Double-Crap! I modified my little winform app, to now reset passwords. This time I used Membership.Provider.ResetPassword(). Got a new password for host, and I was able to login now. YES! I'm using .NET 2.0 for this winform app.
So if you want to get this working, here is what you need to do:
Make sure that you include the following sections from your DNN's website web.config file: - connectionStrings
- system.web
You only need the membership and machinekeys sections inside system.web.
Import System.Configuration and System.Web into your project. All of the needed API calls will be under Membership.Provider namespace. You'll find a lot of samples on how to use on Google. I started working on "Remote admin GUI - Step 1" issue from the CodePlex issue tracker. The actual url for this issue is this: http://www.codeplex.com/wheelmud/WorkItem/View.aspx?WorkItemId=1840 Here's that it looks like so far: 

This is just a preliminary, so there's a possibility that this is not its final form. We are trying to get this thing to look like Visual Studio and/or SQL Server Management Studio. There's still quite a bit of work to do, but I'm heartened that I got this going. We are using the DockPanel Suite project from SourceForge. The url for this wonderful set of free controls is here: http://sourceforge.net/projects/dockpanelsuite/ I created a new branch called RemoteAdminConsole so that I can keep this separated from the trunk. I did a bit more work with the Windows Service. Here's a screenshot of it when it first starts: 
Here's a screenshot of it running: 
In order to get this working correctly, you'll first need to set WheelMUD.WindowsService as the "Start Project." You do that by right-clicking on the project and selecting "Set As StartUp Project" from the context menu. It should look like this when you do this: 
Once you do this, set the command-line parameter to have "-interactive". Again, right-click on WheelMUD.WindowsService, and select "Properties". Then, click on the "Debug" tab. It should look like this: 
The "-interactive" parameter is important, as it tells the service to run in debug mode. Otherwise, when you try to run it, it will complain about the service not being installed and needed to use InstallUtil.exe. Also, don't forget to change the path to the database to where it is located in your computer. The file name is WheelMUDWindowsService.exe.config. Enjoy! I just put up the beginnings of the "Understanding the source" section of the wiki. Writing documentation has got to be the hardest job in the realm of software development. There's no set way of doing it, and being this close to the code makes it pretty hard to remove all the little things that I take for granted in the code. It's those little assumptions that can either make or break the documentation. One advantage I have is that I have been in a lot of projects where I was the new person. I have been in the situation where I needed to learn the basics of the codebase in a hurry. Mentally, what I have to do is ask myself "If this is a new client with a codebase that I have never seen before, what do I want to know?" Other questions that I ask myself are: - What dependencies does the code have?
- What are the major code groupings?
- How is the code organized?
- How is the code wired together? Interfaces or concrete classes?
I hope that the documentation is helpful to our visitors. If you do see something that you want explained, please do tell us! You can either post a comment to this, post in the forums, or email me at fastalanasa AT wheelmud DOT net I just fixed issue #1912 with revision 88. As usual please get the latest source over here: svn://svn.wheelmud.net/WheelMUDSharp/trunk This turned out to be easier than I expected. This also validates my feelings that this code base is the best WheelMUD code that we have ever written. It would have taken me a great deal of work to have fixed this in previous code bases. Here's a bit of history behind this rewrite... During the lull, previous to this code base, Foxedup went and wrote a very basic MUD server. I was quite burnt out at the time, and I didn't have the energy to code at the time. I let him go ahead and grow that MUD server germ. Man, I'm really happy that I did! He's got an uncanny sense of architecture, which meshes well with my uncanny talent for debugging, database and administration code. We'll turn into Spider-Men if we get any more uncanny.  Previous Page | Next Page |
| |
| |