Happy New Year and Happy New Server

classic Classic list List threaded Threaded
9 messages Options
Reply | Threaded
Open this post in threaded view
|

Happy New Year and Happy New Server

Carsten Block
Administrator
Hi everybody and Happy New Year!

Probably, you've seen it already: The PowerTAC server code changed quite a lot over the christmas holidays. Inspired by http://community.decisci.com/content/javafx-interacting-repast-simulation-model, we found a way to execute RePast models stand alone making them interact over http with the server. Like this we were able to heavily reduce complexity on the side of the PowerTAC server itself. It is basically a grails based server again, which now makes intensive usage of grails own (non-osgi) plugin management system. I'write more about the new server architecture soon.

In the mean time some pointers for you:

---------------------------------------
New Server
---------------------------------------
https://github.com/powertac/powertac-server

Note: The repository was renamed from "server" to "powertac-server"!!
As the code is technically organized in a very different way, we wanted to make sure that nobody is just pulling new updates and then ends up in a big "change mess".
Most likely you want to make a fresh clone of the server source code. If you really want to pull the updates in your existing local copy use git remote set-url origin [hidden email]:powertac/powertac-server.git):

------------------------------------------
New Plugin Source Repository
------------------------------------------
https://github.com/powertac-plugins

We expect many new plugins over the next few months (in particular customer models). So we set up a dedicated plugin source code repository at github.
If you plan to develop your own plugin and you want to share the code publicly, please contact John, David or me so that we can create a dedicated repository for you

-----------------------------------------
New Getting Started Guide
-----------------------------------------
https://github.com/powertac/powertac-server/wiki/Getting-started

Downloading and running the server is now much easier. The new getting started guide shows you the way. It also contains a "Plugin Developer Getting started guide" that shows you how to develop your own PowerTAC plugin (say a weather model or a new customer model).

-----------------------------------------
New Continuous Integration Server
-----------------------------------------
http://ibwhudson.iw.uni-karlsruhe.de/

The latest code for all plugins as well as for the server (including test results, code coverage report, zipped source code and javadoc) is automatically generated and provided to you. This gives us a good view on how stable our server and its plugins are. If you want your own plugin be added to the CI server, please contact John, David or me.

-----------------------------------------
New Public Plugin Repository
-----------------------------------------
http://ibwstinger.iw.uni-karlsruhe.de/artifactory/webapp/browserepo.html?pathId=plugins-release-local%3Aorg%2Fgrails%2Fplugins

PowerTAC Plugins can easily published to our new public plugin repository, where they are accessible for all others. This is useful as we only need to publish the core server, which then downloads and installs all required plugins (in the right version!) automatically.

After all, quite a lot of things changed and there's still quite a lot do. But my gut feeling is that we are back on track and that we now have a very solid and simple to use technical infrastructure, which allows us to develop a great PowerTAC server.

All the best,
Carsten

Reply | Threaded
Open this post in threaded view
|

Re: Happy New Year and Happy New Server

grampajohn
Administrator
On 01/10/2011 05:20 AM, Carsten Block [via Power TAC Developers] wrote:

> Hi everybody and Happy New Year!
>
> Probably, you've seen it already: The PowerTAC server code changed quite
> a lot over the christmas holidays. Inspired by
> http://community.decisci.com/content/javafx-interacting-repast-simulation-model,
> we found a way to execute RePast models stand alone making them interact
> over http with the server. Like this we were able to heavily reduce
> complexity on the side of the PowerTAC server itself. It is basically a
> grails based server again, which now makes intensive usage of grails own
> (non-osgi) plugin management system. I'write more about the new server
> architecture soon.

Thanks, Carsten. I'm a big fan of simplification, and I think this is a
good simplification. One thing we need to think about for the project as
a whole is whether and where is the groovy/java divide. Do we still use
Java for serialized objects?

>
> ...
>
> -----------------------------------------
> New Continuous Integration Server
> -----------------------------------------
> http://ibwhudson.iw.uni-karlsruhe.de/
>
> The latest code for all plugins as well as for the server (including
> test results, code coverage report, zipped source code and javadoc) is
> automatically generated and provided to you. This gives us a good view
> on how stable our server and its plugins are. If you want your own
> plugin be added to the CI server, please contact John, David or me.

I don't understand why it builds on Hudson but not in Hudson (that's
where I live, Hudson, Wisconsin). If it builds on the CI server but not
in a private workspace, then either the CI server is not really very
helpful, or there's something fundamental missing from the build process
that is not being seen by the CI server.

>
> -----------------------------------------
> New Public Plugin Repository
> -----------------------------------------
> http://ibwstinger.iw.uni-karlsruhe.de/artifactory/webapp/browserepo.html?pathId=plugins-release-local%3Aorg%2Fgrails%2Fplugins
>
> PowerTAC Plugins can easily published to our new public plugin
> repository, where they are accessible for all others. This is useful as
> we only need to publish the core server, which then downloads and
> installs all required plugins (in the right version!) automatically.

How are they easily published? I looked at the site, and I don't
understand the process for publishing new plugins.

>
> After all, quite a lot of things changed and there's still quite a lot
> do. But my gut feeling is that we are back on track and that we now have
> a very solid and simple to use technical infrastructure, which allows us
> to develop a great PowerTAC server.

Thanks for your diligent efforts, Carsten.

John
Reply | Threaded
Open this post in threaded view
|

Re: Happy New Year and Happy New Server

Carsten Block
Administrator
 One thing we need to think about for the project as
a whole is whether and where is the groovy/java divide. Do we still use
Java for serialized objects? 

Essentially there's no divide. For serialization you could easily do: 

class Point implements Serializable { int x, y }

def file = new File('points.dat')
def square = [ new Point(10, 10),
               new Point(20, 10),
               new Point(20, 20),
               new Point(10, 20) ]
file.withObjectOutputStream { oos ->
    oos.writeObject(square)
}
file.withObjectInputStream(getClass().classLoader){ ois ->
    def saved = ois.readObject( )
    assert square == saved
}

(taken from the groovy wiki).

In the above example you also could have used a Java class to deserialize the object instead. Groovy basically compiles into the very same byte code as Java does so you can mix both in whatever fashion you like. I would still recommend Groovy as our main implementation language for PowerTAC as it is more expressive, concise and easier to read than plain Java (especially when it comes to collections or XML handling) but that's merely a matter of taste. You can even start writing Groovy code in a "Java style" and only eventually start leaving out semicolons use Groovy's very nice bean getter and setter syntax, or start using the cool Groovy List and Maps features (<a href="http://groovy.codehaus.org/JN1015-Collections and http://groovy.codehaus.org/JN1035-Maps">http://groovy.codehaus.org/JN1015-Collections and http://groovy.codehaus.org/JN1035-Maps).

I don't understand why it builds on Hudson but not in Hudson (that's
where I live, Hudson, Wisconsin). If it builds on the CI server but not
in a private workspace, then either the CI server is not really very
helpful, or there's something fundamental missing from the build process
that is not being seen by the CI server. 
Please post shell output and / or stacktrace to a github gist (https://gist.github.com/gists) so that I can examine it. I'll then try to help you get the server running.

How are they easily published? I looked at the site, and I don't
understand the process for publishing new plugins.
The getting started guide was overly short on this. I just updated it: https://github.com/cblock/powertac-server/wiki/Powertac-plugin-development-getting-started/

Thanks for your diligent efforts, Carsten.
Thank you, John and all others for all the support!

Carsten 
Reply | Threaded
Open this post in threaded view
|

Re: powertac-plugins

grampajohn
Administrator
Carsten -

I guess we now have two separate projects on github, called powertac and
powertac-plugins. What I do not understand is _why_ there are two
separate projects, with essentially all the domain-specific portions of
the system in powertac-plugins. I was just getting comfortable with
being able to see all the activity across the powertac repos, but now
there seem to be two completely separate projects, each with multiple
repos to keep track of. Could someone please enlighten me?

Thanks.

John

Reply | Threaded
Open this post in threaded view
|

Re: Happy New Year and Happy New Server

daniel.ross
In reply to this post by Carsten Block
Hello Carsten,

I definitely like the new architecture.  I was able to get the server up and running with minimal effort.  Note that you may want to mention in the 'downloading and running powertac server' section of the 'getting started' page that you will need to install the powertac-common plugin, as it had me stumped for a moment.  Also, I noticed that the auctioneer plugin still uses the 0.2.3 version of the common plugin.  You may just not of gotten around to changing it yet since the switch to 0.3.0 was today, but I thought I would mention it in case it had gotten overlooked.

I would like to begin development on the weather/physical environment module/plugin soon.  If you could create a new repository and grant me (git_username=dross042) permissions on it I would greatly appreciate it.

Thank you for your efforts.  Things appear to be coming along nicely.


Daniel Ross

Reply | Threaded
Open this post in threaded view
|

RE: Happy New Year and Happy New Server

Wolf
Administrator
In reply to this post by Carsten Block

 

 

From: Carsten Block [via Power TAC Developers] [mailto:[hidden email]]
Sent: Monday, January 10, 2011 11:11 PM
To: Wolf Ketter
Subject: Re: Happy New Year and Happy New Server

 

 One thing we need to think about for the project as
a whole is whether and where is the groovy/java divide. Do we still use
Java for serialized objects? 

 

Essentially there's no divide. For serialization you could easily do: 

 

class Point implements Serializable { int x, y }
 
def file = new File('points.dat')
def square = [ new Point(10, 10),
               new Point(20, 10),
               new Point(20, 20),
               new Point(10, 20) ]
file.withObjectOutputStream { oos ->
    oos.writeObject(square)
}
file.withObjectInputStream(getClass().classLoader){ ois ->
    def saved = ois.readObject( )
    assert square == saved
}
 
(taken from the groovy wiki).

 

In the above example you also could have used a Java class to deserialize the object instead. Groovy basically compiles into the very same byte code as Java does so you can mix both in whatever fashion you like. I would still recommend Groovy as our main implementation language for PowerTAC as it is more expressive, concise and easier to read than plain Java (especially when it comes to collections or XML handling) but that's merely a matter of taste. You can even start writing Groovy code in a "Java style" and only eventually start leaving out semicolons use Groovy's very nice bean getter and setter syntax, or start using the cool Groovy List and Maps features (http://groovy.codehaus.org/JN1015-Collections and http://groovy.codehaus.org/JN1035-Maps).

 

I don't understand why it builds on Hudson but not in Hudson (that's
where I live, Hudson, Wisconsin). If it builds on the CI server but not
in a private workspace, then either the CI server is not really very
helpful, or there's something fundamental missing from the build process
that is not being seen by the CI server. 

Please post shell output and / or stacktrace to a github gist (https://gist.github.com/gists) so that I can examine it. I'll then try to help you get the server running.

 

How are they easily published? I looked at the site, and I don't
understand the process for publishing new plugins.

The getting started guide was overly short on this. I just updated it: https://github.com/cblock/powertac-server/wiki/Powertac-plugin-development-getting-started/

 

I read the getting started guide a couple days back and found it also too brief, but now I get an error message (404) that the page is not existing anymore.

 

Thanks for your diligent efforts, Carsten.

Thank you, John and all others for all the support!

 

Thanks much all for your hard work!

 

Cheers,

 

Wolf

 

Carsten 

 


View message @ http://power-tac-developers.975333.n3.nabble.com/Happy-New-Year-and-Happy-New-Server-tp2226345p2230807.html
To start a new topic under Power TAC Developers, email [hidden email]
To unsubscribe from Power TAC Developers, click here.



Disclaimer
De informatie verzonden in dit e-mail bericht inclusief de bijlage(n) is vertrouwelijk en is uitsluitend bestemd voor de geadresseerde van dit bericht. Lees verder: http://www.eur.nl/email-disclaimer.

The information in this e-mail message is confidential and may be legally privileged. Read more: http://www.eur.nl/english/email-disclaimer.

Reply | Threaded
Open this post in threaded view
|

Re: Happy New Year and Happy New Server

Carsten Block
Administrator
In reply to this post by daniel.ross
Hi Daniel1


> Note that you may want to mention in the 'downloading and running powertac server' section of the 'getting started' page that you will need to install the powertac-common plugin, as it had me stumped for a moment.  
That's strange. It should download and install automatically without manual installation. I'll look into that. Thanks for pointing it out.

> Also, I noticed that the auctioneer plugin still uses the 0.2.3 version of the common plugin.  You may just not of gotten around to changing it yet since the switch to 0.3.0 was today, but I thought I would mention it in case it had gotten overlooked.
Thanks for that pointer. I forgot about it yesterday night and I'll resolve it later that day.

> I would like to begin development on the weather/physical environment module/plugin soon.  If you could create a new repository and grant me (git_username=dross042) permissions on it I would greatly appreciate it.
Done: https://github.com/powertac-plugins/powertac-physical-environment

Best,
Carsten
Reply | Threaded
Open this post in threaded view
|

Re: powertac-plugins

Carsten Block
Administrator
In reply to this post by grampajohn
Hi John,

but now there seem to be two completely separate projects, each with multiple 
repos to keep track of. Could someone please enlighten me? 

...hmm. During the last skype call I proposed to have this separate plugin repository and Wolf and you liked it (or at least I perceived it like this :). 

The idea is that a new user who is just searching for a demo client to check out should not presented with a list of many, many plugins with the demo clients hidden somewhere in between. If you really don't like it we can always easily migrate the plugins in to the main powertac repository. You just check the code out, add a new remote destination (a repo in the powertac space) and push it. To me, this separation feels a bit "cleaner".

Cheers,
Carsten



Am 11.01.2011 um 04:14 schrieb grampajohn [via Power TAC Developers]:

Carsten -

I guess we now have two separate projects on github, called powertac and
powertac-plugins. What I do not understand is _why_ there are two
separate projects, with essentially all the domain-specific portions of
the system in powertac-plugins. I was just getting comfortable with
being able to see all the activity across the powertac repos, but now
there seem to be two completely separate projects, each with multiple
repos to keep track of. Could someone please enlighten me?

Thanks.

John




View message @ http://power-tac-developers.975333.n3.nabble.com/Happy-New-Year-and-Happy-New-Server-tp2226345p2232313.html
To start a new topic under Power TAC Developers, email [hidden email]
To unsubscribe from Power TAC Developers, click here.

Reply | Threaded
Open this post in threaded view
|

Re: powertac-plugins

grampajohn
Administrator
OK, thanks. These things need to be written down.

John

On 01/11/11 15:48, Carsten Block [via Power TAC Developers] wrote:

> Hi John,
>
>> but now there seem to be two completely separate projects, each with
>> multiple
>> repos to keep track of. Could someone please enlighten me?
>
> ...hmm. During the last skype call I proposed to have this separate
> plugin repository and Wolf and you liked it (or at least I perceived it
> like this :).
>
> The idea is that a new user who is just searching for a demo client to
> check out should not presented with a list of many, many plugins with
> the demo clients hidden somewhere in between. If you really don't like
> it we can always easily migrate the plugins in to the main powertac
> repository. You just check the code out, add a new remote destination (a
> repo in the powertac space) and push it. To me, this separation feels a
> bit "cleaner".
>
> Cheers,
> Carsten
>
>
>
> Am 11.01.2011 um 04:14 schrieb grampajohn [via Power TAC Developers]:
>
>> Carsten -
>>
>> I guess we now have two separate projects on github, called powertac and
>> powertac-plugins. What I do not understand is _why_ there are two
>> separate projects, with essentially all the domain-specific portions of
>> the system in powertac-plugins. I was just getting comfortable with
>> being able to see all the activity across the powertac repos, but now
>> there seem to be two completely separate projects, each with multiple
>> repos to keep track of. Could someone please enlighten me?
>>
>> Thanks.
>>
>> John
>>
>>
>>
>> ------------------------------------------------------------------------
>> View message @
>> http://power-tac-developers.975333.n3.nabble.com/Happy-New-Year-and-Happy-New-Server-tp2226345p2232313.html
>> <http://power-tac-developers.975333.n3.nabble.com/Happy-New-Year-and-Happy-New-Server-tp2226345p2232313.html?by-user=t>
>> To start a new topic under Power TAC Developers, email [hidden email]
>> </user/SendEmail.jtp?type=node&node=2237139&i=0>
>
>
>
> ------------------------------------------------------------------------
> View message @
> http://power-tac-developers.975333.n3.nabble.com/Happy-New-Year-and-Happy-New-Server-tp2226345p2237139.html
> To start a new topic under Power TAC Developers, email
> [hidden email]
> To unsubscribe from Power TAC Developers, click here
> <
>