Sunday, April 23, 2006 11:08 PM
by
Kawigi
KawigiEdit 2.0 Beta!
I think I told some people Saturday morning before SRM 299 that I'd upload a beta of KawigiEdit 2.0 if I didn't have any problems with it during the match. Well, things worked smoothly for me, as they usually have, so get your beta here!
A few things have been moved around, and I mainly want to know where it's rough around the edges or confusing, and where things just plain don't work. I hope this will be the most stable version of KawigiEdit ever, but then again, I always hope that, and I think that 1.0.3 and 1.0.6 have been the most stable ones so far (but people have spent a lot more time pounding on 1.1.0, and the biggest bug in it is that the problem timer crashes in European locales (this is fixed in 2.0, of course).
Aside from fixing a couple of bugs and all that, about 80% of KawigiEdit has been rewritten this time. Just some of the big things:
- The entire command/UI infrastructure has been reinvented. Actually, what's really happened is there was no infrastructure before, and now there is one :-) No more ad hoc UI stuff glued to some code somewhere. In theory now, commands and settings could be run in some automated fashion (with a little effort, such an idea could even be useful). Also, the UI can be completely customized fairly easily now - you'd have to edit a few XML files and either repackage KawigiEdit with your versions or just manually change the ContestApplet config file to point to it (I can't remember exactly how, but I know it's possible. The problem is that there's no UI yet for editing the UI :-)). There's a few little bits I want to add to the UI infrastructure eventually, but for the moment, I think it's sufficient for what it needs to do, which is make it easy for me to add buttons :-)
- The editor part itself has been completely restructured. Some of the same code is still there, but almost all of it has been moved to different places. This is a result of making a command infrastructure and making every keystroke recognized by KawigiEdit its own command and then making the keystrokes map to commands instead of entries in a big ol' if/else statement. The part that does the syntax highlighting is still basically untouched, though.
- Snippets are stored in the same general XML format as the UI, so it's easier to edit with a text editor than the old Java serialized crap.
- Testing code is generated in a different text editor than your code skeleton. This makes it easier to take out testing code (i.e. - you don't have to do it), and it still allows you to edit it on the off chance that KawigiEdit generates it wrong. Also, compiler output and program output come out of separate tabs now (I don't think KawigiEdit 1 was like that).
- The watermark is blue now. I don't know if that's better or worse, but I was thinking about doing some kind of cool logo in blue tones, but I never did.
- You need Java 1.5 to use KawigiEdit 2. The new command infrastructure pretty much requires it, and I've changed a bunch of the code to use generics where appropriate.
- No more challenge tools. Sorry, I haven't used them myself in more than a year, and I'm not sure anyone else does, either (although I hear them mentioned in the forums occasionally). Plus, I haven't checked to see if they even work since TC's website redesign.
- Did I mention I fixed the problem timer? All you international competitors who got a gray screen when you tried to open a problem in KawigiEdit, or everyone who had to turn it off but wanted it there can now rejoice.
- It works standalone now. You don't even need to have ContestApplet.jar in the classpath. The idea was to make it easier to test changes you make locally without being on TC, and also give you a familiar environment for the GCJ if you want it. It may be slightly less polished, but all of the codepaths are the same where possible. I've been thinking about also making a setting to work better with SPOJ, but I'm NOT going to support all the languages that SPOJ does :-)
- Testing code generation hopefully is more fixed than broken. It now handles VB characters correctly I think, and should consistently generate valid longs and doubles in all languages even in exceptional cases. If you find any problem for which KawigiEdit generates wrong testing code in any language, TELL ME. Emailing me at kawigi at yahoo would be appropriate, or just blab about it on the plugin forums. Sooner or later, I'll set up a real wiki on the KawigiEdit homepage that will have more robust backups that won't get vandalized as permanently.
- Templates can no longer include custom tags and executable code generators. It sounded like no one used it, and it's not the easiest, most dependable piece of code to maintain, or for that matter, port. For most people, I think the template architecture will look the same (with maybe the names of one or two tags changed to make it consistent between languages).
Basically what I'm hoping is that a few people who are spending some time in the practice rooms will take some time trying this out for me and letting me know if they think it's ready for prime time. If you think you fit that description, get yours today!