Sunday, August 31, 2008

Geosolutions coverage tools in Udig / JGrass

Today I ported the Geosolutions coverage tools into Udig, but throught the JGrass side. That has several reasons, which I explain at the complete report link.

Thursday, August 28, 2008

Flock on

One of the common things we are asked is "how to make dots move on a map". Graham Davis has been nice enough to put together a little demo.

Click on the above image to open the Flock Demo

The source code for this demo can be found on trunk here:
- net.refractions.udig.tutorials.tracking

The rough idea is as follows:
  1. Place your "Domain Model" on the map blackboard; complete its own events and all the stuff you would normally do.
  2. Create a "Map Graphic" that checks the map blackboard - if it finds the domain model objects it can draw them; and listen to them if they are the kind of thing that moves around.
  3. If you needed to make any custom tools you could also check the map blackboard and poke away at your domain model objects directly

IRC Logs August 28th

  1. Rendering Metrics
  2. Composite Renderer with Dynamic Overlay
  3. Cape Town uDig community edition
  4. "SelectionListener" naming conflict
Session Start (freenode:#udig): Thu Aug 28 08:07:11 2008
[08:07] *** Initial topic: (Link:
[08:07] *** #udig: gdavis_ simboss moovida emily_g Jesse_Eichar dassouki JustinIPS KevinIPS acuster hbullen chorner ozzicle
[08:07] *** #udig was created on Wed Apr 23 17:58:51 2008.
[08:08] Jesse_Eichar: he left 10 minutes ago and said he'd be here in 10 minutes
[08:08] Jesse_Eichar: so that makes it quite soon  :)  10 more minutes  ;)
[08:12] *** jgarnett has joined #udig.
[08:12] jgarnett: morning
[08:12] Jesse_Eichar: ah
[08:12] jgarnett: (you guys better not of waited for me)
[08:12] moovida: morning
[08:12] Jesse_Eichar: We did  :)
[08:12] jgarnett:  :-P
[08:12] Jesse_Eichar: what was the topics again?
[08:12] jgarnett: shall we grab the agenda topics from email ...
[08:12] Jesse_Eichar: 1) Rendering Metrics
[08:12] Jesse_Eichar: 2) Composite Renderer with Dynamic Overlay
[08:13] Jesse_Eichar: 3) Cape Town uDig community edition
[08:13] Jesse_Eichar: 4) "SelectionListener" naming conflict
[08:13] Jesse_Eichar: Who wants to take RenderingMetrics?
[08:14] jgarnett: I can start ... but I am starting by asking if everyone has read the wiki page?
[08:14] jgarnett: outlining the plan
[08:14] jgarnett: (this change needs to happen - and your renderers will break so it is important)
[08:14] jgarnett: wiki page: (Link:
[08:14] *** CIA-43 has joined #udig.
[08:15] jgarnett: to be clear we want to do this work today.
[08:15] Jesse_Eichar: I like this much better than our original
[08:15] moovida: aha  :)
[08:15] jgarnett: we asked last week; and Jesse shot down my rough plan ... so here is a better one.
[08:15] moovida: ok, it doesn't seem to be too heavy to change, right
[08:16] jgarnett: Jesse if you can skip to the comments you can see where I am still having trouble.
[08:16] Jesse_Eichar: Resolution scares me a bit
[08:16] jgarnett: moovida it is *almost* a return to the origional design; this time learning from our mistakes (ie making "default" measurements available as constants)
[08:17] * moovida was meaning it would not be hard to get there for other renderers, as for example JGrass  :)
[08:17] jgarnett: you understand the need for resolution? Perhaps a better name... it was called getAccuracy() last time but the javadocs got into precision and nobody would read them.
[08:17] Jesse_Eichar: I understand
[08:17] jgarnett: moovida - you are correct - it would not be hard.
[08:17] Jesse_Eichar: the only part is that It can be very hard to calculate in many cases.
[08:17] Jesse_Eichar: So you should detail what happens if say:
[08:18] Jesse_Eichar: you know it is more than can be shown but you don't know how much more.
[08:18] Jesse_Eichar: I'd put .5
[08:18] jgarnett: Jesse_Eichar++ - that is why I hope having constants for people to return (if it is too hard to calculate) will be useful?
[08:18] jgarnett: So should we have a couple more constants?
[08:18] Jesse_Eichar: Resolution doesn't seem to have constants
[08:18] jgarnett: oh - for resolution there are no constants yet ... I will add them.
[08:18] Jesse_Eichar: the others do and I like
[08:18] Jesse_Eichar: right
[08:19] Jesse_Eichar: you can leave that spec
[08:19] Jesse_Eichar: with a couple of constants for those cases
[08:19] jgarnett: So the style blackboard evaulation sectino
[08:19] jgarnett: does not seem to work for me
[08:19] Jesse_Eichar: I see that.  It is harder I agree.
[08:19] jgarnett: see the comments for my difficulty; and my suggestion.
[08:20] Jesse_Eichar: So for style
[08:20] Jesse_Eichar: we need 2 axes
[08:20] Jesse_Eichar: 1.
[08:21] Jesse_Eichar: how good it can look when fully styled
[08:21] Jesse_Eichar: and 2.  How well it will look given that not all the information is there.
[08:21] Jesse_Eichar: My problem is that I may want the "pretty" renderer to be used as long as it can if it is prettier just use its defaults.
[08:22] Jesse_Eichar: That is why I think we need a preference system to control the renderers as well.
[08:22] Jesse_Eichar: does that make sense?
[08:23] Jesse_Eichar: Just because not all the info is on the BB doesn't mean I don't want to use it... It just means that I didn't feel like taking the time to set all the preferences.
[08:23] Jesse_Eichar: (or it could mean that)
[08:25] Jesse_Eichar: ...
[08:25] jgarnett: Emily had the same question yesterday
[08:25] jgarnett: The question is really "how can I dodge all this stuff"
[08:25] jgarnett: and isOptimized() is not a good stable answer.
[08:25] Jesse_Eichar: no kidding
[08:26] Jesse_Eichar: well how about this
[08:26] jgarnett: I would a) not like people to dodge this stuff
[08:26] Jesse_Eichar: we have 2 sets of constants
[08:26] jgarnett: b) recommend a new style blackboard entry - "preferred renderer"
[08:26] Jesse_Eichar: one for each dimension
[08:26] jgarnett: if we *have* to provide a dodge.
[08:26] Jesse_Eichar: then a preference for overrides
[08:27] Jesse_Eichar: sound good?
[08:28] Jesse_Eichar: ...
[08:28] Jesse_Eichar: anyone?
[08:28] jgarnett: Jesse I was hoping Emily was watching the meeting
[08:28] jgarnett: I was updating the page based on your last feedback.
[08:28] Jesse_Eichar: ping emily_g
[08:28] Jesse_Eichar: you following?
[08:28] emily_g: I'm paying attention - I'm just thinking  :)
[08:28] Jesse_Eichar: k
[08:29] emily_g: My concern would be that it might be to complicated for somebody to bother to implement - which sounds like it was the problem jody was having the first time around
[08:29] Jesse_Eichar: That is right
[08:29] jgarnett: (I also am scared with your suggestion about showing users that different renderers exist)
[08:30] jgarnett: I was more thinking the "dodge" was something programmers can use.
[08:30] Jesse_Eichar: how can a programmer do it?
[08:30] emily_g: my initial reaction is why do we need two metrics ?  Do we really care how well it can look if it is fully styled if it can't actually fully style itself?
[08:30] Jesse_Eichar: Because most renderers have defaults
[08:30] Jesse_Eichar: Just because some font isn't on the BB doesn't mean it can't render
[08:30] Jesse_Eichar: it just means that it has to use a default.
[08:31] jgarnett: aside: Even if the renderer does not have defaults; the StyleContent can make a *good* default based on the GeoResource.
[08:31] Jesse_Eichar: right
[08:31] emily_g: yes
[08:31] jgarnett: perhaps we should ask the renderers not to come up with there own defaults? So the functionality of default style is not split across classes?
[08:31] emily_g: but couldn't that be wrapped into the how well it can style
[08:32] emily_g: if it knows it has defaults then it can style well
[08:32] Jesse_Eichar: sure
[08:32] jgarnett: thinking
[08:32] emily_g: if it doesn't have defaults and the styles aren't available then it can't style?
[08:32] Jesse_Eichar: I don't have a problem with that myself
[08:32] jgarnett: For me it is really how well they pay attention to the users wishes
[08:32] Jesse_Eichar: but that more or less means a can or can't style
[08:32] Jesse_Eichar: not a scale
[08:32] Jesse_Eichar: Lets walk through a scenario.
[08:33] jgarnett: when they grab a default it does not enter into the decision process - ie it is magic not under user control.
[08:33] jgarnett: please.
[08:33] Jesse_Eichar: its hard to come up with
[08:33] Jesse_Eichar: so we have 2 renderers
[08:33] Jesse_Eichar: your example jody
[08:33] Jesse_Eichar: csv B&W
[08:33] jgarnett: (note we have been working with two senarios outlined on that page; CSVRenderer vs ColorCSVRenderer and BasicWMSRenderer vs TiledRenderer)
[08:33] Jesse_Eichar: and csv Color
[08:33] Jesse_Eichar: so we open a map
[08:34] Jesse_Eichar: both renderers have the same value really
[08:34] Jesse_Eichar: no I lie
[08:34] Jesse_Eichar: color probably has better because it could provide a different color per polygon
[08:34] Jesse_Eichar: or maybe not if it does what BasicFeatureRenderer does
[08:35] Jesse_Eichar: at the top.
[08:35] Jesse_Eichar: we drop on a CSV layer
[08:35] Jesse_Eichar: which is chosen
[08:35] Jesse_Eichar: probably the color
[08:35] Jesse_Eichar: for the WMS vs Tiled
[08:36] Jesse_Eichar: no ignore wms for now
[08:36] Jesse_Eichar: so I add a style
[08:36] Jesse_Eichar: and again the csv color is used
[08:36] Jesse_Eichar: when is B&W used?
[08:36] emily_g: in the csv example if there is a color on the style blackboard we want the color renderer; however if there is no color on the style blackboard do we want the select the default one of the colored one?
[08:36] jgarnett: I would like it used when the color is removed from the style blackboard.
[08:37] jgarnett: I would like the default one.
[08:37] jgarnett: for the training materials
[08:37] emily_g: but what if the color one has a good "default" value
[08:37] jgarnett: I want people to be able to see the system switch renderers based on the color being there or not.
[08:37] jgarnett: It is supposed to be a simple example showing how the system works.
[08:37] Jesse_Eichar: Jody... I don't really see the value beyond  a tutorial
[08:37] Jesse_Eichar: this is a trivial example
[08:37] jgarnett: it is.
[08:38] Jesse_Eichar: lets not mess with the system for that.  Lets come up with a better example.
[08:38] jgarnett: do we need to break out NamedStyle vs SLD for WMS Renderers? Or can we continue...
[08:38] Jesse_Eichar: lets try something that we can do now
[08:38] jgarnett: okay make Color a requirement for the ColorCSVRenderer
[08:38] jgarnett: and please continue?
[08:39] Jesse_Eichar: I'm trying to think of another renderer you might want
[08:39] Jesse_Eichar: for the CSV
[08:39] Jesse_Eichar: maybe one that draws a background
[08:39] Jesse_Eichar: if a image is set on the BB
[08:39] Jesse_Eichar: as a BackgroundStyleContent?
[08:39] Jesse_Eichar: so if that is there then the background renderer would be chosen
[08:40] Jesse_Eichar: or another idea
[08:40] jgarnett: Okay let me throw two ideas:
[08:40] Jesse_Eichar: we have a renderer that can render some SLD very efficiently
[08:40] jgarnett: - we had an example made in the course where a cache was placed on the layer blackboard
[08:40] jgarnett: - or throw font into the mix and only render the labels if the font is avaialble
[08:40] jgarnett: (or let them set the column that the labels come out of - a real need actually)
[08:41] Jesse_Eichar: I think I have it
[08:41] Jesse_Eichar: We have a renderer that can't render labels but is "quick" (for argument sake) in the tutorial you can say that that is the idea
[08:41] Jesse_Eichar: and another that can render labels but is slower?
[08:42] Jesse_Eichar: but then you could get into a situation where you have an even weighting and you flip flop randomly...
[08:42] Jesse_Eichar: arg
[08:42] Jesse_Eichar: I don't know
[08:42] Jesse_Eichar: we need to move on
[08:42] emily_g: I don't think the style metric was supposed to determine the speed of rendering
[08:42] emily_g: I think we were hoping one of the other metrics would cover that
[08:43] emily_g: but we can move on
[08:43] Jesse_Eichar: I agree emily 
[08:43] Jesse_Eichar: ok what is 2 again?
[08:43] Jesse_Eichar: 2) Composite Renderer with Dynamic Overlay
[08:43] jgarnett: Jesse if I do the approach outlined in the comments will you cry?
[08:43] Jesse_Eichar: gulp that is another painful one
[08:43] jgarnett: (because I want to get this started)
[08:44] Jesse_Eichar: did you just update it?
[08:44] Jesse_Eichar: For the most part it is not too bad.
[08:44] Jesse_Eichar: I say emily can decide :D
[08:44] jgarnett: fair enough
[08:44] jgarnett: okay we will update the page and implement.
[08:44] jgarnett: moving on ...
[08:45] jgarnett: wiki page for 2)
[08:45] jgarnett: (Link:
[08:45] Jesse_Eichar: 2) Composite Renderer with Dynamic Overlay
[08:45] Jesse_Eichar: [5:43p]
[08:45] Jesse_Eichar: jgarnett
[08:45] Jesse_Eichar: :
[08:45] Jesse_Eichar: yep
[08:45] jgarnett: Jesse I think this is mostly questions based on lack of understanding.
[08:46] jgarnett: gdavis_ is the man with the questions; I am just getting in his way.
[08:46] Jesse_Eichar: So right now the ViewPane or what ever it is called
[08:46] jgarnett: (because I do not know the answer)
[08:46] jgarnett: ViewPane? First I have heard of it...
[08:46] Jesse_Eichar: What is it called
[08:46] Jesse_Eichar: ViewportPane
[08:46] Jesse_Eichar: I think
[08:46] Jesse_Eichar: anyhow
[08:46] jgarnett: is that from the MapEditor? I am constructing a GISWidget and would like to know if the ViewportPane is the same thing.
[08:47] Jesse_Eichar: It is what you get when you use a Context object with tools
[08:48] Jesse_Eichar: There are two implementations right now: ViewportPaneJava and ViewportPaneSWT but the Java one is not fully functional because it doesn't work on Mac
[08:48] Jesse_Eichar: It is what the MapEditor creates
[08:48] Jesse_Eichar: and sets on the Rendermanager
[08:49] Jesse_Eichar: so...
[08:49] jgarnett: shall we run through the questions?
[08:50] Jesse_Eichar: sure
[08:50] Jesse_Eichar: go
[08:50] jgarnett: is this the answer to the first question on this page
[08:50] jgarnett: ie "Who is in charge" ?
[08:50] jgarnett: I found a difference between the diagram here ((Link: and the text.
[08:50] jgarnett: It looks like a RenderExecutor is created for each renderer?
[08:51] Jesse_Eichar: that is right
[08:51] jgarnett: but now it sounds like ViewportPane is in charge?
[08:51] Jesse_Eichar: no
[08:51] Jesse_Eichar: it just displays
[08:51] jgarnett: And renderExecutor is some utility class.
[08:51] jgarnett: so who is driving; who does the composition and listens to all the renderers go ... starting and stopping them as needed.
[08:52] jgarnett: RenderManager?
[08:52] Jesse_Eichar: It is mainly the RenderExecutorComposite  I think I called it just to confuse things
[08:52] Jesse_Eichar: It is the RenderExecutor for the CompositeRenderer
[08:52] Jesse_Eichar: it drives
[08:52] Jesse_Eichar: it triggers the update every 1 second or so
[08:52] Jesse_Eichar: it decides when to give up
[08:52] jgarnett: so that is the "timer"
[08:53] Jesse_Eichar: yet
[08:53] Jesse_Eichar: yes
[08:53] gdavis_: does our diagram on the whiteboard look correct then?
[08:53] jgarnett: that is started when a renderer sends an event?
[08:53] Jesse_Eichar: I don't really understand it
[08:54] Jesse_Eichar: First Render manager can say render:
[08:54] Jesse_Eichar: REC tells CompositeRenderer to go
[08:54] jgarnett: aside: I am going to copy the diagram from Section 3.7 of the framework recomendations pdf to the page; I would like to figure out how much of that work has been done.
[08:54] Jesse_Eichar: it tells all its contained RE to go
[08:54] Jesse_Eichar: they inturn tell each renderer to go
[08:55] Jesse_Eichar: each second REC tells the CompositeRenderer to create a composited image and send it to the ViewportPane
[08:55] Jesse_Eichar: the viewportPane displays the image and then paints any valid draw command on top
[08:56] Jesse_Eichar: That is the basic idea
[08:56] Jesse_Eichar: each second the REC checks to see who is done
[08:56] Jesse_Eichar: If all are done it sends the update request and stops
[08:57] Jesse_Eichar: the main confusion right now is that a renderer can at any time decide it wants to start back up.
[08:57] Jesse_Eichar: It sends a RenderRequest event
[08:57] Jesse_Eichar: and that triggers its RenderExecutor to start
[08:57] gdavis_: ok
[08:57] Jesse_Eichar: as well as the REC
[08:58] Jesse_Eichar: however in this case the REC will not tell all renderers to start
[08:58] gdavis_: so if we want encapsulate all that as  a "background" that can stay relatively static when the user has the map in one spot, and then have a dynamic overlay that is updating frequently, how would that fit in?
[08:58] Jesse_Eichar: That basically has to be in the ViewportPane
[08:59] Jesse_Eichar: because compositing all the layers and displaying them can take much of a second
[08:59] Jesse_Eichar: but the ViewportPane can update dozens of times a second
[08:59] gdavis_: this 1 second, is it a static arbitrary number that is defined somehwere?
[08:59] Jesse_Eichar: I think so
[08:59] gdavis_: we tried finding it earlier without much luck
[09:00] jgarnett: aside: page update; made a note of "RenderExecutorComposite" for later.
[09:00] Jesse_Eichar: RenderExecutorComposite line178 on 2.2
[09:00] Jesse_Eichar: it is in the ncrementalUpdate method
[09:00] Jesse_Eichar: a wait period of 400 MS
[09:01] gdavis_: ah ok
[09:01] Jesse_Eichar: it should really depend on  how long it takes to create the composited image
[09:01] jgarnett: I would kind of like to update that 400 MS based on what is going on.
[09:01] Jesse_Eichar: not be hard coded like that
[09:01] Jesse_Eichar: can't jody
[09:02] jgarnett: explain?
[09:02] Jesse_Eichar: On many computers it can't update every 400 ms
[09:02] Jesse_Eichar: A wait period of 400 ms means it renders about 1 time per second
[09:02] jgarnett: perhaps I am looking for a different number.
[09:02] Jesse_Eichar: as you can see that it already a massive load on the prcessor
[09:02] jgarnett: once we are down to a dyanmic renderer and a composite renderer
[09:02] jgarnett: we should be able to update many more times that 1 per second?
[09:03] Jesse_Eichar: Yes
[09:03] Jesse_Eichar: but it is
[09:03] Jesse_Eichar: maybe
[09:03] jgarnett: so I kind of want to make the delay based on what the composition step involves...
[09:03] Jesse_Eichar: A bit part is the conversion from a large AWT image to a large SWT image
[09:03] jgarnett: can you talk about that? I went looking through the code
[09:03] jgarnett: and was shocked to see for loops still in use?
[09:04] jgarnett: I thought we carefully made a block of memory that could be handled by both?
[09:04] Jesse_Eichar: It depends on the image type
[09:04] jgarnett: (perpahs the for loop was only for SWT to AWT ... when I was doing the "Draw2DRenderer")
[09:04] Jesse_Eichar: In this case it should not be a for loop
[09:04] Jesse_Eichar: If it is an arbitrary Rendered image then we don't know if it is in memory and  much loop
[09:05] Jesse_Eichar: however if we know it is a BufferedImage and of a certain byte order then we can do it pretty fast
[09:05] Jesse_Eichar: but we don't have the conversion for all image types
[09:05] jgarnett: I think we can arrange for it not to be an arbitrary rendered image; ie the result of the compostite renderer should be a "composition" of all the child layers into a single "good" image?
[09:06] Jesse_Eichar: I tried to make sure we do do that
[09:06] Jesse_Eichar: and we did at one point
[09:06] Jesse_Eichar: but you should verify again now.
[09:06] Jesse_Eichar: So you need it to be a AWT Renderer for the Dynamic rendere I take it?
[09:06] jgarnett: understood
[09:07] jgarnett: gdavis where are we in the list of questions?
[09:07] jgarnett: jesse: I have placed "Section 3.7 Rendering" on the wiki page
[09:07] jgarnett: if you refresh
[09:07] jgarnett: I would like your comment on the two diagrams there
[09:07] gdavis_: I think we covered them
[09:07] jgarnett: they are the best visualization I have of what is going on at run time...
[09:07] jgarnett: ... if they are already covered I will double back to the logs later.
[09:07] gdavis_: maybe 1 more
[09:08] gdavis_: What is a Renderer+RenderContext called?
[09:08] Jesse_Eichar: There is no JAI
[09:08] gdavis_: "It looks like a CompositeRenderer keeps a number of child Renderers; I assume it owns the RenderContext for the children and uses them to draw as needed? What is one of these child entries called?"
[09:08] jgarnett: So those diagrams are useless? I think I want to make a useful one by the time we are done here ...
[09:09] Jesse_Eichar: Those diagrams are probably useless, not to mention confusing
[09:09] Jesse_Eichar: It is just a for loop
[09:09] Jesse_Eichar: drawing to the same image
[09:09] Jesse_Eichar: I talked to simone at the FOSS4G and he decided it was as good a way as any
[09:09] Jesse_Eichar: as long as you are smart about the parameters
[09:09] Jesse_Eichar: And nice and simple
[09:10] gdavis_: so the viewportpane basically owns a parent render manager, is that the top level here?
[09:10] Jesse_Eichar: I think the Rendermanager adds a listener to the RenderExecutorComposite
[09:10] Jesse_Eichar: everytime an update, started or done event comes along it tells the ViewportModel
[09:10] gdavis_: render manager has a renderexecutorcomposite, which has a composite renderer, which in turn has various renderers/executors
[09:11] Jesse_Eichar: the ViewportModel is mainly just a listener
[09:11] Jesse_Eichar: it owns nothing
[09:11] Jesse_Eichar: Right
[09:11] gdavis_: so the rendermanager is where we want to create a new overlay renderer
[09:11] gdavis_: and add a listener to the viewportmodel
[09:11] Jesse_Eichar: The final image is the image contained inthe RenderContext of the CompositeRenderer ( and since the executor and render share the same context it is the image in the REC )
[09:12] gdavis_: it sounds like the whole renderexecutorcomposite and its children can remain as they are for our purposes?
[09:12] Jesse_Eichar: I would say the CompositeRenderer is the place
[09:12] Jesse_Eichar: The REC is responsible for timing
[09:12] Jesse_Eichar: and the CR is responsible for compositing
[09:12] gdavis_: right, ok
[09:13] jgarnett: aside: we still have some agenda topics and should move on.
[09:13] Jesse_Eichar: The RenderManager is responsible for providing access to these objects
[09:13] Jesse_Eichar: yes
[09:13] Jesse_Eichar: (Sorry andrea)
[09:13] Jesse_Eichar: 3)
[09:13] *** acuster has signed off IRC ("Leaving").
[09:13] gdavis_: ok tjhanks
[09:13] Jesse_Eichar: 3) Cape Town uDig community edition
[09:13] moovida:  :)
[09:13] Jesse_Eichar: go go go
[09:13] moovida: no problem
[09:14] moovida: I just wanted to have comments on what we plan to do
[09:14] jgarnett: I would like to use Jira to keep organized
[09:14] moovida: if we plan to go on joint
[09:15] moovida: jgarnett: that is ok for me
[09:15] jgarnett: Do we have an idea on what you are demoing / work shopping etc...
[09:15] Jesse_Eichar: sorry got to run we are way over
[09:15] Jesse_Eichar: vera lost somea...
[09:15] moovida: oh, Jesse, I needed your comment
[09:15] jgarnett: gak!
[09:15] Jesse_Eichar: sorry andrea
[09:16] Jesse_Eichar: ummm
[09:16] moovida: well, we'll talk
[09:16] jgarnett: okay I can try and run the rest of the meeting.
[09:16] moovida: no problem
[09:16] jgarnett: moovida how many days/weeks do you have left?
[09:16] Jesse_Eichar: talk and I will read email tonight and in the morning
[09:16] moovida: Jesse_Eichar: ok
[09:16] jgarnett: And what do both you and Jesse plan to do?
[09:17] jgarnett: workshop? yes/no
[09:17] * moovida counting
[09:17] Jesse_Eichar: I have 2 workshops
[09:17] jgarnett: okay so that is a lab setting; directed at users?
[09:17] Jesse_Eichar: yes
[09:17] jgarnett: perhaps based on the stable branch and showing them the new stuff on trunk?
[09:17] moovida: Jesse_Eichar: 2 labs
[09:17] jgarnett: Or let them try trunk at the end?
[09:17] moovida: but I saw only one?
[09:18] moovida: do you have both Jesse?
[09:18] Jesse_Eichar: I I have 2
[09:18] moovida: we have a workshop
[09:18] Jesse_Eichar: as far as I know
[09:18] Jesse_Eichar: um
[09:18] Jesse_Eichar: I want to show trunk at one
[09:18] moovida: hmmm, I didn't see one in the list
[09:18] Jesse_Eichar: but not the other
[09:19] Jesse_Eichar: so maybe one got cancelled?  wierd
[09:19] Jesse_Eichar: ok really got to go :P
[09:19] moovida: Silvia also was asking
[09:19] moovida: so check yourself, hope we are wrong
[09:19] Jesse_Eichar: ok
[09:19] moovida: Alright jgarnett
[09:19] *** Jesse_Eichar has left #udig.
[09:19] moovida: I have 4 weeks
[09:19] moovida: 1 workshop at Cape Town
[09:20] moovida: and a school right after that
[09:20] jgarnett: I just see one for Jesse - "There and back again"
[09:20] jgarnett: "a school" ?
[09:20] moovida: for professional engineering made with public admin and university
[09:20] *** CIA-43 has signed off IRC ().
[09:20] moovida: a course
[09:20] jgarnett: okay
[09:20] moovida: the university makes
[09:20] moovida: and we got through with making use udig+jgrass
[09:21] moovida: but it is the first time and that will spread usig+jgrass under professionals
[09:21] jgarnett: okay!
[09:21] moovida: so I need to be sure that what we use is ok
[09:21] jgarnett: so you have started using trunk
[09:21] jgarnett: and we are assembling jiras that matter
[09:21] moovida: yes, and I like that
[09:22] jgarnett: as sceen on this page: (Link:
[09:22] moovida: I do not understand a thing
[09:22] moovida: but for sure someone will explain
[09:23] jgarnett: The list is of bugs marked as "Fix For" UDIG 1.2.M0"
[09:23] moovida: if many of you are on trunk for a while now.
[09:23] jgarnett: I am hoping you will tag bugs that matter with that so we can have them ready.
[09:23] moovida: why does noone report evident bugs we found?
[09:23] jgarnett: please continue.
[09:23] jgarnett: because some of them are very new
[09:23] moovida: jgarnett: thanks, now I see why the last didn' come
[09:23] moovida: oh, really
[09:24] jgarnett: the (Link: bug on wrong feature layer style visualiation
[09:24] moovida: ok, because at some point I thought we were alone  :)
[09:24] jgarnett: is pretty much caused by our recent work on SLDParser
[09:24] jgarnett: you can ask emily_g for details.
[09:24] moovida: aha, now world is better
[09:24] moovida: because there are not so many bugs that are critical
[09:25] moovida: there is just one I can't explain, when the renderer goes mad on shapefiles
[09:25] moovida: and it doesn't display anything and freezes udig
[09:25] jgarnett: I do not think I have read that bug report
[09:26] moovida: didn't file it because I can't explain it
[09:26] jgarnett: I test with the sample data from walkthrough 1
[09:26] jgarnett: do you know how to reproduce it?
[09:26] moovida: it seems random to me now and no error
[09:26] moovida: no... that's the problem
[09:26] jgarnett: Jesse has completly rewritten shapefile datastore
[09:26] jgarnett: (last year)
[09:26] moovida: and it needs udig to reastart
[09:26] jgarnett: so it is different code than is being run than on the stable branch.
[09:27] moovida: jgarnett: how much could the new rendering metrics break? I mean, are we ok to get with that to CapeT?
[09:30] jgarnett: thinking
[09:30] jgarnett: you know your RenderingMetrics implementation?
[09:30] jgarnett: do you extend an abstract base class?
[09:31] jgarnett: If so we should be able to arrange for it not to break too badly.
[09:31] jgarnett: I would plan to spend 30min to 1 hour filling in the constants
[09:31] jgarnett: asking us questions
[09:31] jgarnett: and tuning?
[09:31] jgarnett: but the actual "fix" should only take a couple of moments.
[09:31] moovida: I implement the interface
[09:31] jgarnett: my hope is you will give us good feedback or discover something we did not catch in the meeting today.
[09:32] jgarnett: thinking
[09:32] moovida: I don't see big big problems on the new changes
[09:32] jgarnett: I have no wish to break people
[09:32] jgarnett: so what about breaking them hard now?
[09:32] moovida:  :)  I know that
[09:32] jgarnett: changing it from an interface from to an Abstract base class?
[09:32] jgarnett: so we do not suffer such "thrashing" in the future?
[09:33] moovida: sound like a plan
[09:33] jgarnett: emily_g ?
[09:33] emily_g: yes?
[09:34] jgarnett: use of abstract base class for RenderingMetrics yes/no ?
[09:35] jgarnett: moovida is that it for the topic about capetown?
[09:35] emily_g: yes - there is an AbstractRenderMetrics
[09:35] moovida: no, it was some more
[09:35] jgarnett: we will all fix bugs on trunk as needed; and try and use Jira and the mailing list to keep from going insane.
[09:35] jgarnett: okay please continue.
[09:35] moovida: but since only Jesse and me will be udig in SA
[09:36] moovida: Ok, if you tell me I can bother you guys with bugs and they get solved, I feel much more confortable
[09:36] emily_g: I don't know about removing the interface and only having an abstract class though
[09:36] moovida: I want to setup a build mechanism with Jesse's stuff
[09:37] moovida: Jody, you think that could be run on refractions server to have a snapshot version of udig trunc?
[09:37] jgarnett: I cannot help you with that; but it sounds like he bundled something up for you to try.
[09:37] jgarnett: moovida I think it could; but we have no staff to put on it.
[09:38] jgarnett: we have run build servers in the past; and given that our server seems to be down ever couple of days
[09:38] jgarnett: I do not want to try.
[09:38] moovida: ok, because I can also make up the build system
[09:38] *** kartben1 has joined #udig.
[09:38] jgarnett: (aside: not sure if you caught the good news - we have managed to determine some ports to block - so hopefully the evil bot will not kick over our server)
[09:38] moovida: assuming it works
[09:38] jgarnett: 4) "SelectionListener" naming conflict
[09:39] moovida: btu then I have bandwidth problems to make it accessible
[09:39] jgarnett: I understand the limitation.
[09:39] jgarnett: let me finish up the agenda here ...
[09:39] jgarnett: This is one of the points mentioned here - (Link:
[09:39] jgarnett: In the udig code base Vitali has added a "SelectionListener" interface
[09:39] jgarnett: that has a name conflict with the eclipse SelectionListener interface
[09:40] jgarnett: so I am going to rename it.
[09:40] jgarnett: I think only Vitali's code will be broken after this (as not many others have used this api)
[09:40] jgarnett: my understanding is that this is a single component of uDig
[09:40] moovida: ok, but that should not give much prblems, right
[09:40] jgarnett: that watches the workbench selection
[09:40] jgarnett: and remembers the last ... Layer ?
[09:41] moovida: ? hmmm, no idea
[09:41] moovida: don't think I used that
[09:41] jgarnett: But yeah; this amounts to failing a code review; when we make new interfaces we should not conflict with existing Eclipse Facilities (or risk confusing people).
[09:41] jgarnett: that is it for me.
[09:41] moovida: ok

Wednesday, August 27, 2008

The day the jgrass console got even groovier

The JGrass console engine is now able to understand groovy and beanshell.
Just add at the begin of your script:
# LANGUAGE = groovy
and you are done.

See an example of a groovy closure:

Scripting JGrass and GRASS commands will be real fun now.

Thursday, August 21, 2008

IRC Logs August 21th

Agenda: 0) update 1) 1.1.0 checklist 2) random questions 3) macosx jre with gdal

[5:02pm] jgarnett: mornign!
[5:02pm] jgarnett: type mumble - good way to start the day
[5:02pm] moovida: afternoon
[5:02pm] Jesse_Eichar: hey jodz
[5:02pm] jgarnett: I got maybe 30-40 mins?
[5:02pm] Jesse_Eichar: hi andrea
[5:02pm] Jesse_Eichar: yep
[5:02pm] jgarnett: So let us get moving
[5:03pm] moovida: yupp
[5:03pm] moovida: hi Jesse
[5:03pm] Jesse_Eichar: ok
[5:03pm] Jesse_Eichar: agenda?
[5:03pm] Jesse_Eichar: 0) Update
[5:03pm] jgarnett: 1) 1.1.0 checklist
[5:04pm] Jesse_Eichar: 2) random 1.2 questions
[5:04pm] Jesse_Eichar: Andrea?
[5:04pm] jgarnett: I kind of thought Emily would be here to ask about rendering so (2) there is perfect.
[5:04pm] • moovida has nothing to add
[5:04pm] Jesse_Eichar: ok
[5:04pm] Jesse_Eichar: 0)
[5:04pm] Jesse_Eichar: update
[5:04pm] Jesse_Eichar: I have got 1.2 building both SDK and application
[5:04pm] Jesse_Eichar: woot!
[5:05pm] Jesse_Eichar: Bugs galore no doubt
[5:05pm] emily_g joined the chat room.
[5:05pm] moovida: wow, one day you have to tell me how you do
[5:05pm] Jesse_Eichar: but that's ok
[5:05pm] Jesse_Eichar:
[5:05pm] moovida: great, so we can start to work also with Cape Town vision
[5:05pm] moovida: and people test the application
[5:05pm] Jesse_Eichar: that's why I've been working so hard on it.
[5:06pm] Jesse_Eichar: I want 1.2 to have a milestone ready.
[5:06pm] moovida: good Jesse!
[5:06pm] Jesse_Eichar: In my mind (now) a 1.2 wouldn't be ready without a build
[5:06pm] Jesse_Eichar: That's it for me really.
[5:06pm] jgarnett: Jesse you know I have a problem with SDK releases right; especially on trunk.
[5:06pm] jgarnett: It makes me worried that we will all lean on you too much and you will not be able to get your own work done.
[5:07pm] jgarnett: For the refractions projects right now this will not be a danger; we are working on uDig itself.
[5:07pm] Jesse_Eichar: I am setting up a 32 bit linux build target
[5:07pm] jgarnett: but you know what I mean right?
[5:07pm] Jesse_Eichar: so all you will have to do is unzip it on to a linux machine
[5:07pm] Jesse_Eichar: and type:
[5:07pm] Jesse_Eichar: mvn
[5:07pm] Jesse_Eichar: and it will build apps and sdk
[5:07pm] Jesse_Eichar: I am trying to make it idiot proof
[5:07pm] Jesse_Eichar: ...
[5:07pm] moovida: wooot!!
[5:08pm] moovida: that will be a funky one
[5:08pm] jgarnett: ... oh I see. So if we can make our own SDK release
[5:08pm] Jesse_Eichar: as far as autobuilds can be idiot proof
[5:08pm] Jesse_Eichar: right
[5:08pm] jgarnett: then it will not be like we are leaning on you. Nice.
[5:08pm] Jesse_Eichar: I dislike being such a hot spot even more than you
[5:08pm] jgarnett:
[5:08pm] moovida: come on babes, I know you like that
[5:08pm] moovida: lol
[5:08pm] Jesse_Eichar: Oh
[5:08pm] jgarnett: jesse is the pretty one not me. I just dance.
[5:08pm] Jesse_Eichar: 1 more thing
[5:09pm] Jesse_Eichar: I am adding a .qualifier to all features and plugins
[5:09pm] Jesse_Eichar: so my released plugins will all be timestamped.
[5:09pm] Jesse_Eichar: No more confusion even if I forget to update the about box
[5:09pm] Topic changed to "0) update 1) 1.1.0 checklist 2) random questions" by jgarnett.
[5:09pm] Jesse_Eichar: updates from you guys?
[5:10pm] jgarnett: sure
[5:10pm] jgarnett: Jesse I tried sending a list of things from the training course ... did you see the email?
[5:10pm] jgarnett: The only user facing one is the lack of an updatesite
[5:10pm] jgarnett: so the walkthrough 1 is broken.
[5:10pm] jgarnett: But - everything else worked -
[5:11pm] Jesse_Eichar: which update site
[5:11pm] Jesse_Eichar: the "main" update site?
[5:11pm] Jesse_Eichar: or the community?
[5:11pm] jgarnett: The one in walkthrough 1; the community plugin you download (ie "Jody")
[5:11pm] jgarnett: does not work
[5:11pm] jgarnett: because the renderer API changed.
[5:11pm] jgarnett: We need to republish it
[5:11pm] Jesse_Eichar: right I haven't updated it yet
[5:11pm] jgarnett: I fix the code for a month now ...
[5:11pm] Jesse_Eichar: I will try to do so this week
[5:11pm] jgarnett: ... are there instructions on publishing to the update site?
[5:11pm] jgarnett: the update site is needed before we release; or we need to remove that section
[5:11pm] jgarnett: from the walkthrough
[5:12pm] Jesse_Eichar: I don't really know how to be honest...
[5:12pm] Jesse_Eichar: The one time I tried to update (not clobber) I failed
[5:12pm] jgarnett: okay that is the last thing *needed* before we release 1.1.0. We have press releases; looks like we can make builds.
[5:12pm] moovida: you can export directly the site from eclipse
[5:12pm] Jesse_Eichar: only axios has managed to do an update
[5:12pm] moovida: it will create everything needed
[5:12pm] moovida: is that what you mean?
[5:12pm] Jesse_Eichar: I will probably clobber the update site and ask axios to republish their plugins
[5:12pm] jgarnett: Could we ask Axios to do an update then?
[5:12pm] Jesse_Eichar: No
[5:12pm] Jesse_Eichar: you export the site
[5:13pm] jgarnett: um axios has started there own update site I thought ...
[5:13pm] Jesse_Eichar: but that assumes you have been building the site on the same machine for ever so that all plugins for all versions are there
[5:13pm] Jesse_Eichar: I will kill axios's updates
[5:13pm] Jesse_Eichar: and lose all historical updates (IE for earlier RCs)
[5:13pm] Jesse_Eichar: I don't care about previous RCs too much
[5:13pm] Jesse_Eichar: but I do care about axios
[5:13pm] jgarnett: And I should care about 1.0.6
[5:14pm] Jesse_Eichar: haha
[5:14pm] Jesse_Eichar: that was dead a LONG time ago
[5:14pm] jgarnett: okay can we make this the priority? There is nothing else needed for uDig 1.1.0 for users.
[5:14pm] jgarnett: I have some more entries on the list here ...
[5:14pm] jgarnett: refractions SelectionListener vs eclipse SelectionListener; no reason for confusion we should rename ours (it does not appear to be referenced anywhere in the code base)
[5:14pm] jgarnett: can I kill this class? It is not referenced anywhere?
[5:14pm] jgarnett: Or can we rename it...
[5:15pm] Jesse_Eichar: I have to get the update site up that is high priority
[5:15pm] Jesse_Eichar: I don't know about Selection Listener
[5:15pm] Jesse_Eichar: I will search for Vitali's document
[5:15pm] Jesse_Eichar: to see how he uses it
[5:15pm] Jesse_Eichar: I gather they have a project starting at some point
[5:16pm] Jesse_Eichar: so we shouldn't kill it in ignorance.
[5:16pm] jgarnett: Jesse if it is too hard (the update site) make a new one for 1.1.0?
[5:16pm] jgarnett: then 1.0.6 will not notice or care.
[5:16pm] Jesse_Eichar: I think 1.0.6 is toast already any how. There have been so many changes that I don't think it survived it
[5:17pm] Jesse_Eichar: I will make a replacement and email axios
[5:17pm] jgarnett: - We found one bug (of the try/catch kind) for IResolveAdapter handling - making it hard to debug when IResolveAdapter does not have target provided. Basically everything stops working.
[5:17pm] Jesse_Eichar: bd
[5:17pm] jgarnett: This one is fairly serious; and I thought I patched it last month. But it does not seem to be in the code base making me sad.
[5:17pm] Jesse_Eichar: bad I saw that
[5:18pm] jgarnett: Basically when a couple teams in the class left out a field (the target class)
[5:18pm] jgarnett: udig never recovered.
[5:18pm] Jesse_Eichar: I am not sure how to fix it.
[5:18pm] jgarnett: no reason to be so brittle.
[5:18pm] Jesse_Eichar: I agree
[5:18pm] jgarnett: even just a try catch in the loop of checking extensions would do it.
[5:18pm] Jesse_Eichar: At least not with out good eror messages
[5:18pm] jgarnett: normally you send a message to the log; and throw out that entry from your extension point.
[5:19pm] jgarnett: Here is one for Emily and Jesse
[5:19pm] Jesse_Eichar: yep
[5:19pm] Jesse_Eichar: I agree
[5:19pm] jgarnett: In the course when you make a renderer - the Renderer interface is internal - making everyone unhappy implementing it
[5:19pm] moovida: /me silently adds to agenda 3) macosx jre with gdal
[5:19pm] jgarnett: can this be changed?
[5:20pm] Jesse_Eichar: not for 1.1
[5:20pm] Topic changed to "0) update 1) 1.1.0 checklist 2) random questions 3) macosx jre with gdal" by jgarnett.
[5:20pm] jgarnett: fair answer.
[5:20pm] jgarnett: We have an actual API contract violation.
[5:21pm] jgarnett: IGeoResource superclass was not resolving to an IGeoResource as expected by
[5:21pm] jgarnett: CatalogUI.title method; all the udig IGeoResource implementations perform this
[5:21pm] jgarnett: function so we never noticed the mistake
[5:21pm] Jesse_Eichar: ah
[5:21pm] jgarnett: So I need to add a line to IGeoResource and we should be good.
[5:21pm] jgarnett: Now one final one ... that is hard for me to explain.
[5:21pm] Jesse_Eichar: sounds good
[5:21pm] jgarnett: RenderMetrics.canStyle
[5:21pm] jgarnett: is used to record how many entries on a style blackboard
[5:21pm] jgarnett: a renderer can handle.
[5:21pm] jgarnett: We make a renderer in the course; that expects a Color.
[5:22pm] jgarnett: if the color is there it votes +1
[5:22pm] jgarnett: if it is not it gets +0 votes.
[5:22pm] jgarnett: Another renderer (the default one that does not need a color)
[5:22pm] jgarnett: always votes +0 (because it does not care about the style blackboard)
[5:22pm] jgarnett: so I need a way for renderers
[5:22pm] jgarnett: to indicate "Hey! I do not have the information I need to draw!"
[5:23pm] Jesse_Eichar: there is
[5:23pm] Jesse_Eichar: canRender or some such
[5:23pm] jgarnett: That is at the RenderMetricsFactory level
[5:23pm] Jesse_Eichar: it takes it out of the running completely
[5:23pm] jgarnett: so that would make "checking the style blackboard" something that
[5:23pm] jgarnett: two classes are responsible for ...
[5:23pm] Jesse_Eichar: ah
[5:23pm] jgarnett: ... is that cool? Or is it just confusing.
[5:23pm] Jesse_Eichar: I see
[5:24pm] jgarnett: Now I used to have a system where; mr default renderer could basically vote +0.5
[5:24pm] jgarnett: but I no longer have that. We simplifed to just checking the style blackboard. And this problem is a result.
[5:24pm] jgarnett: Can we think of anyway to recover the situtation?
[5:24pm] Jesse_Eichar: I think originally I made the decision that a renderer must be able to use defaults if the style isn't on the BB
[5:25pm] jgarnett: Okay if that is the case; then it is true. Both the default CSVRenderer and the ColorCSVRenderer *could* work.
[5:25pm] CIA-42: UDig: jeichar * r30645 udig/ (100 files in 92 dirs): updated version numbers and small updates for headless build
[5:25pm] jgarnett: but how to we make it so the CSVRenderer is chosen?
[5:25pm] Jesse_Eichar: isOptimised
[5:25pm] Jesse_Eichar: no good way right now
[5:26pm] Jesse_Eichar: that is what I used to get ShpRenderer over Basic
[5:26pm] Jesse_Eichar: But what we need is preference or some sort of external declaration that knows something about the system
[5:26pm] Jesse_Eichar: I don't see how it can be properly done in all cases without an "overlord"
[5:26pm] jgarnett: yeah but that is just a "switch" - isOptimized() is.
[5:27pm] Jesse_Eichar: yeah I know
[5:27pm] jgarnett: I need some kind of flexability; I know I can make this work by having RenderMetricsFactory do a check of the style blackboard.
[5:27pm] jgarnett: That will be a bit weak.
[5:28pm] Jesse_Eichar: thinking...
[5:28pm] Jesse_Eichar: I don't remember the API good enough right
[5:28pm] jgarnett: ha ha
[5:28pm] Jesse_Eichar: but lets move on
[5:28pm] jgarnett: what about a "base" number.
[5:28pm] jgarnett: to start counting from.
[5:28pm] Jesse_Eichar: I don't understand?
[5:28pm] jgarnett: CSVRenderer coudl have 0.5
[5:28pm] Jesse_Eichar: That is sillz
[5:28pm] jgarnett: ColorCSVRenderer (that has a requirement) could start at 0.
[5:28pm] Jesse_Eichar: unless it is a preference
[5:28pm] Jesse_Eichar: that is what I mean by "overlord"
[5:29pm] Jesse_Eichar: some mechanism for setting up preferences that knows about all the plugins
[5:29pm] jgarnett: I thought of making ColorCSVRenderer (who has a requirement)
[5:29pm] jgarnett: start at -1
[5:29pm] Jesse_Eichar: for example if I wrote ccvs
[5:29pm] jgarnett: and then they would both end up at 0
[5:29pm] Jesse_Eichar: and you wrote colorcvs
[5:29pm] Jesse_Eichar: how would we know
[5:29pm] jgarnett: (0 would basically mean "I can function")
[5:29pm] jgarnett: and then we could choose the renderer that recognized the most entries on the style black board)
[5:29pm] Jesse_Eichar: then how could the users choose which one they prefers
[5:30pm] jgarnett: we could have a method; getNumberOfRequiredStyleEntry
[5:30pm] Jesse_Eichar: But I recognize lots of styles doesn't mean I do a good job...
[5:30pm] Jesse_Eichar: does it?
[5:30pm] jgarnett: if they put a Color on the blackboard they get ColorCSVRenderer
[5:30pm] Jesse_Eichar: I mean it is a way to game the system
[5:30pm] jgarnett: if they take it off they get the default CSVRenderer.
[5:30pm] jgarnett: oh just a sec.
[5:30pm] Jesse_Eichar: but is that desirable?
[5:30pm] jgarnett: Jesse I am not looking for a way to game the system.
[5:30pm] jgarnett: I want a way to indicate - ColorCSVRenderer has a *requirement*
[5:31pm] jgarnett: and I have no way to do that right now.
[5:31pm] jgarnett: okay thanks for listening to the problem.
[5:32pm] Jesse_Eichar: I know I am looking farther ahead... because I have not yet had a design that I like..
[5:32pm] Jesse_Eichar: I thought there was a way...
[5:32pm] Jesse_Eichar: wait...
[5:32pm] Jesse_Eichar: I need to look something up.
[5:32pm] jgarnett: I think for uDig 1.1.0 I will do the check at RenderMetricsFactory.
[5:32pm] jgarnett: And we can explore this issue on trunk?
[5:32pm] jgarnett: ie that will give me a solution that runs.
[5:32pm] jgarnett: oh one more thing
[5:32pm] jgarnett: there is no way to clear an entry in the StyleBlackboard
[5:33pm] jgarnett: you can clear the whole thing; but not remove a single entry.
[5:33pm] Jesse_Eichar: can you use the
[5:34pm] Jesse_Eichar: ProjectBlackboardConstants.Map__PREFERRED_RENDERER?
[5:34pm] Jesse_Eichar: can you not set it to null or something?
[5:34pm] Jesse_Eichar: (definately a problem if not)
[5:34pm] Jesse_Eichar: looks like there are some constants you can set to game the system.
[5:34pm] Jesse_Eichar: bad long term solution
[5:35pm] Jesse_Eichar: might work for now
[5:35pm] JustinIPS22 left the chat room. (Read error: 110 (Connection timed out))
[5:36pm] jgarnett: yeah I neer really want to use the PREFERRED_RENDERER thing; that breaks my idea of the design.
[5:36pm] jgarnett: let us move on.
[5:36pm] jgarnett: 2) random questions
[5:36pm] KevinIPS left the chat room. (Read error: 104 (Connection reset by peer))
[5:36pm] jgarnett: On trunk the layer menu now says something like "{0}"
[5:36pm] jgarnett: that has been around in the source code for a week or so; I see acuster noticed it in the SDK.
[5:37pm] Jesse_Eichar: I saw the emails
[5:37pm] Jesse_Eichar: sounds like an easy fix to me
[5:37pm] Jesse_Eichar: or not...
[5:37pm] Jesse_Eichar: it all looks ok to me
[5:37pm] Jesse_Eichar: odd
[5:38pm] jgarnett: I think this happened when some translations came forward from 1.1.x
[5:38pm] KevinIPS joined the chat room.
[5:39pm] moovida: isn't the mapping 0 and 2
[5:39pm] Jesse_Eichar: ah
[5:39pm] moovida: and the about 0 and 1?
[5:39pm] Jesse_Eichar: and in the props the mapping is 1 and 2
[5:40pm] moovida: exactly
[5:40pm] jgarnett: Can I ask someone with blog access to post a link to this:
[5:40pm] jgarnett:
[5:40pm] Jesse_Eichar: well some one ca figure it out
[5:40pm] jgarnett: I was trying to get gdavis to do it; but he has not managed to get in the blog for some reason.
[5:40pm] Jesse_Eichar: this is not stressing me right now
[5:41pm] jgarnett: So here is a good question
[5:41pm] jgarnett: what is stressing you?
[5:41pm] jgarnett: (I got stressed with Emily's questions about removing EMF from RenderCreator and friends.)
[5:42pm] Jesse_Eichar: cool
[5:43pm] Jesse_Eichar: Just looking at how much time I have in front of me is stressing.
[5:43pm] Jesse_Eichar: ok waht is next
[5:43pm] Jesse_Eichar: lets talk 3)
[5:43pm] Jesse_Eichar: macosx jre with gdal
[5:43pm] moovida: wait, the shortcuts
[5:44pm] Jesse_Eichar: shortcuts?
[5:44pm] moovida: were ar emy loved shortcuts on trunk
[5:44pm] moovida: ar emy == are my
[5:44pm] Jesse_Eichar: ah
[5:44pm] moovida: pan select
[5:44pm] moovida: p and s and z
[5:44pm] jgarnett: right!
[5:44pm] Jesse_Eichar: yeah I don't know why they broke
[5:44pm] Jesse_Eichar: they have been broken for as long as we've had a trunk
[5:44pm] Jesse_Eichar: I did a quick check and didn't see anything obvious
[5:44pm] Jesse_Eichar: ...
[5:44pm] jgarnett: that broken when we upgraded trunk to eclipse 3.3
[5:45pm] moovida: oh, I see
[5:45pm] Jesse_Eichar: maybe the key configuration wasn't selected in the ini file
[5:45pm] jgarnett: but 1.1.0 is now using Eclipse 3.3.
[5:45pm] Jesse_Eichar: yep I think that is is
[5:45pm] moovida: yeah, right
[5:45pm] jgarnett: so I think we just need to check the stable branch against trunk.
[5:45pm] moovida: and 1.1 has them
[5:45pm] Jesse_Eichar: the plugin_customization.ini in net.refractions.udig
[5:45pm] Jesse_Eichar: is completely different from 1.1
[5:45pm] Jesse_Eichar: we should copy it
[5:46pm] Jesse_Eichar: it might fix that problem
[5:46pm] jgarnett: (I have to go - I will read the rest of the logs later)
[5:46pm] moovida: ok, have you also experienced the problem Silvia had with data import wizard
[5:46pm] Jesse_Eichar: ok
[5:46pm] moovida: ok, ciao jgarnett
[5:46pm] Jesse_Eichar: which one is that?
[5:46pm] jgarnett left the chat room. ("ChatZilla 0.9.83 [Firefox 3.0.1/2008070208]")
[5:46pm] moovida: if you try to import something through the wizard
[5:47pm] moovida: and select data
[5:47pm] moovida: the next wizard page is an empty composite
[5:47pm] Jesse_Eichar: which type of data?
[5:48pm] moovida: you never come to the data page
[5:48pm] moovida: import -> other
[5:48pm] moovida: on next my wizard is empty
[5:48pm] moovida: were before the list of data types was
[5:48pm] moovida: usually we do not notice because we DnD
[5:48pm] Jesse_Eichar: ah import, not add layer
[5:48pm] moovida:
[5:49pm] moovida: yes, import
[5:50pm] Jesse_Eichar: nope
[5:50pm] Jesse_Eichar: I haven't really been on trunk
[5:50pm] moovida: yours works fine?
[5:50pm] Jesse_Eichar: so I am not a good one to ask
[5:50pm] Jesse_Eichar: I never import
[5:50pm] CIA-42: UDig: jeichar * r30646 udig/plugins/net.refractions.udig/plugin_customization.ini: trying to get key bindings back
[5:50pm] moovida: ahh, ok
[5:50pm] Jesse_Eichar: just DND or add layer
[5:51pm] moovida: well, we'll get that later on than, it is not critical
[5:51pm] moovida: I can debug it at some point
[5:51pm] moovida: about 3) ?
[5:51pm] moovida: or something else?
[5:52pm] Jesse_Eichar: lets do 3
[5:52pm] Jesse_Eichar: I have to go soon
[5:52pm] moovida: me also
[5:52pm] moovida: don't know about 3
[5:53pm] Jesse_Eichar: haha
[5:53pm] moovida: I helped to compile the gdal and ecw and mrsid and kakdu
[5:53pm] moovida: in Bolsena
[5:53pm] Jesse_Eichar: I mainly want to get all the imageIO libs
[5:53pm] moovida: but then never cared about it any more
[5:53pm] Jesse_Eichar: so I can create JREs
[5:53pm] Jesse_Eichar: for the headless builld
[5:53pm] moovida: so I do not know what to do
[5:53pm] moovida: ahhh, hold on
[5:53pm] moovida: you need the native libs?
[5:53pm] Jesse_Eichar: I need:
[5:53pm] Jesse_Eichar: I think that is all I need
[5:54pm] Jesse_Eichar: for lin32
[5:54pm] Jesse_Eichar: 64
[5:54pm] Jesse_Eichar: and osx
[5:54pm] Jesse_Eichar: (I assume PPC is screwed?)
[5:54pm] moovida: I think both 64 and ppc are
[5:54pm] Jesse_Eichar: 64 too?
[5:54pm] Jesse_Eichar: lin64?
[5:54pm] Jesse_Eichar: why?
[5:55pm] moovida: Not screwed, but I don't know if anyone built them
[5:55pm] Jesse_Eichar: I see
[5:55pm] Jesse_Eichar: too bad
[5:55pm] moovida: have there ever been some?
[5:55pm] Jesse_Eichar: well in time we'll get it
[5:55pm] Jesse_Eichar: I am new to this.
[5:55pm] Jesse_Eichar: It is the blind leading the blind right now
[5:55pm] moovida:
[5:55pm] moovida: I can send you the native for macosx
[5:56pm] moovida: should have them lying around somewhere on my mac box
[5:56pm] Jesse_Eichar: coo
[5:56pm] Jesse_Eichar: cool
[5:56pm] Jesse_Eichar: please send them
[5:56pm] JonathanIPS left the chat room. (Read error: 110 (Connection timed out))
[5:56pm] moovida: for linux they should be in an official release of imageio-ext?
[5:56pm] Jesse_Eichar: It is going to be a job to get them installed in a friendly way...
[5:56pm] Jesse_Eichar: but we'll figure it out
[5:56pm] Jesse_Eichar: I would think so
[5:56pm] moovida: I think they have win and linux
[5:56pm] moovida: binary download
[5:56pm] Jesse_Eichar: There is a windows JRE already good
[5:57pm] Jesse_Eichar: ah ok
[5:57pm] Jesse_Eichar: I will have to try and find it
[5:57pm] moovida: I will do also this evening
[5:57pm] Jesse_Eichar: so if you can get me the osx that will be great
[5:57pm] moovida: who comes first email the other
[5:57pm] Jesse_Eichar: ok sounds like a plan
[5:57pm] moovida: yes sure
[5:57pm] Jesse_Eichar: got to run as well
[5:57pm] Jesse_Eichar: ciao all
[5:57pm] moovida: great, then ciao
[5:57pm] moovida: have to run also
[5:57pm] moovida: who posts the logs?
[5:57pm] moovida: can you Jesse_Eichar
[5:57pm] moovida: ?
[5:58pm] KevinIPS_ joined the chat room.
[5:58pm] Jesse_Eichar: No I can't actually
[5:59pm] Jesse_Eichar: I haven't figured out this client yet
[5:59pm] moovida: ups, then we have a problem
[5:59pm] Jesse_Eichar: (after 3 years )
[5:59pm] Jesse_Eichar: ok well I can finally take the time and figure it them
[5:59pm] Jesse_Eichar: It is jus XML after all
[5:59pm] moovida: I have the same problem, but because of formatting
[5:59pm] Jesse_Eichar: I can at work run a transformation on it
[5:59pm] lotu joined the chat room.
[5:59pm] Jesse_Eichar: ok going now

Friday, August 15, 2008

Udig and the profile tool

The profile tool is finally functional in udig through thr JGrass extentions:

To know more about the interactive and console mode, have a look here.

Thursday, August 14, 2008

IRC Logs August 14th

Agenda: -1) what is up 0) trunk 1) Sextante 2) Rendering 3) 1.1.0 4) headers

Jesse_Eichar Hi all

Jesse_Eichar its time I guess

Jesse_Eichar agenda?

volaya hi

Jesse_Eichar 0) what's up 1) Sextante

Jesse_Eichar anything else from your side jody?

mauricio hi

Jesse_Eichar To those who don't know volaya is Victor from sextante.

Jesse_Eichar (right?)
kartben has left freenode ("Leaving.")

volaya right ;-)

jgarnett good morning

jgarnett hi volaya

jgarnett 2) Rendering

mauricio welcome volaya

volaya hi jody

jgarnett it feels like a lot is going on; I suspect we are about to be so busy that 1.1.0 will never be released :-)

jgarnett is it worth putting 1.1.0 on the agenda?

Jesse_Eichar ok we can.

Jesse_Eichar lets go:

Jesse_Eichar you mind updating the title jody?

Jesse_Eichar 0) What's up
moovida (n=moovida@ has joined #udig

Jesse_Eichar just made id moovida

Jesse_Eichar we are doing the 0) what's up

Jesse_Eichar Jesse: autobuild for trunk. I got a basic zip build going that I can run

moovida great!
jgarnett has changed the topic to “0) what is up 1) Sextante 2) Rendering 3) 1.1.0 4) headers”

moovida just came back

Jesse_Eichar working on packaging

emily_g emily: I'm about to remove emf from the rendering code

Jesse_Eichar SDI, Sextante (as per email) 1.1 is ready to go excepting 1 more sanity check

jgarnett jgarnett - doing a "live domain model" demo showing people moving dots on a map for a tutorial & testing the rendering system; workbench tutorial went up yesterday. Gathering up training materials for next week today; and doing a design session on an imrpoved rendering subsystem.

mauricio mauricio - deploy es.axios.udig.extensions rc7

Jesse_Eichar neato. when do you want a SDK?

Jesse_Eichar what out mauricio you're catching up to uDig ;)

mauricio hahah

Jesse_Eichar what=watch

mauricio yes

moovida Jesse_Eichar: a trunc sdk?

Jesse_Eichar no jody has training next week.

Jesse_Eichar mind you I could try making an sdk right during this meeting

Jesse_Eichar will have a report by the end...

jgarnett That would be fun Jesse; we can use it in testing a bit today; and I can basically run with it next week.

moovida I'm evaluating next moves and have to understand to do trunc before all and then everything after ON trunc, or if to do first things and then move to trunc

moovida we have a lot of work to do for Cape Town

moovida guis and manuals

jgarnett understood; from my standpoint I have no ability to work off of trunk (other than for training courses).

Jesse_Eichar trunk jody?

moovida you mean you have to work on trunk?

Jesse_Eichar are you training off trunk?

jgarnett I am mean I have to work on trunk; even applying patches to 1.1.x is a pain (and I cannot keep up with the problems we find and fix during the day).

jgarnett I am training off the stable branch next week - however this is the last time.

jgarnett During the course I have Chris Luft with me; and he will follow the tutorials on trunk and update the materials as he goes.

jgarnett So my training courses in September will be on trunk.

Jesse_Eichar right.

moovida I mean, I also would like to work on trunc and make the wizards for Simones tools finally

jgarnett ah yes - please :-) I also started that; and then I think we both stopped waiting for each other?

moovida I am just afraid that I could find some show stopper and that would be bad for my business

moovida jgarnett: no, I asked you to stop, ecause I wanted to help, so it is more my fault

KevinIPS jgarnett esta aqui!

jgarnett moovida you are important to us; I hope you do not find a show stopper. I have several teams going against trunk; and while we do not have time to fix the style themer - the ability to work with rasters is thus far worth it to us.

moovida is there a thought about a trunk sdk and version, on which to synchronize for Cape Town?

KevinIPS ...pero alli.

jgarnett um

moovida and if yes, then when?

Jesse_Eichar Soon.

jgarnett moovida we have no motivation / time to work on making an SDK - jesse is your best bet.

Jesse_Eichar I should have an sdk likely tomorrow but maybe next week

jgarnett trunk is version 1.2 if that is what you mena.

moovida I could take the efforth to migrate to trunk, but right now not that to create all the exporting and releasing environment

Jesse_Eichar its is just tweaking the features

moovida yes that wold be good.

jgarnett It takes around 30 mins to set up the development environment for trunk. Most of the work (downloading and setting up Eclipse 3.4 is the same as when you use an SDK).

moovida That could make me finally go on trunk by the weekend

Jesse_Eichar its true

moovida jgarnett: I understand, but I had some problems in the past with my exporting of products

Jesse_Eichar trunk is much easier...

jgarnett moovida ++

Jesse_Eichar mind you the release is not always the same as running :)

moovida and right now I would prefer to concxentrate on the migration

jgarnett I have not tried exporting udig from trunk; but I have released custom apps using udig trunk as a base.

moovida :)

jgarnett um gues we are way off our agenda...

Jesse_Eichar yep
jgarnett has changed the topic to “-1) what is up 0) trunk 1) Sextante 2) Rendering 3) 1.1.0 4) headers”

Jesse_Eichar what enxt

Jesse_Eichar trunk

jgarnett 1) Sextante

Jesse_Eichar ok

Jesse_Eichar Sextante

jgarnett (I wish gdavis was here to talk about IProcess and the ui work he did)

volaya yes, me too

Jesse_Eichar I don't have too much to say other than I'd love to see it rolled into Axios at some point

Jesse_Eichar Where was his UI work?

volaya I would like to know a bit more about the work they are doing at refraction with all that wps stuff and processes...

jgarnett I got a question Jesse; what do you mean rolled into Axios?
* moovida also

Jesse_Eichar :)

jgarnett It sounds like there is a framework I have not looked at yet?

Jesse_Eichar Well what I don't want is another view and another way of configuring the processes.

mauricio the axios extensions

mauricio required

mauricio more work to be a good framework

Jesse_Eichar It doesn't have to be really good though

mauricio but the principal problem

Jesse_Eichar (framework wise)

volaya i guess that there are two main thing: one is the process API and the otrhe is the GUI. We already have good APIs I guess, and they are quite compatible

jgarnett I want to get a good story going here; but the WPS team managed to complete their project and did not succeed in doing a breakout IRC or anything with Axios.

jgarnett volaya - and even if they are not we can figure out any differences and make improvements.

volaya yes, exactly

volaya the GUI might be a bit more difficult...but I do not know if axios or you at refractions have done much work on that

jgarnett perhaps I am missing something?
acuster ( has joined #udig

jgarnett Is Sextante an Axios project?

Jesse_Eichar No

volaya no no...

mauricio No

mauricio only is an idea

jgarnett I was considering it something new; and the Axios framework Jesse refering to was the user interface screen snaps I have looked at on the web.

Jesse_Eichar that's right seemed most logical to me...

jgarnett (oh okay)

volaya but axios (AFAIK) is doing some work on integrating processes into udig

Jesse_Eichar that's why I thought it was a natrual fit. I didn't know that Graham has done a UI as well.

volaya so it would be good to coordinate our work

jgarnett As has the WPS team; Axios went ahead and made some very nice screens. The WPS team made a generic "property sheet" that can be used to enter in the parameters.

Jesse_Eichar How do you add new processes for WPS?

jgarnett Graham spent a lot of time getting property sheet to manage the "Add/Remove" when a parameter allows multiple entries.

volaya I suggest spending some time having a look at what the others have done. For instance, I would like to see that property sheet

jgarnett They have a page somewhere; I drag the WPS into the catalog

jgarnett it shows up

jgarnett I right click on a Process entry and open up a view

Jesse_Eichar How do you drag the WPS?

jgarnett the view lets me configure the process and has a run button.

Jesse_Eichar Does it have to have a GetCaps and be hosted?

jgarnett We also considered doing a wizard (much like the import or export wizards)

Jesse_Eichar IE sextante is just a library of algorithms

jgarnett yes it does; it works the same as a WMS.

jgarnett The uDig catalog entry for this stuff

jgarnett can be used to represent other services

jgarnett (such as an entry for GeoTools or an entry for Sextante

Jesse_Eichar we could do a MapGraphic like thing I guess

Jesse_Eichar right.

Jesse_Eichar Ok so we have 2 routes

Jesse_Eichar Axios suite

Jesse_Eichar or WPS.

jgarnett the idea is just to make the IProcess notes "searchable" in the Catalog. And then we can experiment with wizards and such like; cut down the list just what process work on the selected data etc...

jgarnett um; I think we actually have to make up a new route

jgarnett and learn from both?

jgarnett Axios to my understanding did not intergrate with the catalog? But they do have a nice start on user interfaces.

Jesse_Eichar Personally I think the Axios suite it more intuitive

Jesse_Eichar that is a good point.

jgarnett perhaps I am not clear; I do not care for the WPS user interface at all

jgarnett the important part was to get it in the catalog; so we could build nice wizards and or views.

Jesse_Eichar Axios's suite could get some of its processes from the catalog.

Jesse_Eichar got you

jgarnett Jesse_Eichar++

Jesse_Eichar you following Victor? Mauricio?

Jesse_Eichar or are you completely lost

mauricio that sound right

volaya yes, more or less ;-)

Jesse_Eichar cool

Jesse_Eichar we done! Solved the worlds problems.

jgarnett I do hope the WPS team gets another round of funding; or that anyone here does - and can obtain a mandate to think hard about process intergration from a user perspective.
kartben ( has joined #udig

Jesse_Eichar What's for dinner ;)

jgarnett bytes

jgarnett So I would like to know who has time; I would like to see a page with some solid ideas on it over on the HACK space

Jesse_Eichar Any questions mauricio, victor?

volaya I have time i guess...

jgarnett and make sure we have a good understanding of what we want for the short term and medium term.

Jesse_Eichar Time is the difficulty. I am not sure when this will take place exactly.

jgarnett I would rephrase the statement as funding is the difficulty :-)

Jesse_Eichar I'd like before FOSS but might get to be part of the code sprint as well.

jgarnett aside: I am looking for a page along the lines of -

jgarnett A use case with pictures?
kartben has left freenode (Read error: 104 (Connection reset by peer))
kartben ( has joined #udig

Jesse_Eichar :)

jgarnett The Axios story here -

Jesse_Eichar ok if no more question from mauricio and Victor... We'll move on. But expect me to keep bringing this back up because iwant it to happen.

Jesse_Eichar ok rendering

Jesse_Eichar go jody

volaya ok...great ;-)

jgarnett is pretty good; looks like there is a list on the left (I would love to search it) and a "page" on the right ... and a nice run button in the tool bar.

mauricio ok

Jesse_Eichar thanks for attending Victor

Jesse_Eichar appreciate it

mauricio I need have a look in IProcess

mauricio and Sextante

jgarnett I will be away next week; but gdavis can answer some questions.

Jesse_Eichar fair enough

mauricio IProcess is in 1.1.x

mauricio or trunk?

jgarnett trunk

mauricio ok

jgarnett it involved introducing an api at the geotools level

jgarnett (so geoserver and udig could use the same facilities)

volaya if anyone has doubts with sextante, just ask, ok? I will be pleased to answer

moovida please take the IProcess discussion in the mailinglist

jgarnett I am most excited about seeing sextante served up via a WPS :-)

volaya i am too :-P

jgarnett shall we move on ...

jgarnett ... we have around 20 mins left.

Jesse_Eichar lets go

jgarnett 2) Rendering

jgarnett How to phrase this nicely .... help :-)

Jesse_Eichar Fixing Rendering/

jgarnett Actually we are not doing too bad Jesse; we are running through the rendering ideas.

jgarnett and have a design session scheduled for today.

Jesse_Eichar have any outstanding questions ?

Jesse_Eichar what are your requirements?

jgarnett make udig beautiful.

jgarnett actually it is to produce a GISWidget (you can see the first draft)

Jesse_Eichar where?

jgarnett that supports flicker free panning (we will take the fixed zoom level assumption for the first cut) and so on ...

jgarnett see email - the net.refractions.udig.project.widget package.

jgarnett demo is in net.refractions.udig.tutorials.rcp

jgarnett We just used ApplicationGIS.drawMap for the first cut; and will be having it keep its render manager in a few days

jgarnett and then I figure we will copy render manager and set it up to cache; work on fixed zoom levels and so on ...

jgarnett oh a couple problems we noticed:

jgarnett - the story of using a MapGraphic to draw a live domatin model is pretty weak (there is only one so you need to store listeners in the layer blackboard to watch your domain model and kick off a layer.redraw). That one is shaping up as a tutorial as well ...

jgarnett - A lot of renders make use of the viewport model; this is bad. When we ask them to render into tiles we will need them to respect the information provided by the Context

jgarnett (difference between world to tile; not world to screen)

Jesse_Eichar That is a bug certainly

jgarnett And the EMF Java 5 generics story is weak.

Jesse_Eichar all renderers should ask the context

Jesse_Eichar Well EMF that can be fixed but not easily

jgarnett The javadocs ask them to draw the minimum of viewport bounds and context bounds.

Jesse_Eichar it does support java 5 at last

Jesse_Eichar ok

Jesse_Eichar that is bad

jgarnett I am really sure I broke EMF by adding in Comparable; without knowing how to tell the EMF model what was going on.

Jesse_Eichar I told emily just to hack it and I'll fix it.
gdavis_ ( has joined #udig

emily_g hey jesse - i have at least one more question for you

emily_g "public class RenderManagerImpl extends EObjectImpl" can I remove the extends EObjectImpl?

Jesse_Eichar of course

emily_g and then do I need to be remove all the @generated tags?

Jesse_Eichar it isn't critical

Jesse_Eichar better but not critical

emily_g okay I'll try but I'm sure I'll miss some

jgarnett aside: GDavis some of the people interested in processes (From Axios and Sextante) may have some questions for you after the meeting.

gdavis_ ok

jgarnett Jesse I am going to be away next week; we will put up some design doc information on the wiki (end of the day? or friday?)

Jesse_Eichar ok

Jesse_Eichar I can look tomorrow

jgarnett could I ask if you could check in with the team - perhaps in a break out IRC - to go over the plan.

jgarnett that would be great.

jgarnett 3) 1.1.0

jgarnett So I do not know of anything that needs doing.

jgarnett I am finding and applying the occasional bug fix; but they are mostly cosmetic.

jgarnett I think this all comes down to when you have a moment to make the release Jesse?

Jesse_Eichar no must to say about 1.1.0

Jesse_Eichar I'm nervous ;)

jgarnett You could wait until after the training course next week if you want an extra round of testing; but changes have been minimal.

Jesse_Eichar that would be good.

jgarnett ha ha

Jesse_Eichar perfect actually

Jesse_Eichar I will make a release tonight

Jesse_Eichar put it online tomorrow and you can grab it

jgarnett okay; I will take it down with me. And I will try and be nice and send short emails about any problem to the devel list.

Jesse_Eichar it will ahve the update sites available (although Jans says his won't be online til next week)

Jesse_Eichar cool

Jesse_Eichar sounds good

jgarnett thinking

Jesse_Eichar Where are the release statements?

jgarnett the walkthrough 1 mentions my update site

jgarnett (they download a north arrow)

jgarnett but the update site is out of date?

jgarnett As far as I know that is the only glitch we have not fixed from the last round of training courses.

Jesse_Eichar hmm I guess so

Jesse_Eichar I should try to get them compiled an put back up.

jgarnett Good point; I will gather up the news releases and place them on the wiki.

jgarnett But really you just need to send an email to each company

jgarnett and each company can issue a press release.

jgarnett Jesse if you write down instructions on how to update the update site I can try and help out in the future. Right now there is nothing ...

Jesse_Eichar I don't really know to tell you the truth.

Jesse_Eichar I'm worried about clobbering the Axios suite

Jesse_Eichar ok

Jesse_Eichar next

Jesse_Eichar 4) headers

jgarnett right

jgarnett this is a customer question

jgarnett and one we will need to sort out as a PSC :-)

jgarnett right now we have everything in net.refractions.udig.* packages

jgarnett except for one bookmark plugin which I want to fix.
volaya has left freenode (" ajax IRC Client")

jgarnett A customer I was working with would like to donate some of the code they had us write.

jgarnett but would like to keep their company name "somewhere" in the mix.

moovida nice, nice

Jesse_Eichar makes sense

jgarnett now the issues around (c) are just a matter of contract negotiation - something for Refractions to handle.

jgarnett The issue about what we accept into svn is a matter for the PSC.

jgarnett I would *really* like to keep the package names as net.refactions.udig.*

jgarnett I expect a lot of growth

jgarnett and I actually want to merge some of our plugins
volaya (i=50183158@gateway/web/ajax/ has joined #udig

jgarnett and if we have "catalog" functionality being added I would like to see net.refactions.udig.catalog.XXXX

jgarnett just so we can keep our heads on straight.

jgarnett - that is my viewpoint only -

jgarnett For (c) there are two takes:

jgarnett - geotools take is to assign (c) so we have the ability as a community to change license etc; danger is refractions selling the project to someone else (see MySQL)

jgarnett (refractions has a pretty good reputation however)

jgarnett - the other take is to support mixed (c) headers; that occasionally scares away investment; but some large projects like PostgreSQL have managed to get away with it.

jgarnett I just want to get these two ideas out there for you to consider

jgarnett as it stands right now we ask for a standard udig header with a (c) refractions; and we stick to LGPL for the core SDK

moovida question

jgarnett (allowing a range of licenses for community modules)

jgarnett yes

moovida I mean, what if refractions would sell the project?

moovida the LGPL is last thing you would be able to use?

moovida what exactly do you mean is the danger

moovida and also, aren't you talking about JGrass or Axios with this?

Jesse_Eichar yes he is

Jesse_Eichar that is why we are talking right now.

Jesse_Eichar With you and mauricio

Jesse_Eichar Welcome to the PMC :)

moovida :P

mauricio :)

moovida alright, to be sure I got that right

Jesse_Eichar of course

jgarnett :-)

moovida I am pretty sure I am not able to be flexible on this

jgarnett You are correct we chose LGPL as a license - so customers would be confident

moovida I have in my copyright also A University department for some parts

jgarnett that udig would not be sold and they would be stuck on a limb.

moovida which builds on > 10 years of research experience in the hydro-geomorpho field

jgarnett So it sounds like mixed headers may be a requirement; rather than an option for us to consider?

moovida they would not be glad to give the (c) to a company

moovida would there be another option?

moovida something lie osgeo does?

jgarnett (note I am just talking about the stuff in the SDK here - currently refractions does have (c) for 95% of it)

moovida lie == like

jgarnett That is an option for us (ie us the PSC) to consider

moovida jgarnett: alright, that was why i was asking before, when you guys were kidding me

jgarnett the only advantage is we can as the PSC get the license changed (to say GPL+Classpath)

jgarnett the downside is that it may not be legal.

jgarnett (ie unless like the OSGeo we make people sign some stupid form)

moovida I don't understand where the thin line walks

jgarnett sorry moovida perhaps I am not explaining well.

Jesse_Eichar now I've been confused. You talking license or copywrite change jody? Or both?

jgarnett both

jgarnett actually sorry let me try again

Jesse_Eichar pleas

jgarnett 1) If we do a single (c) on all the headers - it allows us to change the license.

jgarnett 2) If we do mixed (c) headers - we have to hunt down everyone to change the license (and after a few years everyone cannot be found - so it is the same as saying we will be LGPL forever)

jgarnett Does that make sense now?

jgarnett That is a prgamatic reason for single (c) headers

moovida see geotools :)

Jesse_Eichar But not when tied to a company

moovida I see what you mean

jgarnett the other one is investment; organizations may be happier joining the project if they have a single company to negotiate with.

moovida Jesse_Eichar: also my thought

Jesse_Eichar How about a compromise.

jgarnett We the PSC manage the project for refractions; kind of like the GeoServer PSC manages GeoServer for the Open Planning Project.

jgarnett sure.

Jesse_Eichar Now I am just talking out my ass

Jesse_Eichar so don't hold me accountable for anything I'm about to say :PP

jgarnett Open to all suggestions; I mostly want us to consider the issue - talk away.

Jesse_Eichar One idea is we could have a (c) per PMC

Jesse_Eichar and if we leave we have to give up the (c)

Jesse_Eichar 2 we start a foundation

Jesse_Eichar 3) we join a foundation (eclipse?)

jgarnett aside: I did check with Jeff (a Refractions Director) before bringing this topic up - he is content with whatever we want for headers; his focus was on sticking with the LGPL license.

Jesse_Eichar we give refractions everything... (that could be problematic)

Jesse_Eichar sure sure. Lets vent all the ideas

Jesse_Eichar we have a heterogeneous (c)

Jesse_Eichar and ahve to track down people if we want to change license or join a foundation.

jgarnett The eclispe foundation would be the best move; OSGeo does not seem to be focused enough on "brand" for a project like uDig. We already have enough connections with that community via GeoTools etc..

moovida Do an own foundation would be lots of work, not sure if that would survive?

Jesse_Eichar preferences?

jgarnett Thinking

moovida Joining one would be a good thing to go.

Jesse_Eichar I have to run very soon.

Jesse_Eichar like 5 minute ago

moovida I can imagine that a PMC copyright would not be feasible

moovida :)

jgarnett I am not against mixed (c); I am content with the LGPL license. Only reason for me to consider a switch to GPL+Classpath exception is if it gets more traction as organizations learn to put up with Java being open source.

jgarnett If we are not doing mixed (c) I would prefer to stick to (c) refractions for now.

Jesse_Eichar sure

Jesse_Eichar ok

moovida I would prefere a single (c), but would have troubles if i'm not part of it

Jesse_Eichar well lets think on it and continue tomorrow I really have to go now

Jesse_Eichar later all
Jesse_Eichar has left freenode ()

jgarnett With respect to plugin naming; I really want to draw a line in the sand - it is a code organization tool (not an area for company branding). Allowing people to contribute company branding to the about box is fine for that sort of thing.

jgarnett okay; sorry guyes we went over time.

jgarnett Any additional thoughts?

moovida I agree with the thoughts

moovida and would be glad to wash away overhead

jgarnett I am confused by all the thoughts :-) (c) != my friend

moovida lol you are right

moovida You think eclipse foundation could be possible?

mauricio that could be a good idea

moovida yes, seems to me also :)

moovida I think that will be something for the next 1000 meetings

moovida alright, guess jgarnett is gone

mauricio :)

moovida thanks for the chat

mauricio it is a complx problem

moovida I finally get back to work

moovida You on holiday soon right, mauricio ?

jgarnett I am here

moovida ups, sorry

mauricio tomorrow

moovida then nice leave :)

mauricio good

jgarnett Okay; we should get plenty of warning before hacing to make any decision; but it is an issue and we should consider how our project policies effect others.

jgarnett Thanks everyone; I will post the logs.

moovida wait jgarnett

moovida one sec

jgarnett okay ...

moovida you have to work this weekend?

jgarnett oh - and volaya may of wanted to talk to gdavis?

moovida not that I want you to :)

moovida just asking

jgarnett I may be working Saturday.

volaya well, i guess we can just leave the discussion for th mailing list

moovida alright

jgarnett Why asking? Is there something you wanted me online for?

volaya i really do not have many thing to say know, and want to spend sometime having a look at the axios work, and even the jgrass work

moovida just in case my trunc goes mad :)

jgarnett ah

moovida to know if there is some guy online

jgarnett well set a time when you are going to try it out

jgarnett and send an email.

jgarnett emily_g updated the instructions

moovida I will do already tomorrow

jgarnett and we have had many developers follow them now.

moovida great, I think I will do it

moovida it is more for the export

moovida of product

moovida but I will experience it tomorrow

moovida just sorry i will be on macosx

moovida which I assume still is a bit a particular thing

jgarnett um

jgarnett cluft just did it

jgarnett (the guy who posted the workbench tutorial - on workbench seleciton and IAdaptable)

moovida export a product?

moovida aha

jgarnett oh right

jgarnett I have not tired exporting a product from trunk recently; or on a mac.

moovida well, I'll report on the mailinglist

jgarnett But wait he may of tried the custom app tutorial which includes an export step.

jgarnett Ask on the mailing list - yeah.

jgarnett okay i will post the logs now

Wednesday, August 13, 2008

New IAdaptable/Workbench Tutorial

Under the grand tutelage of Jody Garnett I have completed the construction of another tutorial. This new tutorial deals with concepts that are mostly to do with the Eclipse framework, but should help anybody with their overall understanding of uDig.

The tutorial can be found here:

It is the first version and probably has many flaws... if anybody would like to have a go at it and see how it holds up it would be greatly appreciated. Fresh eyes always seem to find the holes.

Any suggestions or bug reports can be sent to me directly at cluft at refractions dot net.

Thanks for taking the time.

Thursday, August 7, 2008

IRC Logs August 7th

0) chat
1) 3.4 update questions
2) what is up
3) 1.1.0 prep
4) schemas
5) trunk

*KevinIPS* emily, why isn't SVN working in eclipse 3.4?
*KevinIPS* did i miss a software update?
*jgarnett* KevinIPS do you mean subversive for subclipse?
*KevinIPS* might be, does that need to be updated as well?
*Emily* I don't know
*Jesse_Eichar* woops
*Jesse_Eichar* sorry all
*Emily* I don't use subversive
*jgarnett* Most of us stopped using Subclipse / Subversive due to the performance hit
*KevinIPS* oh
*jgarnett* I used Subclipse last time
*Emily* my guess is that it needs to be updated
*jgarnett* question KevinIPS
*KevinIPS* i'll see if there are any
*KevinIPS* yes?
*jgarnett* did you install Subversive? Maybe you did not install it yet ...
*KevinIPS* well, i had it installed in my 3.3.2 eclipse
*jgarnett* mystery solved!
*KevinIPS* so...i would think it would still be there, since i basically just copied everything over from the new eclipse
*jgarnett* oh
*jgarnett* that may not work very well
*KevinIPS* lol
*jgarnett* eclipse 3.4 has that dropins folder right?
*KevinIPS* umm...yes
*jgarnett* why not get a fresh eclipse 3.4; and install subversive using the update site?
*KevinIPS* i have a fresh 3.4
*KevinIPS* don't let me hold up your meeting
*KevinIPS* i'll figure it out, just wanted to make sure i didn't miss anything off of the wiki since i can't get to it right now
*jgarnett* let us start an agenda...
*jgarnett* 0) chat
*Emily* I would suggest going to the update manager and updating to the latest version
*jgarnett* 1) 3.4 update questions
*KevinIPS* Okay Emily, i'll give it a go.
*jgarnett* Can I assume we have finished the 0) chat agenda item ...
*KevinIPS* is that my cue to stop bothering you? :-P
*jgarnett* nope
*jgarnett* but if you do have anything for the meeting let us know
*jgarnett* you were working on some folder group stuff right? this would be a good venue to talk about it
*KevinIPS* okay, well, since jesse is here it might be nice to talk about the schemas
*Jesse_Eichar* FYI I have only about 20 minutes
*jgarnett* I think since we are late we should probably get moving
*jgarnett* 2) what is up
*jgarnett* jgarnett - kickstarting a new udig project with Emily and gdavis
*Emily* I've added a tool and view that allows people to change colors in imagemoasic files
*jgarnett* emily can you remind me what plugin that ended up in?
*Emily* net.refractions.udig.render.gridcoverage.basic
*KevinIPS* I'm currently working on adding an ability to click and drag a schema to the layers view, project explorer view and the viewport and have it place all layers contained in that schema
*jgarnett* Jesse?
*Jesse_Eichar* I am getting uDig integrated with Sextante and SpatialDataIntegrator
*jgarnett* 3) 1.1.0 prep
*Jesse_Eichar* ... Pretty good response.
*jgarnett* I have been wrangling up press releases and testing the KO translation. I would like to see someone go through the walkthroughs again but I doubt there is time.
*Jesse_Eichar* DBF and Reshape fixes went over well
*Jesse_Eichar* I agree
*jgarnett* Jesse I did just commit some safety check code for tool menupaths (actually this was a bug I found when working with IPS).
*jgarnett* Yesterday was the first time I looked at 1.1.x in a while and found I had uncommitted work.
*Jesse_Eichar* ok
*jgarnett* Some new tutorial code has also been added.
*Jesse_Eichar* will take a look
*KevinIPS* jgarnett, do those updates show up in trunk as well?
*KevinIPS* or just udig 1.1.x?
*jgarnett* that is actually what I get to do next; or Jesse will kick me
*KevinIPS* haha]
*KevinIPS* *haha
*Jesse_Eichar* we should start making use of
*jgarnett* the updates to the training materials will not show up in trunk until I run a training course in trunk :-)
*Jesse_Eichar* it looks handy for managing branches
*Jesse_Eichar* better than hoping we got everything like we do now
*Jesse_Eichar* (but that's off topic)
*Jesse_Eichar* lets go on
*Jesse_Eichar* 4)?
*Jesse_Eichar* 4) schemas
*KevinIPS* did they net split?
*KevinIPS* anyway, basically, you saw what i said i was working on
*KevinIPS* I'm just trying to understand how schemas are being dealt with now
*KevinIPS* are they being saved as PostgisDatabaseStores?
*KevinIPS* or just as folders from the PostgisSchemaFolders class?
*KevinIPS* and, what needs to be modified/added in order to place all layers contained in some schema onto the viewport, layers view, or project explorer view
*jgarnett* I think Schemas are just entries in the catalog; it looks like they have a PostgisDataStore inside.
*KevinIPS* yeah DataStore...sry used the wrong term
*jgarnett* I don't think anything needs to be added to pop up the "add layers" dialog when you DnD a Schema
*jgarnett* I think you may of just found a bug.
*KevinIPS* oh
*KevinIPS* yeah, it definitely doesn't do anything
*jgarnett* My understanding is the DnD code should go through the IResolve handle (in this case the schema) and ask the user which ones to add.
*jgarnett* Perhaps you could trace through what happens with a WMS "folder"
*KevinIPS* the Schema is implemented as an IResolveFolder
*jgarnett* and compare with what happens to a schema.
*KevinIPS* well, schemafolder
*jgarnett* I have not reviewed this section of the code; Jesse please advise.
*Jesse_Eichar* I think you are more or less correct jody
*Jesse_Eichar* A PostGisService
*Jesse_Eichar* has a bunch of folders with in
*Jesse_Eichar* They may currently be reponsible for the Datastore of the schema now...
*Jesse_Eichar* then the leaves have the FeatureSource (same as 1.1)
*Jesse_Eichar* for drag and drop...
*Jesse_Eichar* I think there is a bug where you get the entire service
*JonathanIPS* is there currently anything that can be DnD as a group?
*Jesse_Eichar* rather than just the subtree
*Jesse_Eichar* or the IGeoResource if you DND a IGeoResource
*Jesse_Eichar* It is an issue that eventually needs to be fixed
*KevinIPS* so it is in fact a bug?
*KevinIPS* and the implementation is already there?
*Jesse_Eichar* not so much a bug as an issue ;)
*Jesse_Eichar* that some might not like
*KevinIPS* haha, okay
*Jesse_Eichar* but it is not a hard fix.
*Jesse_Eichar* But was enough work that I didn't have time to do it.
*Jesse_Eichar* 5 minutes left anything critical to ask me?
*jgarnett* My expectation is that the Add Resource dialog shows up with the schema selected? It sounds like the IPS guys really want the group of layers to be selected.
*Jesse_Eichar* That is a very easy fix
*JonathanIPS* is there currently anything that can be DnD as a group?
*KevinIPS* well, with a little explanation and assistance getting started on the fix, JonathanIPS and I will work on it and figure it out. We just need to have an idea or an inkling of an idea as to where to look. What plugin? What package? Maybe what class?
*Jesse_Eichar* No
*Jesse_Eichar* If it is more than 1 item being DND the user is queried: (Are you sure?...)
*KevinIPS* hmm...not in trunk
*Jesse_Eichar* I had it do the DND and after dropping 100 layers a few times I took it away
*Jesse_Eichar* By Item I mean IGeoResource
*KevinIPS* ah okay
*Jesse_Eichar* If it will result in more than 1 layer
*Jesse_Eichar* (there are some hacks put in for files)
*Jesse_Eichar* but they are just hacks
*KevinIPS* contained in any IGeoResource?
*KevinIPS* so not actually selecting multiple layers with control click or something
*Jesse_Eichar* RIght now 1 layer at a time or the dialog pops up. (from what I remember)
*Jesse_Eichar* You can add a DropAction though if you'd like
*Jesse_Eichar* That is activated when a certain key is help down.
*KevinIPS* yeah...well, when i highlight several shapefiles (layers) from our PostGIS database in the catalog, it doesn't prompt me
*Jesse_Eichar* that's a bug
*Jesse_Eichar* it should
*Jesse_Eichar* I did most of the work on 1.1 and blindly merged to trunk
*KevinIPS* so i should take a look at 1.1?
*Jesse_Eichar* No the bug is probably with Postgis on trunk
*KevinIPS* to begin developing a fix for trunk?
*Jesse_Eichar* It is flat on 1.1
*KevinIPS* oh
*Jesse_Eichar* Hmm think I may know the problem
*Jesse_Eichar* \there probably isn't a drop action that activates for IFolder objects
*KevinIPS* Well, like I said, we'll gladly do the work if you don't have time to
*Jesse_Eichar* cool.
*KevinIPS* ah...i'll take a look at the manifest
*Jesse_Eichar* Take a look at Drop action extension point
*KevinIPS* in what project specifically?
*Jesse_Eichar* I will try to look up the DropAction that handles IGeoResource.
*Jesse_Eichar* project.ui
*KevinIPS* okay
*Jesse_Eichar* there are a few. It happens to be the most complex (
*Jesse_Eichar* But was made before IFolders.
*KevinIPS* haha a few extensions?
*Jesse_Eichar* :)
*KevinIPS* and by a few you mean, like 25+?
*KevinIPS* hahaha
*Jesse_Eichar* ok I'm sorry I have to run.
*Jesse_Eichar* Send a email if you have questions and I'll answer tomorrow.
*KevinIPS* no problem, thanks for the running start on where to look
*Jesse_Eichar* I'll also try to be better about answering on this IRC
*Jesse_Eichar* Its been a crazy month
*Jesse_Eichar* see you all...
*KevinIPS* take care
*jgarnett* okay anything else for the meeting
*jgarnett* 5) trunk
*jgarnett* a few updates on trunk
*jgarnett* I have confirmed the JRE uploaded is capable of displaying MRSID files. I may need to withdraw it and remove ECW support (an email fairy told me I don't have the rights to distribute ECW support).
*jgarnett* I will be committing a Draw2DRenderer today; and it sounds like we should make a work part to compare 1.1.x to trunk module by module.
*jgarnett* okay I will post the logs.