Because of my upcoming Lasik surgery and then our trip to Austin for a wedding, I've been spending the last couple of weeks doing CMUD bug fixing instead of working on the MyMuds.com site. I've been fixing bugs during the day, and continuing to read about Ruby on Rails and do the MyMuds design in the evenings.
The more I read about RoR, the more ideas I get for cool stuff I could do with it. For example, I'd just love to put together a bug tracking system that was integrated into the Forums. You would click a button in the forums that would say "Make this post into a Bug report" and it would create a bug entry that was linked to the forum post. Then, when looking at the forum post, instead of having the "Make this a Bug" button, it would have a link to the existing entry in the bug database. Essentially making the forums the discussion area for the bug tracker.
Then, when I fix a bug I could just mark it as fixed in a particular version, and the bug tracker could automatically generate records for the Version History. So instead of manually editing the Version History HTML after each release, it could be automatically generated from the bug database.
Giving Gurus like Taz, Fang, and Vijilante access to the bug tracker would allow them to replace the current Online bug list with the real bug tracker database.
I want to add "tags" to forum posts, and to this blog, so people could search for posts by tags. I want to get rid of the really bad Google search bar on the site and replace it with something better. I want to improve the Knowledge Base so that it doesn't need to reload the entire page when selecting a help topic and so the Table of Contents on the left are loaded into a standard Tree view component.
But no...I never seem to have any time for this kind of stuff. Especially not when I'm in "bug fixing" mode. I did some calculations last night, and they were pretty depressing. I've got about 200 items on my "bug list" (which is stored in an offline program called MyLife Organized...just an easy to use list manager). In a weekly bug fix release, I can fix about 30 issues or so (pretty average judging by the Version History). Of those 30 items, maybe 5-10 don't actually fix the issue completely. Maybe another 5-10 cause side effects resulting in new bugs. During the weekly testing, another 5-10 new bugs are discovered. So, if I'm lucky, I make a "net progress" of 5-10 bugs fixed out of the 200 on my list. At that rate, it will take 20-40 weeks to fix all of the bugs on the list. And that's if I don't spend my time on anything else and don't add any new features that might add more bugs to the list.
On top of that, I need to get the MyMuds.com site launched so that I can release the free versions of CMUD, then release the TeSSH business client, and then start the mapper rewrite. And then there is the integrated chat system that I want to add to CMUD, and the scriptable XML forms (zApp forms), and then the database rewrite.
I guess I should be happy that I've got plenty to do and am never bored. But there just never seems to be enough time to do all of the cool stuff that I'd like. I've tried sleeping less at night, and that just makes me grouchy and inefficient. I've tried working 6 days a week instead of 5, and that just burns me out (and gets Chiara upset).
Some people have told me to hire some programming help, but unfortunately we can't afford that. We are barely making enough sales to pay our own bills each month. And I'm so picky about quality that I'd probably spend more time training someone that I would save from just doing it myself.
So, I guess I don't have a solution. It just comes down to prioritizing tasks and time management. Maybe I'll spend my downtime after my eye surgery to think about this a bit more. Or maybe someone will come up with a brilliant way to add more time to the day.
But it helps to just post this and vent/whine a bit about this issue. It's one of the downsides to having your own business.
I am a bit curious, what parts of cMUD have the most bugs? What kind of bugs do you think are the most common?
It might be helpful to bring a timer with you for a week or so and write down how much time different tasks take. For example if you find that you spend a lot of time waiting for the compiler to finish compiling, then that might be a possible target for optimization.
Joined: 25 Sep 2000 Posts: 23379 Location: Colorado, USA
Posted: Wed Apr 02, 2008 9:58 pm
And, of course, there are also the days like today. Instead of fixing bugs, I've been spending my afternoon dealing with Delphi issues. In the latest version of the DevExpress components, they have added their own "skinning" stuff, which I might eventually enable in CMUD, but not right now (not until they fix more bugs in it). But part of this also involved statically linking a dozen "themes" into the application. Well, I don't want this! It's one of the reasons the new CMUD EXE file is larger than in the past (along with the fact that Delphi 2007 seems to generate more code, and the linked runtime modules are larger).
Anyway, back when I updated DevExpress a couple of weeks ago, it not only installed all of these "skin" packages, but it also added all of them to the "Uses" statement for every form in CMUD!
According to their instructions, I am supposed to go into the Delphi Packages list, which has a checkbox next to each package, and just Uncheck the various Skin packages. Then I can remove the units from the Uses statements in my forms. So I went in and unchecked each skin package. Then I restarted Delphi...all of the skin packages were checked again and loaded!
I don't know what bug in Delphi 2007 is preventing me from disabling certain packages. But it's driving me crazy. I've sent in some support requests, but I've also done some Google searching and can't find the answer. Maybe it's some Vista issue. Delphi is supposed to store the list of disabled packages in the HKEY_CURRENT_USER registry area, and there shouldn't be any problem accessing that key from a non-Admin application. But I don't have any clue why it's not updating this registry key. Makes me wonder if my Delphi installation is corrupted somehow (I also sometimes get weird problems where the Delphi linker can't open a form *.DFM file the first time, but if I just compile a second time, then it links just fine).
Anyway, so that's about 3 hours wasted just dealing with Delphi crap. I had days like this!!
Rorso: To answer your question about what parts of CMUD has the most bugs...It's very hard to answer that. I'd say that about half the 200 items on the list are in the category of "might be fixed but need to be confirmed in the latest version". These are bugs that were reported long ago that may or may-not work in the latest version. It just takes a lot of time to go through and try to reproduce them. But that's the biggest category, and is the stuff at the bottom of my list that I honestly tend to ignore. An online bug tracking system would help with this because then other people could also test them in newer versions.
The biggest category of bugs in the 2.18 public release are related to the Settings Editor and the TreeView problems, which is why v2.20 was focused on rewriting the settings editor. But after that chunk of bugs, the others are just scattered everywhere. Some are obscure parsing issues, some are obscure scope/context issues, some are in the mapper (which I postpone until the mapper rewrite and mostly ignore right now). There is another reasonably large section related to the window docking and toolbar stuff, which also might be already fixed in 2.2x. There are button bugs, string list and database variable bugs, Lua bugs, COM bugs, and just all sorts of stuff.
Honestly, I don't even categorize them right now. Mostly because this simple MyLife Organized task list doesn't really do a very good job with categories. Again, an online bug tracker might help with this.
I don't think a timer would really tell me much. There are just too many things that I do and just writing that down would add even more time. For example, I spend a *lot* of time posting to the forums and answering email support. I probably spend as much time doing that as I do programming. Chiara helps a ton with this and answers all of the non-technical stuff, but that still leaves a bunch that only I can answer.
Chiara isn't a technical/programmer-type person. Her degree is in communications and so she is a great customer support person, and also does all of the business management stuff that she can (S-corp paperwork, tax stuff, etc). Teaching Chiara web design would take years, even if she wanted to learn it, which she doesn't.
I've thought about hiring a web programmer/designer, but again a) no money, and b) I want to understand how the web site works so I can tweak it when necessary, which is already the current problem with the "canned" software such as PHPBB.
Joined: 10 Oct 2000 Posts: 1551 Location: Australia
Posted: Wed Apr 02, 2008 10:26 pm
I don't know if this helps at all, but back in the day when I was using C++Builder (the C-version of Delphi) I had issues with packages being evil, in the end I had to manually go through each of the 'bpr' files for all components/packages along with my project and edit the XML... it seemed to have saved all the packages/etc in each of the bpr files (even in 3rd party bpr files). I think I ended up making some of those 3rd party 'bpr' files read-only after I performed the edit (which makes it annoying to add new classes/forms) because it kept on putting back in these packages it wasn't supposed to (eg the 3rd party component suddenly decided it needed a link to my custom edit control which it never used, but when you go to rebuild that package it was looking for the custom edit control anyway, and if it was a clean compile it couldn't be found so threw up an error and halted the compile process. Really really silly.
Not sure if this is applicable in your situation or not, just that I remember the whole packages thing being really clunky when I was using it.
Joined: 25 Sep 2000 Posts: 23379 Location: Colorado, USA
Posted: Thu Apr 03, 2008 12:07 am
Yeah, that's an extreme tangent, so if you want to talk about that, start a new thread somewhere (although I'm not sure where). But I'm pretty sure that stuff is only for developers who are using the Valve 3D engine for games, so it really has nothing to do with CMUD.
Can't just be for Valve games, since you can get all the Doom and Quake series, plus Civ 4 and a bunch of others that Valve have nothing to do with. It seems as much a sales tool as anything else.
_________________ CMUD Pro, Windows Vista x64
Core2 Q6600, 4GB RAM, GeForce 8800GT
Because you need it for text... ;)
Joined: 18 Oct 2000 Posts: 2733 Location: Atlanta, USA
Posted: Thu Apr 03, 2008 5:55 am
One of the things you could try (or at least think about) is how you can leverage the good will of the gurus and regular forum posters. Quite a few of a regular coders / developers and would be happy to lend a hand to you. I know I would (although RL has been a bit hectic lately.) Think a model similar to how Vijilante helped with the subregex stuff.
The challenge of course identifying some of the stuff that can be chunked off to be picked up; and that won't require you giving away the keys to the CMUD code (which mostly leave the web stuff). It will also need to be stuff that won't take more time to chunk out, and review to meet the Zuggsoft standards than it would if you just did the work yourself. Basically take an open source approach to some of that stuff, with help from gurus and others. Not sure how you'd coordinate it all, at least it's an idea.
Joined: 28 Sep 2000 Posts: 1395 Location: United Kingdom
Posted: Thu Apr 03, 2008 4:08 pm
I think that would be exceptionally difficult to manage and very time consuming unless of course Zugg initially wrote a full specification for the web project and then passed it on to someone who would be willing to be a project administrator who could then pass on deliverables to volunteers. This would ultimately get it done but I suspect very slowly because as you say unfortunately people have other things to attend to. Not something to entirely dismiss and possibly something to trial via a smaller project although what would fit that bill and remain useful to Zugg I'm not sure.
Joined: 26 Jan 2004 Posts: 5155 Location: United Kingdom
Posted: Thu Apr 03, 2008 6:03 pm
If there was going to be a wiki for the knowledge base, editing pages would probably still be restricted. That's not to say that wikis don't have other features that we might find useful, but I wouldn't expect Joe Public to ever be allowed to edit the documentation, for what I hope are obvious reasons.
I wouldn't really say that the knowledge base has been passed on - Gurus have always been able to add and edit articles in the online knowledge base. It was just much more inconvenient to get those changes out of the knowledge base and into the program back in zMUD. Most of the stuff we do for the knowledge base is pretty noddy, adding help files (usually copying and pasting stuff from zMUD and then changing them a little bit) when they've been missed, fixing typos and whatnot. Brand new articles with brand new content are usually left to the guy who actually knows what's going on :P
Joined: 25 Sep 2000 Posts: 23379 Location: Colorado, USA
Posted: Thu Apr 03, 2008 8:26 pm
Also, the part of the Knowledge Base that I was talking about was working with the web interface itself, and not with the content. Right now when you go to the Knowledge base, the ToC "tree" on the left is constructed based upon the topic you selected to show the Parent article, and any Child articles. You cannot view the entire ToC. For example, if you got the help for the %abs function and then wanted to view the help for #MATH you would need to click on the "Function Reference" parent article, wait for that entire page to load, then click on the "Command Reference" article, wait for that page to load, and then finally click on the #MATH article.
What I would rather have is to load the *entire* ToC into a real "TreeView" visual component. This would allow you to expand and collapse topics without changing the topic being viewed so that you can browse the entire KB. Then, when you actually click on an article link, the article text would be loaded in the area on the right without needing to reload the entire ToC tree.
In other words, the page would use a TreeView JavaScript component from a library like YUI or ExtJS, and it would use AJAX to load the article text without reloading the entire page. The tricky part of this is to also properly manipulate the browser "history" so that the Back and Forward buttons still work as expected (something that a lot of AJAX pages don't bother to fix properly).
Yes, it's possible that this particular project is self-contained enough for someone else to help with. In theory I could set up a restricted database user/password to work with the KB and give someone the details of the KB tables and the existing PHP that is being used.
But this is also a pretty low-priority project. Lately I've been wanting a nice online bug tracking system even more. But as I've mentioned, I would want it nicely integrated in the existing forum system (which is already a modified PHPBB2 code). So just getting a standalone bug-tracking system doesn't really do what I'd want it to do. It's possible that it might be easier to integrate an existing bug-tracking system to the forum code and that might be faster than writing an entire bug tracking system from scratch. But I'd need to find something that was really easy to use and customize since I tend to be pretty picky about a lot of details. And any bug tracking system needs to be *fast* and *easy* or else I don't tend to use it (that's why Mantis failed with zMUD). But a nice bug tracking system would benefit myself and the beta testers (and even regular users) more than improvements to the KB would.
And yes, I already looked at FogBugZ in the past and it wasn't what I was looking for. I ended up finding HelpSpot instead, and we are still using that for all of our email support, and that is where the current crash dumps are sent. But it's not very good for the everyday bug tracking that I still use the "MyLife Organized" task list program for.
With the Ruby on Rails playing that I've been doing at night, I actually don't think a good bug tracking system would be that hard to write. But it's always the last 10% of the details that would take a while, and it would side track me for at least a couple of weeks. And I feel like I've been sidetracked enough lately.
Oh, but yes, encouraging the Gurus to post/edit articles in the KB has been a *great* help and is a good example of how I've been able to offload a small amount of work that I was never getting time for in the past.
It's worth reading the article, Zugg, if nothing else. The community features echo your plans with mymuds.com although I don't think they are far enough along in that area to be of help. And it has nothing to do with their 3D engine.
It's worth reading the article, Zugg, if nothing else. The community features echo your plans with mymuds.com although I don't think they are far enough along in that area to be of help. And it has nothing to do with their 3D engine.
Cheers, I thought nobody had looked at it
_________________ CMUD Pro, Windows Vista x64
Core2 Q6600, 4GB RAM, GeForce 8800GT
Because you need it for text... ;)
You cannot post new entries in this Blog You cannot reply to entries in this Blog You cannot edit your posts in this Blog You cannot delete your posts in this Blog