In my view, the biggest barrier to adoption of new source code control systems is the confidence level. CVS suffers from lots of problems, but they are well understood due to the age of the system. Similarly I only trust Clearcase for my commerical development as it has been around so long (although BK is progressing well with gathering a bigger user base)
For any new system to be a contender it needs to have either a large existing user base (chicken and egg problem) or a very comprehensive test suite with code and problem domain coverage figures. If I am going to trust my (assumed valuable) source code to an SCM system, then I need to know that it behaves correctly. DARCS scores lots of points for being based on a semi-formal proof of correctness, but that only proves the algorithms not the implementation.
I've discussed this on Shlomi Fish's mailing list "Better SCM", but the real opportunity for all of the open source SCM projects is to collaborate on collating normal and pathalogical examples of SCM problems and building a common test suite.
If I link a DLL, then I pull in *ALL* the code in the DLL. If I link to a.a library then I only pull in the.obj modules which contain methods/data which are referenced, and the code is then linked into the same executable module.
DLLs are useful, but are definately not the same as.a files.
DLLs are not.a libs. Totally different purpose. I don't want a library of 100s of trivial functions to be built into a 100s of DLLs, but 100s of.obj files in a.a is a nice format.
Plus there are lots of existing makefiles out there which rely on lib.exe
I'd strongly recommend a section on this company. They have a number of load generation centres distributed around the world, and can hit your live site with a huge load (practically a denial of service)
Their engineers are very experienced with load testing and their product Load Runner is the defacto standard for stress testing.
I dont' work for them, but I have worked with them and been very impressed.
"Why the hell does it have to look like HTML? Instead of all those starting and closing tags tripling the size of my documents, why not just use white space and parentheses or brackets so that it could have maintained some semblance of still being human readable? "
"There is no API in.net for doing O/R mapping such as JDO or CMP (belch). "
There is in the next version - almost identical to JDO (Except that M$ have decided to re-invent OQL at the same time). In the meantime, search for 'bytecode' on the gotdotnet site and find my semi-transparent object persistence code, or look at freshmeat and search for Gentle.NET which is another O-R mapping tool.
"For all of you with large and/or complex wireless networks out there, what tools (commercial or otherwise) do you use to keep an eye on the health and state of your network?"
More mud in the mix with Managed DX9. So far Microsoft have already released an update which broke our compile - even though it was a BUILD number change not a minor version change the API was incompatible. Long term tho' the managed DLL versioning should prevent such problems and ensure a more stable API of which multiple versions can really co-exist
Its actually quite hard to reverse engineer modern hardware. Gone are the days of a few bits to twiddle on an IO port. Now we are talking entire protocol stacks for complex protocols with varying amounts of the stack and/or compression implemented in hardware. Go read the USB or 802.11 specs sometime. This is not your grandfathers' serial port. Yes, I am experienced at writing device drivers. I reverse engineered a major USB webcam chipset for Linux, and I've written many older drivers.
You have a good point, but.NET RPC is really slow, and we need to pass very large volumes of data to the end user written AI - basically the entire game state as remembered by them + any new state that they can see. We also need to ensure that we can sensibly bound the CPU usage and bytecode mods seem to be the best way of doing that.
Hence our decision to use C#/.NET. Pre-made VM which will be on every windows platform, has garbage collection and a JIT and which supports loading and unloading assemblies into isolated domains. Why not Java? I wanted to learn a new language, and some aspects of C# make the bytecode easier to manipulate, e.g. compiler support for accessor/mutator methods. The prototype was actually written in Java using Java3D but C# has better support for vector and point types.
"I think we need to see tools that support a broader range, where people with less skill, less experience, or simply less motivation can still create something a little bit interesting, and the people who really master the tools have a lot of power and flexibility to do really amazing things."
Interestingly enough this is a key part of my game system. New users can build ships from pre-constructed parts, experienced users can build entirely new designs, including their own hull geometry. Intermediate users can customise a stock AI, Top level users can write and upload their own AI. Oh, and all the design tools work on or off line for laptop users.
I'm currently writing a game which has an emphasis on user content. We are using C#/.NET (no flames please) and using a lot of bytecode analysis/verification/manipulation. This allows us to verify that we can constrain the cycles used by uploaded code by inserting new bytecode into the loop structures etc. We can also use DFA and a defined set of permissable interfaces to limit the capabilities of the uploaded code. For an example of one of our bytecode manipulators which manages object persistence, look at the www.gotdotnet.com site and search for bytecode in the user samples. Some other thoughts are that copyright, ownership, censorship are the main showstoppers, not technology.
How does this differ from Beta? I've been interested in Beta for a long time, but I've not really seen the benefit of dynamically definable languages evident there - it just seems to go back to the lisp problem of writing, learning, and maintaining a special purpose language on top of a general purpose one. Any new programmer coming to the project is at an immediate disadvantage because of this.
Given the lack of control over the end user environment, and the general capability of modern cards, one wonders if it is worth trying to squeeze the 1M frames a second out by writing vendor specific code or if its better to go for minimal extensions to the standard API to enhance compatibility. Does anyone really have a justification for more than 50fps?
Asmo
If you like Jess, check out Drools
on
Jess in Action
·
· Score: 4, Informative
Drools is another rete based rule engine with a java implementation. It has more flexible licencing.
Note that there is a fork of Boch which uses some of the Plex86 code to speed it up. This should potentially give the best of both worlds, but doesn't appear to be well documented or readily available; read the Bochs web site/email archive for details. BTW, Xen appears to be identical in philosophy to the new Plex86 fork, just Xen have the access to port WinXP as well.
Seems like an easy solution - provide a game environment in which money is not an issue - rank or status could replace it, for example the Navy have little use (although I admit some) for money. But Naval officers don't buy warships;-)
Apparently people have had some luck using the floating point unit multi-issue instructions for accelerating repetative integer tasks. It is possible that this would be of benefit for a chess move generator.
In my view, the biggest barrier to adoption of new source code control systems is the confidence level. CVS suffers from lots of problems, but they are well understood due to the age of the system. Similarly I only trust Clearcase for my commerical development as it has been around so long (although BK is progressing well with gathering a bigger user base)
For any new system to be a contender it needs to have either a large existing user base (chicken and egg problem) or a very comprehensive test suite with code and problem domain coverage figures. If I am going to trust my (assumed valuable) source code to an SCM system, then I need to know that it behaves correctly. DARCS scores lots of points for being based on a semi-formal proof of correctness, but that only proves the algorithms not the implementation.
I've discussed this on Shlomi Fish's mailing list "Better SCM", but the real opportunity for all of the open source SCM projects is to collaborate on collating normal and pathalogical examples of SCM problems and building a common test suite.
Asmo
Nice one!
/? doesn't document it, but link /lib does.
Thanks for that. I missed it as the link
Asmo
Not the same at all.
.a library then I only pull in the .obj modules which contain methods/data which are referenced, and the code is then linked into the same executable module.
.a files.
If I link a DLL, then I pull in *ALL* the code in the DLL. If I link to a
DLLs are useful, but are definately not the same as
Asmo
True, but irrelvent.
.a libs. Totally different purpose. I don't want a library of 100s of trivial functions to be built into a 100s of DLLs, but 100s of .obj files in a .a is a nice format.
DLLs are not
Plus there are lots of existing makefiles out there which rely on lib.exe
Asmo
Major omission - no lib.exe for building .a files
.NET as without lib.exe it is pretty useless for larger projects.
Looks like this is just to encourage people to migrate to
Still, nice of them to release it
Asmo
I'd strongly recommend a section on this company. They have a number of load generation centres distributed around the world, and can hit your live site with a huge load (practically a denial of service)
Their engineers are very experienced with load testing and their product Load Runner is the defacto standard for stress testing.
I dont' work for them, but I have worked with them and been very impressed.
Asmo
"Why the hell does it have to look like HTML? Instead of all those starting and closing tags tripling the size of my documents, why not just use white space and parentheses or brackets so that it could have maintained some semblance of still being human readable? "
Like lisp S-Expressions?
(tag 'data "other data" (sub-tag (list a b c)))
Asmo
"There is no API in .net for doing O/R mapping such as JDO or CMP (belch). "
There is in the next version - almost identical to JDO (Except that M$ have decided to re-invent OQL at the same time). In the meantime, search for 'bytecode' on the gotdotnet site and find my semi-transparent object persistence code, or look at freshmeat and search for Gentle.NET which is another O-R mapping tool.
Asmo
"For all of you with large and/or complex wireless networks out there, what tools (commercial or otherwise) do you use to keep an eye on the health and state of your network?"
;-)
Its called a user
Asmo
More mud in the mix with Managed DX9. So far Microsoft have already released an update which broke our compile - even though it was a BUILD number change not a minor version change the API was incompatible. Long term tho' the managed DLL versioning should prevent such problems and ensure a more stable API of which multiple versions can really co-exist
Asmo
Immaterial. This is a VM implementation issue, and the decision to implement a gateway from the VM to any platform is up to the VM author.
JNI is an interface from the VM to C. However, any VM may implement any interface to any other language using the same semantics.
Its actually quite hard to reverse engineer modern hardware. Gone are the days of a few bits to twiddle on an IO port. Now we are talking entire protocol stacks for complex protocols with varying amounts of the stack and/or compression implemented in hardware. Go read the USB or 802.11 specs sometime. This is not your grandfathers' serial port. Yes, I am experienced at writing device drivers. I reverse engineered a major USB webcam chipset for Linux, and I've written many older drivers.
You have a good point, but .NET RPC is really slow, and we need to pass very large volumes of data to the end user written AI - basically the entire game state as remembered by them + any new state that they can see.
We also need to ensure that we can sensibly bound the CPU usage and bytecode mods seem to be the best way of doing that.
Asmo
Hence our decision to use C#/.NET. Pre-made VM which will be on every windows platform, has garbage collection and a JIT and which supports loading and unloading assemblies into isolated domains. Why not Java? I wanted to learn a new language, and some aspects of C# make the bytecode easier to manipulate, e.g. compiler support for accessor/mutator methods. The prototype was actually written in Java using Java3D but C# has better support for vector and point types.
Asmo
"I think we need to see tools that support a broader range, where people with less skill, less experience, or simply less motivation can still create something a little bit interesting, and the people who really master the tools have a lot of power and flexibility to do really amazing things."
Interestingly enough this is a key part of my game system. New users can build ships from pre-constructed parts, experienced users can build entirely new designs, including their own hull geometry. Intermediate users can customise a stock AI, Top level users can write and upload their own AI. Oh, and all the design tools work on or off line for laptop users.
Asmo
I'm currently writing a game which has an emphasis on user content. We are using C#/.NET (no flames please) and using a lot of bytecode analysis/verification/manipulation. This allows us to verify that we can constrain the cycles used by uploaded code by inserting new bytecode into the loop structures etc. We can also use DFA and a defined set of permissable interfaces to limit the capabilities of the uploaded code.
For an example of one of our bytecode manipulators which manages object persistence, look at the www.gotdotnet.com site and search for bytecode in the user samples.
Some other thoughts are that copyright, ownership, censorship are the main showstoppers, not technology.
Asmo
..is probably a good place to start. It is a cache filing system which is backed up by an NFS filing system
How does this differ from Beta? I've been interested in Beta for a long time, but I've not really seen the benefit of dynamically definable languages evident there - it just seems to go back to the lisp problem of writing, learning, and maintaining a special purpose language on top of a general purpose one. Any new programmer coming to the project is at an immediate disadvantage because of this.
Asmo
Given the lack of control over the end user environment, and the general capability of modern cards, one wonders if it is worth trying to squeeze the 1M frames a second out by writing vendor specific code or if its better to go for minimal extensions to the standard API to enhance compatibility. Does anyone really have a justification for more than 50fps?
Asmo
Drools is another rete based rule engine with a java implementation. It has more flexible licencing.
Asmo
Note that there is a fork of Boch which uses some of the Plex86 code to speed it up. This should potentially give the best of both worlds, but doesn't appear to be well documented or readily available; read the Bochs web site/email archive for details. BTW, Xen appears to be identical in philosophy to the new Plex86 fork, just Xen have the access to port WinXP as well.
Umm.. Its called a SUN e450 ;-)
Seems like an easy solution - provide a game environment in which money is not an issue - rank or status could replace it, for example the Navy have little use (although I admit some) for money. But Naval officers don't buy warships ;-)
Apparently people have had some luck using the floating point unit multi-issue instructions for accelerating repetative integer tasks. It is possible that this would be of benefit for a chess move generator.
They use cygwin