Introduction

Progress reports and musings from the developers on the current gaming tools.

Moderators: dorpond, trevor, Azhrei

User avatar
LeopoldVonRanke
Giant
Posts: 123
Joined: Thu Jun 17, 2010 2:50 pm
Location: Maine
Contact:

Re: Introduction

Post by LeopoldVonRanke »

Hi Azhrei. So, uh, seeing as to gaming season starting again soon with the summer being over and all that... any chance you could whip out one of these builds and declare it final 4? Simply because that bug with not being able to see the player view is a real bummer... the other bugs, in comparison, seem to be rather small... and we would like to start playing again soon :oops: :P

Cheers

Leo
---------------------------------------------------------------------------
Now using Dolby Axon for RPG sessions.
(Forget Skype. Put your players into a 3D sound environment.)
---------------------------------------------------------------------------

User avatar
Azhrei
Site Admin
Posts: 12086
Joined: Mon Jun 12, 2006 1:20 pm
Location: Tampa, FL

Re: Introduction

Post by Azhrei »

Well, I can. I was going to add the patches that username contributed but I hadn't actually looked at them in context yet. I can do b87 tonight and people can play with it and a b88 can come later, if need be.

We're getting to the point where most of the bugs have work-arounds and I'm fine with that.

Expect a build later tonight. I need to get some dinner first though. 8)

username
Dragon
Posts: 277
Joined: Sun Sep 04, 2011 7:01 am

Re: Introduction

Post by username »

Azhrei wrote:Well, I can. I was going to add the patches that username contributed but I hadn't actually looked at them in context yet. I can do b87 tonight and people can play with it and a b88 can come later, if need be.

We're getting to the point where most of the bugs have work-arounds and I'm fine with that.

Expect a build later tonight. I need to get some dinner first though. 8)
I won't expect my bugfix to be produced soon then. 8) No worries, apparently this is not a blocker by your statements. What about 1.4? Where are the cloistered monks hiding? I only see general remarks floating around so far. I'm willing to join, if bug fixes are not as urgent anymore.

User avatar
jfrazierjr
Deity
Posts: 5176
Joined: Tue Sep 11, 2007 7:31 pm

Re: Introduction

Post by jfrazierjr »

username wrote:What about 1.4? Where are the cloistered monks hiding? I only see general remarks floating around so far. I'm willing to join, if bug fixes are not as urgent anymore.
There are no cloistered monks anywhere. From what I know, there has been no work done on 1.4 outside of Craig doing some technology preview (ie, playing with various things) tests.

In theory, one reason no "real" work has begun on 1.4 yet is the pending change to use git instead of SVN for SCM. My understanding(which could be wrong) is that the team want's to make sure any bug fixes in 1.3 are merged into the 1.4 code, so we are waiting until full final release. On the flip side, since much of the code will be re-written anyway, I wonder what's the point. Plus, there is really no one with solid time to work on things. As you can probably tell from the releases, Azhrei has had a very busy year(he is a travelling contract trainer, or at least that's my understanding of what he does).

One of the main goals of 1.4 is to modularize into an OSGi model, so in theory, if you have something very specific you want to work on, you could always get started on something as long as it's something that could easily be isolated from the rest of the code. A permission manager comes to mind fairly quickly.

With the above said, it is appearing more and more(to me at least) that 1.3 will be the last MT release for a LONG LONG time.
I save all my Campaign Files to DropBox. Not only can I access a campaign file from pretty much any OS that will run Maptool(Win,OSX, linux), but each file is versioned, so if something goes crazy wild, I can always roll back to a previous version of the same file.

Get your Dropbox 2GB via my referral link, and as a bonus, I get an extra 250 MB of space. Even if you don't don't use my link, I still enthusiastically recommend Dropbox..

username
Dragon
Posts: 277
Joined: Sun Sep 04, 2011 7:01 am

Re: Introduction

Post by username »

Just my luck then. I am willing to stop work on my UGMT, because it was getting too much work for a single person (and I didn't have time to do "marketing"). With Maptool I found a tool suitable for my tastes. Once I halfway arrive that tool seems stalled as well.

Are there some white papers or drafts around? I might create a "permission manager" OSGi service, but that needs to be specified. Some kind of agreed interface or anything? And whatever is the "rest of the code"?

Are you sure there aren't any "hidden" mailing lists?

User avatar
Azhrei
Site Admin
Posts: 12086
Joined: Mon Jun 12, 2006 1:20 pm
Location: Tampa, FL

Re: Introduction

Post by Azhrei »

username wrote:Just my luck then. I am willing to stop work on my UGMT, because it was getting too much work for a single person (and I didn't have time to do "marketing"). With Maptool I found a tool suitable for my tastes. Once I halfway arrive that tool seems stalled as well.
Yeah, I think with the economy the way it is, people are less willing to blow off work in order to play! I know that's been my situation; I prefer to make money now so I'll have some if things tank again. Being self-employed has its downsides. :(
Are there some white papers or drafts around? I might create a "permission manager" OSGi service, but that needs to be specified. Some kind of agreed interface or anything? And whatever is the "rest of the code"?
Whitepapers of what? OSGi? I bought the Equinox book and went through the chapters one by one, doing the sample hands-on exercises as I went. I got as far as chapter 5 or 6 (don't remember exactly) before I got sucked away...

Since there hasn't been any serious work on 1.4 yet, we don't have a design document for anything. Craig has played around with some of the problems that have come up in trying to get POJOs from OSGi bundles to persist easily/properly, but I don't know if much else has happened on his end.

If you have a background in OOD then I'd love to see some high-level stuff about how MT could be reorganized. Right now there are zero docs for MT beyond the Javadoc that's in the code (most of which I've added, but it's sporadic as I add it only when I'm touching the code for some reason and I can actually discern what the documentation should say!). 8)
Are you sure there aren't any "hidden" mailing lists?
We have an administrative mailing list. Think of it like minutes for a Board of Trustees meeting in that it's mostly administrative. Technical discussions tend to happen via email between devs. For example, Joe and I did a lot of the IF stuff over email, with messages to the mailing list occasionally. It's been pretty quiet lately though.

Joe can add you to the Testers forum (just ask); I've been posting notes there regarding the latest commits. We don't have a general purpose mailing list for all developers. I'd prefer people use the forums here since it's easier to reference (and links are persistent). Since I've never pruned the forum, everything posted since Day 1 is still here.

User avatar
jfrazierjr
Deity
Posts: 5176
Joined: Tue Sep 11, 2007 7:31 pm

Re: Introduction

Post by jfrazierjr »

username wrote:Are there some white papers or drafts around? I might create a "permission manager" OSGi service, but that needs to be specified. Some kind of agreed interface or anything? And whatever is the "rest of the code"?
Yes, there is plenty of articles on OSGi modeling out there. By rest of the code, i mean the MapTool code. In an OSGi World, you want to avoid any cross pollution... So... given:
blah blah blah
MapTool Code:

Code: Select all

import net.rptools.securitymanager;
import net.rptools.securitymanager.permissions;

public class foo
{
    private boolean foovar;
    
    public void foo()
    {
        securitymanager secMan = new securitymanager();  //this is wrong
        foovar = secMan.hasPermission(permissions.candestroyworld);  // this is wrong too!!!
    }
}
 
So in this case, the foo class has to know something about the internal workings of the security manager, namely the permissions enum... this is bad since then we can't switch out the concrete securitymanager without making sure that all of the places where our code calls hasPermission use the correct passed parameters.

Even if we fix that problem, we STILL have a requirements problem in that we instantiate securitymanager directly. In an OSGi model, instead we would actually use a type of factory and the factory could return one(or possibly none) of many different possible security manager classes. Then switching out would be easy. This is accomplished in OSGi, by using files(xml based) which point to the concrete classes to be used that are grouped into "bundles"(jar files with some additional metadata).

For a security manager, I would probably go with something like this in the implementation:

secMan.hasPermision(string permissionName);

or perhaps
secMan.hasPermission(string permissionCategory, string permissionName);


Ultimately, the calling classes really only need to know the exposed method names and return types. In my thoughts, the security manager should also not need to know or care about what class is calling it either, so instead of:

secMan.hasPermission(MapToolToken tok, string permissionName);
or
secMan.hasPermission(MapToolMap map, string permissionName);

use the permissionCategory as above.



well.. at least that's how I initially would think of such a thing....





username wrote: Are you sure there aren't any "hidden" mailing lists?
Of course there are... but of course the point of hidden is so that not everyone could see it... :P Heck, I don't even know if "I" need to be be on that list at this point. Plus, as Azhrei said, there really is not that much going on... it seems that everyone is super busy IRL and it's pretty much all admin stuff anyway.
I save all my Campaign Files to DropBox. Not only can I access a campaign file from pretty much any OS that will run Maptool(Win,OSX, linux), but each file is versioned, so if something goes crazy wild, I can always roll back to a previous version of the same file.

Get your Dropbox 2GB via my referral link, and as a bonus, I get an extra 250 MB of space. Even if you don't don't use my link, I still enthusiastically recommend Dropbox..

username
Dragon
Posts: 277
Joined: Sun Sep 04, 2011 7:01 am

Re: Introduction

Post by username »

Whitepapers of what? OSGi? I bought the Equinox book and went through the chapters one by one, doing the sample hands-on exercises as I went. I got as far as chapter 5 or 6 (don't remember exactly) before I got sucked away...
No, of MT 1.4. OSGi are legion... Not that I did anything but read the first primers. But more on that later.
If you have a background in OOD then I'd love to see some high-level stuff about how MT could be reorganized. Right now there are zero docs for MT beyond the Javadoc that's in the code (most of which I've added, but it's sporadic as I add it only when I'm touching the code for some reason and I can actually discern what the documentation should say!). 8)
But this is 1.3 code only, right? I do have some background and experience, though not with the OSGi modelling.
Joe can add you to the Testers forum (just ask); I've been posting notes there regarding the latest commits. We don't have a general purpose mailing list for all developers. I'd prefer people use the forums here since it's easier to reference (and links are persistent). Since I've never pruned the forum, everything posted since Day 1 is still here.
Sometimes you'd like to exchange a few words, without having the world pry in.
By rest of the code, i mean the MapTool code.
I realized that much:-) Regarding cross pollution: you need to find out, what is intended interfacing and what is unintended. Or, what is actually the business aspect, and what is technical byproduct.

I could go on talking a lot about using strings instead of enums, etc.. This IF abstraction is currently on vogue, because of the flexibility it gives you. The downturn of this is that bugs manifest later. You can use injections/annotations and the like instrumentation for a security manager. But that all boils down to work at "deployment" time.

Whatever. The point why I won't keep on talking is that new technology always puts a hurdle up for new developers. There is also a lot of "convention over coding" going around. But what if the new guy isn't aware of your conventions? While I am always keen on learing new technologies nd/or methodologies, I like to keep the focus on the "business".

I'll see what I can come up with as a White Paper for Azhrei. It will obvisouly be based on what I know from the code and what I use from Maptool. Considering that I started all of this only a couple of weeks ago, this will not be all that much. Which of course will guarantee the necessary terseness for a white paper :-)

username
Dragon
Posts: 277
Joined: Sun Sep 04, 2011 7:01 am

Re: Introduction

Post by username »

HW failure. So much for the time I had to spare...

User avatar
Azhrei
Site Admin
Posts: 12086
Joined: Mon Jun 12, 2006 1:20 pm
Location: Tampa, FL

Re: Introduction

Post by Azhrei »

Ugh, those are never fun. :(

I had a drive fail in my fileserver a few weeks ago while my brother was visiting (another IT guy). Fortunately it was on my fileserver (!) -- I just popped out the 1TB drive, stuck another in, and told the software RAID to update the new drive. :)

The whole thing took about 15 minutes (my drives are not hot swap) and the machine had been up and running just fine for three days before I noticed the failure. (On the one hand it's nice that it didn't intrude on my use of the server. On the other hand I'm going to need to update my notification procedure to be more "in your face" about such things. ;))

And this is why very little has happened with MT lately... Lifus Interruptus. 8)

username
Dragon
Posts: 277
Joined: Sun Sep 04, 2011 7:01 am

Re: Introduction

Post by username »

The last time I had a HD failure was in the days when I upgraded a 540M and 730M to a 10G drive. After a week the drive died silently. Wel, on warranty I got the second. It took another week to die. After that my brother (another IT guy) and I meticulously analysed the system and saw that the power supply had minor spikes, which apparently didn't worry the old, traditional drives, but everything (then) fancy. So I needed a new power supply, but they wouldn't sell any that fit into my old case. So I needed a new case... Turned out I needed everything new. Worst outage ever, it took weeks to get over.

This time it was only the grahics, that went blank. Complicated by the fact that I couldn't leave home that day and other suitable graphic cards "hanging around" here wouldn't fit, I was effectively blind for a few hours. Shuffling hardware until it worked out again.
The whole thing took about 15 minutes... And this is why very little has happened with MT lately.
I'm not going to ask how that fits together 8)

Anyway, I starting to write up a few things. I guess, it would be useless to ask for the OSGI analysis results, in order not to undo efforts?
Do you have a spot in some Wiki, where the results should go?

User avatar
Azhrei
Site Admin
Posts: 12086
Joined: Mon Jun 12, 2006 1:20 pm
Location: Tampa, FL

Re: Introduction

Post by Azhrei »

username wrote:
Azhrei wrote:The whole thing took about 15 minutes... And this is why very little has happened with MT lately.
I'm not going to ask how that fits together 8)
Heh-heh, yeah; taken like that it doesn't sound strange. What I meant was that RL has been like that for several weeks now, with little annoyances popping up whenever I get a few minutes to breath. For example, my office server that has my business accounting on it had some updates to it recently and the desktop sharing that my wife uses from her iMac to this Linux machine broke. I spent an hour or so figuring out that one. Then the network card wouldn't do gigabit, only 100MB, so more troubleshooting there. In the mean time, my GoogleCalendar interface from iCal broke and for some reason the calendar on my MacBookPro would update, but the one on my iOS5 iPhone wouldn't. I still haven't figured that one out.

When you're self-employed you already have very little free time so having these little things crop up just really puts a damper on nights and weekends. :|
Anyway, I starting to write up a few things. I guess, it would be useless to ask for the OSGI analysis results, in order not to undo efforts? Do you have a spot in some Wiki, where the results should go?
Hm. AFAIK the only OSGi work so far was Craig playing with object persistence. That's a fairly small (but critical) part of MapTool so if you choose to stay away from that area -- or be vague about it -- that should work well.

There are a few things that I'd like to see documented because I don't really understand all of the interactions: the image management process (the lazy loading I think I understand, but there's no overall doc to show the classes and how they interact) and the event handling system (I'd like to see a class design and maybe a few scenario designs; it's complicated) to start. MapTool needs a centralized timer system as well so that components can register for global timing events; no such framework exists currently.

I have a project license for some software that is supposed to reverse engineer source code and produce various diagrams (mostly class diagrams, but also interaction diagrams and some software metrics). However, the installation of this software is rather involved -- it requires a server process with a fairly lengthy install/config and then client processes for visualizing the results. We can talk further about that if you want to try it out; send me an email.

username
Dragon
Posts: 277
Joined: Sun Sep 04, 2011 7:01 am

Re: Introduction

Post by username »

I sent you a draft of what I envision as a white paper.

It needs to be joined by some deeper statements on specific issues. But as I said, I am pretty new to MT and also do not know what Craig played around with. It wasn't all that hard to be vague about persistence. I made some general remarks on how I think things should be handled.

Regarding the current design on classes: as far as I understood the code, there orginally was a concept, but as time went by things were heaped onto objects that they weren't designed to do. Pretty much standard SW aging. That's where probably many bugs lie: event handling subroutines or states being strewn about and interfering whith each other. At least when I stumbled across the code events were generated in unexpected places. There's no clear separation between GUI code and business code. Something like Model-view-controller would have helped a lot.

So just as you can't unveil a cloistered developer team, I cannot unveil a hidden design. (Mind you that this is from someone that has prowled through the code only for a couple of weeks and "solved" one or two bugs.) My personal opinion is to design this pretty much from scratch and take those pieces that look worth salvaging in the course of action.

Again, it will be interesting to know, how many people "join the cause" now and how that intersects with those that know more than me (and you?)

username
Dragon
Posts: 277
Joined: Sun Sep 04, 2011 7:01 am

Re: Introduction

Post by username »

I tried to run the trivial OSGI examples in eclispe. When I need to select an EE, it finds none. I have JDKs 1.5 and 1.6 from both Sun and OpenJDK. None seems to provide a JRE that can be selected. Stopped dead. Haven't found any hints yet.

username
Dragon
Posts: 277
Joined: Sun Sep 04, 2011 7:01 am

Re: Introduction

Post by username »

Okay, I give up for now. I spent a day on this. No clue from the internet whatsoever. All I managed to do was update eclipse and install loads of plugins. Now maptool is broken. The build.xml has an error in the first line: "Default target 'dist' does not exist in this project" and "Target 'setup' does not exist in this project".

I'll take a look at JavaFX, because I misinterpreted that as browser stuff originally. Maybe that works.

Post Reply

Return to “Developer Notes”