Is it time to fork Celestia?

The place to discuss creating, porting and modifying Celestia's source code.

Is it time to fork Celestia?

Yes
8
24%
No
12
36%
Never
9
27%
Don't know
4
12%
 
Total votes: 33

Avatar
t00fri
Developer
Posts: 8772
Joined: 29.03.2002
Age: 22
With us: 22 years 7 months
Location: Hamburg, Germany

Post #61by t00fri » 28.04.2005, 21:36

hjw wrote:
sub RotOrbits {

well, to lazy to use prototypes. If called with the wrong number of arguments it fails badly.


local(...) = @_;

well, you should use "my" instead of "local". And I hope that it is NOT necessary to tell why!

This is an ugly piece of code, honestly. The math may be ok. The coding is not professional. At least not by my standards. Sorry to say this.

Horst.


That's just crazy! Look up e.g the "Perl bible" (Programming Perl, Larry Wall & Randal L. Schwartz, O'Reilly) on page 100 ff...

I am 99% sure that I code Perl decades longer than you do...

[When Perl5 appeared in '94 (with object oriented features and all that), I had heavily used Perl already for about 6 years. That's why I often tend to hack things with 'local' instead of scoping with 'my'. Of course, I am aware that 'local' is 90% history by now]

Yes I am a scientist in theoretical physics not a professional coder. Yet my Perl know-how has never been inadequate for any of my very sophisticated professional needs. I typically code things for Celestia very quickly after a > 12 h working day. No time for "beautifications". This code is only used by myself, no "stupid" users will ever see it. Good enough and certainly correct.

And after you tried a bit to derive the trig formulae for yourself, you will for sure realize that they are the much harder part of the task! It's the signs that cause the headache! Coding the formulae in Perl is comparatively trivial...


Honestly, your post above was entirely superfluous and "out of bounds". Why don't you first show us a bit what /you/ can do. Then we'll see...

My "unprofessional" Perl scripts have provided to the Celestia community:

-- 40000+ Earth locations (used by virtually everyone),
-- the world's complete list of capitals,
-- weight optimized, non-overlapping label distributions of locations on Mars, Earth Mercury, Venus etc,
-- thousands of binary orbits extracted from professional catalogs

Just to name a few ... Come on, relax!

Bye Fridger
Last edited by t00fri on 29.04.2005, 19:52, edited 7 times in total.

Avatar
t00fri
Developer
Posts: 8772
Joined: 29.03.2002
Age: 22
With us: 22 years 7 months
Location: Hamburg, Germany

Post #62by t00fri » 28.04.2005, 22:05

Paolo wrote:Fridger I've already said it to you.

If you won't start to spread positivity and anthusiasm around you I feel that the entire project is in great danger!

We all can agree with you. These solutions are not the best!

Beside the supid irony of my last post, you are right: the yours is the best solution. But is it possible now? Have we the required resources at present time?
The answer is NO!

So please fly down, shut the nose also if the smell is not as good it should be. Start working and coding and stop discussing. The team now needs everybody and specially the positive part of you. Instead Celestia will remain in stagnation and the others will continue to RUN!


Paulo,

we "know" and respect each other through this forum since quite a while. I certainly see what was in your mind when you proposed the "patch competition".

Still, let us try to analyze , whether cooperation on projects in form of small groups is really out.

Further above I presented a quite impressive list of people who might contribute in a coding effort and others who have most valuable complementary know-how!

We could for instance absorb "newbie" Celestia coders in each small group. This way they would be able to learn much more effectively from the more experienced Celesltians what is needed and where the pitfalls are! They could ask within their group specific questions about inherent conventions before getting involved in (wrong) coding.

Notably, small groups including experienced members would be much better able to first set up the project in concrete terms.

Bye Fridger

hank
Developer
Posts: 645
Joined: 03.02.2002
With us: 22 years 9 months
Location: Seattle, WA USA

Post #63by hank » 29.04.2005, 01:26

Maybe we could start by producing a complete functional specification and external design for the proposed enhancements to Celestia. (No coding skills required.)

- Hank

essee
Posts: 24
Joined: 30.12.2004
With us: 19 years 10 months
Location: CO, USA

Post #64by essee » 29.04.2005, 07:25

Paolo wrote "A patch is intended to be something fast-small: a bug correction, a minor improvement, an annoying detail fix, a GUI addition. More often if you want to add something significant to Celestia Core you will need to put the hands on more than 10 source file with the concrete risk of heavy side effects on the next major releases of the software or with a significant impact on the further development. This the purpose of the official development team, not the aim of the patch contest. The contest is some kind of playground where new coders can do practice with code in a limited way in order to get into the development team in a future.

Fridger wrote "We could for instance absorb "newbie" Celestia coders in each small group. This way they would be able to learn much more effectively from the more experienced Celesltians what is needed and where the pitfalls are! They could ask within their group specific questions about inherent conventions before getting involved in (wrong) coding.

Are we at the just do it stage? Is the word "contest" a problem?

Avatar
t00fri
Developer
Posts: 8772
Joined: 29.03.2002
Age: 22
With us: 22 years 7 months
Location: Hamburg, Germany

Post #65by t00fri » 29.04.2005, 09:18

hank wrote:Maybe we could start by producing a complete functional specification and external design for the proposed enhancements to Celestia. (No coding skills required.)

- Hank


That's also the way I would want to get started. Many of the annoying bugs we might want to address are tricky (otherwise they would have gone since long).

Example:
--------
1) holes in atmospheres. This is almost certainly not a straightforward coding bug. Presumably, these arise due to floating point inaccuracies related to the single precision nature of OpenGL.

2) invisibility of satellite orbits passing /in front/ of Earth, Mars, etc.

Here is an example from Earth. Mars is also very conspicuous.
Obviously "depth sorting" problems are involved here...

Image
Image

3) ...

In conclusion:

It takes quite a bit of experience with OpenGL and Celestia's rendering engine to get rid of these!

Bye Fridger

Gerbil94
Posts: 12
Joined: 26.04.2005
With us: 19 years 6 months
Location: Manchester, UK

Post #66by Gerbil94 » 29.04.2005, 10:18

ElChristou wrote:(Gerbil94, can you put in your profil something saying that you are a coder? just for info...)

That would be misleading, because I have neither the time nor the inclination to get into Celestia's internals. Sorry.

t00fri wrote:This is from the Perl scripts I wrote to do various jobs in my binary star work. Obviously this requires a bit more than looking up introductory WEB pages...

Certainly, but understanding the application of quaternions to rotation doesn't.


The only sensible strategy is to merge coding ability with other required know how through cooperation rather than competition!

And I agree with that for permanent work. But as I understand it nothing significant can be decided until Chris has some spare time, and can outline what is to change. Until this situation changes, the only substantive thing that can happen on the coding side is to familiarise new coders with Celestia internals. A competition is a reasonable way to do that.

hank wrote:Maybe we could start by producing a complete functional specification and external design for the proposed enhancements to Celestia. (No coding skills required.)


Yes, absolutely. State your requirements, exactly what is wanted and any conventions and conditions that apply. Then they can become useful as input to coders.

Avatar
t00fri
Developer
Posts: 8772
Joined: 29.03.2002
Age: 22
With us: 22 years 7 months
Location: Hamburg, Germany

Post #67by t00fri » 29.04.2005, 11:18

Gerbil94 wrote:
t00fri wrote:This is from the Perl scripts I wrote to do various jobs in my binary star work. Obviously this requires a bit more than looking up introductory WEB pages...

Certainly, but understanding the application of quaternions to rotation doesn't.



Except that you have to know

-- what to put into the 4 arguments of the quaternion that represents the rotation,
-- how the sign conventions are,
-- in what reference system Celestia expects its data and how that frame is geometrically defined!

You have to know what these mean, for example:

Code: Select all

Period                     5.650
SemiMajorAxis        2.162
Eccentricity            0.660
Inclination             62.698
AscendingNode      197.148
ArgOfPericenter     55.834
MeanAnomaly        15.929


-- How these parameters change when transformed into another reference frame,
--what the sign conventions and units of these orbit data mean...

Just to make you think a bit: Here is a simple homework to code (I implemented this years ago into Celestia):

Consider the observer moving with some speed in space into some direction. How does the operation look like in quaternionic language that make the observer "look back" over his/her "shoulder" (i.e. 180 degrees). This is what you find on the '*' key in Celestia...

Bye Fridger

Topic author
Slalomsk8er
Posts: 128
Joined: 26.07.2004
With us: 20 years 3 months
Location: Earth 7.593358long / 47.582393lat
Contact:

Post #68by Slalomsk8er » 29.04.2005, 12:30

0.5; 0; 1; 0 (I hope 0.5 eqals 180?° on the y axis) * old axis quad = new axis quat
I know this is not what you asked for but I would need to look at the code to give exact units and signs.
ASUS A7N8X Deluxe
AMD Athlon XP 2800+ (2.08GHz)
1GB DDR RAM 333MHz
NVIDIA GeForce FX 5600 AGP 8X

Gerbil94
Posts: 12
Joined: 26.04.2005
With us: 19 years 6 months
Location: Manchester, UK

Post #69by Gerbil94 » 30.04.2005, 12:52

Slalomsk8er wrote:0.5; 0; 1; 0 (I hope 0.5 eqals 180?° on the y axis) * old axis quad = new axis quat


Isn't it just (0, v) where v is the camera's (normalised) sky vector? I don't think (0.5, <0,1,0>) can be correct; it isn't normalised. Also, I think 0.5 = cos(angle/2) so 0.5 corresponds to a rotation of 2*acos(0.5) = 120 degrees about the y axis. I think you also need to post-multiply the old orientation quaternion by yours if you are assuming the y axis is the sky vector, because you want that operation to act first, in the camera's own coordinate system, not after whatever rotation has already occurred. If you use (0, v) then you can pre- or post-multiply depending on what frame the camera's sky vector that you're using is defined in.

hank
Developer
Posts: 645
Joined: 03.02.2002
With us: 22 years 9 months
Location: Seattle, WA USA

Post #70by hank » 30.04.2005, 17:48

Is anyone willing/able to host a wiki that we could use to develop a complete functional specification and external design for proposed enhancements to Celestia?

- Hank

Sirius
Posts: 31
Joined: 03.04.2002
With us: 22 years 7 months
Location: Germany

Post #71by Sirius » 30.04.2005, 17:55

Not yet able, but willing. Will see what I can do.

Paolo
Posts: 502
Joined: 23.09.2002
With us: 22 years 1 month
Location: Pordenone/Italy

Post #72by Paolo » 30.04.2005, 19:29

It is possible to use the following one:

http://en.wikibooks.org/wiki/Celestia:Development

That is already opened. :D

Wiki are extremely useful and powerful but require some time in order to understand how to create organized content and make some practice.

The drawback of the current wiki site is that sometimes it is slow.
Remember: Time always flows, it is the most precious thing that we have.
My Celestia - Celui

hank
Developer
Posts: 645
Joined: 03.02.2002
With us: 22 years 9 months
Location: Seattle, WA USA

Post #73by hank » 30.04.2005, 20:52

Paolo wrote:It is possible to use the following one:

http://en.wikibooks.org/wiki/Celestia:Development

That is already opened. :D

Wiki are extremely useful and powerful but require some time in order to understand how to create organized content and make some practice.

The drawback of the current wiki site is that sometimes it is slow.


Paolo,

I originally set up the Celestia wikibook some time ago to be used to create Celestia documentation. (That didn't work out due to lack of interest.) I felt that use was at least arguably consistent with the wikibook site's purpose (on-line textbooks) because of Celestia's educational uses. I'm not sure that it's appropriate to use the wikibooks site for Celestia development. That (along with the server load problem you mention) is why I think we need a seperate wiki dedicated to Celestia development.

- Hank

Paolo
Posts: 502
Joined: 23.09.2002
With us: 22 years 1 month
Location: Pordenone/Italy

Post #74by Paolo » 30.04.2005, 23:18

Ok Hank

I suppose that Christophe should give us a hand. He already hosts the
Celestia Development Center.
It should be fine if he will give us the support in order to dedicate some space to a wiki for the developers.
Remember: Time always flows, it is the most precious thing that we have.

My Celestia - Celui

Paolo
Posts: 502
Joined: 23.09.2002
With us: 22 years 1 month
Location: Pordenone/Italy

Post #75by Paolo » 30.04.2005, 23:21

Paolo wrote:OT
Christophe what is the Doxygen command that allows the creation of collaboration graphs?
Thank you


It is no matter. Found!
Remember: Time always flows, it is the most precious thing that we have.

My Celestia - Celui

Paolo
Posts: 502
Joined: 23.09.2002
With us: 22 years 1 month
Location: Pordenone/Italy

Post #76by Paolo » 05.05.2005, 21:17

Paolo wrote:
Paolo wrote:OT
Christophe what is the Doxygen command that allows the creation of collaboration graphs?
Thank you

It is no matter. Found!


It seems that this thread is dead.....
So .... some personal advertising
I've added the collaboration graphs to CELUI documentation.
http://xoomer.virgilio.it/pangeli1970/C ... index.html

The documentation is relative to a few days old code but do not refer to the latest CELUI code.
I know it is a bit OT, but if someday I will decide to fork Celestia, I'll start creating a new user interface.
Remember: Time always flows, it is the most precious thing that we have.

My Celestia - Celui

Paolo
Posts: 502
Joined: 23.09.2002
With us: 22 years 1 month
Location: Pordenone/Italy

Post #77by Paolo » 31.05.2005, 13:42

After some weeks Chris is still missing and nothing seems to move yet.

Accordingly with the current experience with the new galaxy rendering thread in the users forum I was asking me if another CVS repository for these kind of experimental developments should be useful.

I have a sourceforge account for CELUI and I can upload in my CVS space the current Celestia source code.
So if someone will be interested I'll give them write permissions to this CVS, in order to extensively collaborate in writing new experimental extensions to Celestia.

On the other hand I'm a little bit worried about this because it should be a real fork to the main Celestia development branch.

Is it someone interested?
Do you think that it is a good idea?
Remember: Time always flows, it is the most precious thing that we have.

My Celestia - Celui

Sirius
Posts: 31
Joined: 03.04.2002
With us: 22 years 7 months
Location: Germany

Post #78by Sirius » 23.06.2005, 14:36

Concerning the "forking" of an FLOSS projct, I ran across an interesting description by David A. Wheeler: http://www.dwheeler.com/oss_fs_why.html#forking

[quote]
Many OSS/FS projects (such as the Linux kernel development project) intentionally have ?€?fly-offs?€

Paolo
Posts: 502
Joined: 23.09.2002
With us: 22 years 1 month
Location: Pordenone/Italy

Post #79by Paolo » 24.06.2005, 06:57

Hi Sirius
Thanks for your previous post.
A few rows up than the link you've provided we can find:

Successful OSS/FS projects generally have a large number of contributors. A small proportion of the contributors write a majority of the code, but the value of the rest should not be underestimated; the fact that many others are reviewing the system, to identify or fix special bugs, enables the other developers to be more productive (because someone else, who looks at the project in a different way, can find or fix a bug faster, relieving the majority developers to do other things).
This is addressed to Fridger about the discussion we had some time ago in order to expand the development crew.


But perhaps the most interesting paragraph is the last:
The ability to create a fork is important in OSS/FS development, for the same reason that the ability to call for a vote of no confidence or a labor strike is important. Fundamentally, the ability to create a fork forces project leaders to pay attention to their constituencies. Even if an OSS/FS project completely dominates its market niche, there is always a potential competitor to that project: a fork of the project. Often, the threat of a fork is enough to cause project leaders to pay attention to some issues they had ignored before, should those issues actually be important. In the end, forking is an escape valve that allows those who are dissatisfied with the project?€™s current leadership to show whether or not their alternative is better.


Time is going by, Chris is still missing. Perhaps it is time to reconsider the fork alternative.

P.S. I agree completely about the Develompment Wiki. I think that this kind of tool is a must.
Remember: Time always flows, it is the most precious thing that we have.

My Celestia - Celui

joda
Posts: 1
Joined: 24.06.2005
With us: 19 years 4 months
Location: Germany

Post #80by joda » 24.06.2005, 12:39

---
Last edited by joda on 29.08.2008, 16:00, edited 1 time in total.


Return to “Development”