Write your own Einstein@home screensaver

PovAddict
PovAddict
Joined: 31 Mar 05
Posts: 45
Credit: 2,508,915
RAC: 0

RE: Hi folks! How are you

Message 78018 in response to message 78017

Quote:
Hi folks!
How are you doing?
I have a question related to (I think so anyway) the open source characteristic attached to BOINC software and projects:
I use sometimes cyrillic fonts (Russian alphabet) for some of my posts, since I am a Russian language learner.
I have realized some months ago that there´s no way to read and write correctly using russian fonts, because some little funny looking signs appear and make reading texts quite annoying. I bet you have found now and then somewhere those signs when viewing pages of other not so common visited countries/webpages.
I thought maybe some changes have been made in some folders related to those fonts.
This might be a question for programmers and webpage developers.
What do you think? Any experiences with unusual signs on your screen before?
Thanks for your help.
Cheers!


Please explain me in what way this is related to "writing your own Einstein screensaver".

Bikeman (Heinz-Bernd Eggenstein)
Bikeman (Heinz-...
Moderator
Joined: 28 Aug 06
Posts: 3,522
Credit: 694,179,942
RAC: 139,335

I'd also say that this is

I'd also say that this is completely off-topic. To answer the question nevertheless, in the forum it's perfectly possible to post in cyrilic, see this message for example.

If you have further questions, please open a new thread in the Problems section, as this thread is exclusively dedicated to the screen savers :-)

Happy ćrunching

CU
Bikeman

Dirk Villarreal Wittich
Dirk Villarreal...
Joined: 13 Oct 07
Posts: 263
Credit: 434,801
RAC: 0

RE: RE: Hi folks! How are

Message 78020 in response to message 78018

Quote:
Quote:
Hi folks!
How are you doing?
I have a question related to (I think so anyway) the open source characteristic attached to BOINC software and projects:
I use sometimes cyrillic fonts (Russian alphabet) for some of my posts, since I am a Russian language learner.
I have realized some months ago that there´s no way to read and write correctly using russian fonts, because some little funny looking signs appear and make reading texts quite annoying. I bet you have found now and then somewhere those signs when viewing pages of other not so common visited countries/webpages.
I thought maybe some changes have been made in some folders related to those fonts.
This might be a question for programmers and webpage developers.
What do you think? Any experiences with unusual signs on your screen before?
Thanks for your help.
Cheers!

Please explain me in what way this is related to "writing your own Einstein screensaver".

I explained it and gave some reasons for posting here, but I will try to be more simple:
I´m affraid, there´s a bug error hidden in the code used for the profile webpage on E@H.
Why? Well, in S@H I do not have this problem (the characters, fonts and links used for my profile in S@H are the same as for E@H: I just copied + pasted them).
I thought maybe someone skilled on screensavers development and with a proficient level of encoding languages should be able to understand my issue.
If the profile webpage, which can be edited with the simplest and basic elements by just common members, shows some bugs like these,
I might wonder how complex it might be to write your own screensaver with E@H tools.
Thank you.

С Новым Годом!

Dirk Villarreal Wittich
Dirk Villarreal...
Joined: 13 Oct 07
Posts: 263
Credit: 434,801
RAC: 0

RE: I'd also say that this

Message 78021 in response to message 78019

Quote:

I'd also say that this is completely off-topic. To answer the question nevertheless, in the forum it's perfectly possible to post in cyrilic, see this message for example.

If you have further questions, please open a new thread in the Problems section, as this thread is exclusively dedicated to the screen savers :-)

Happy ćrunching

CU
Bikeman

Thank you very much!
I will have a look and say hello to this russian member.
My Russian is still basic, but better than screensavers encoding!!
Cheers!

С Новым Годом!

Mike Hewson
Mike Hewson
Moderator
Joined: 1 Dec 05
Posts: 6,578
Credit: 306,820,738
RAC: 190,565

I'm having another run at the

I'm having another run at the screensaver. Again. :-)

I'm looking hard at this factory paradigm in the framework. May I summarise to check if I'm thinking right?

- the GraphicsEngineFactory class can instantiate objects which create AbstractGraphicsEngine's. That is GraphicsEngineFactory::createInstance() returns a pointer to an AbstractGraphicsEngine.

- the AbstractGraphicsEngine class is, obviously, abstract or virtual so you have to subclass to get concrete instances. There are currently two subclasses : StarsphereS5R3 and StarsphereRadio. I select which one when I call GraphicsEngineFactory::createInstance() by indicating in it's parameter list one element from each of the enumerations GraphicsEngineFactory::Engines and GraphicsEngineFactory::Applications ( sensible combination thereof ).

- Starsphere class is derived from AbstractGraphicsEngine, but is still virtual.

- now StarsphereS5R3 class and StarsphereRadio class each multiply inherit ( subclass ) from both Starsphere and m_EinsteinAdapter classes?

[aside]Where does m_EinsteinAdapter get defined - in the BOINC library or somesuch?[/aside]

- thus StarsphereS5R3 and StarsphereRadio can be returned from a GraphicsEngineFactory::createInstance() call as they ( amongst other things like being an m_EinsteinAdapter ) can be considered of type AbstractGraphicsEngine.

- presumably one could/would/should add an enumeration constant to the GraphicsEngineFactory::Engines enum within GraphicsEngineFactory.h to indicate a new type - that I will write, call it the HewsonSphere class for this discussion.

- HewsonSphere need not derive from Starsphere, as my design for a screensaver may have no interest in the particular interface that Starsphere offers.

- HewsonSphere class could remain virtual, but probably doesn't need to be ( unlike Starsphere ). But it, or a concrete class derived from it if I leave it virtual, also needs to inherit from m_EinsteinAdapter too.

- ( assuming all of the above ) I would leave alone the GraphicsEngineFactory::Applications enumeration as it's none of my business, as I don't write science applications.

- but I need to chose an application within that GraphicsEngineFactory::Applications enumeration so that my HewsonSphere, being of type derived from m_EinsteinAdapter, can respond to do the BOINC communication thingy via.

Cheers, Mike.

I have made this letter longer than usual because I lack the time to make it shorter ...

... and my other CPU is a Ryzen 5950X :-) Blaise Pascal

Bikeman (Heinz-Bernd Eggenstein)
Bikeman (Heinz-...
Moderator
Joined: 28 Aug 06
Posts: 3,522
Credit: 694,179,942
RAC: 139,335

Hi! I don't have the code

Message 78023 in response to message 78022

Hi!

I don't have the code in front of me atm, but the stuff that is named m_.... is a member variable, not a class name. If memory serves me right, the "Sphere" classes are responsible for drawing and (key) event handling, and they have a member variable that points to an "Adapter" object that basically handles the interface to the science app and Boinc.

CU
Bikeman

Mike Hewson
Mike Hewson
Moderator
Joined: 1 Dec 05
Posts: 6,578
Credit: 306,820,738
RAC: 190,565

Yeah, whoops my brainfade.

Yeah, whoops my brainfade. Saw

StarsphereS5R3::StarsphereS5R3() :
	Starsphere(EinsteinS5R3Adapter::SharedMemoryIdentifier),
	m_EinsteinAdapter(&m_BoincAdapter)
{
	m_CurrentTime = "";
}


and thought "multiple inheritance". But that would be :

class StarsphereS5R3 : public Starsphere, public m_EinsteinAdapter
{
// stuff
}


When I did C++ they told me never to multiply inherit. Course failure, voodoo, nasal daemons etc .... :-)

So I never learnt it.

Cheers, Mike.

I have made this letter longer than usual because I lack the time to make it shorter ...

... and my other CPU is a Ryzen 5950X :-) Blaise Pascal

Mike Hewson
Mike Hewson
Moderator
Joined: 1 Dec 05
Posts: 6,578
Credit: 306,820,738
RAC: 190,565

RE: Yeah, whoops my

Message 78025 in response to message 78024

Quote:
Yeah, whoops my brainfade. Saw
StarsphereS5R3::StarsphereS5R3() :
	Starsphere(EinsteinS5R3Adapter::SharedMemoryIdentifier),
	m_EinsteinAdapter(&m_BoincAdapter)
{
	m_CurrentTime = "";
}


This is a constructor initialiser list. Thus the Starsphere constructor is called, being the base/super-class of StarsphereS5R3. Plus the EinsteinS5R3RadioAdapter constructor too, as m_EinsteinAdapter is an EinsteinS5R3RadioAdapter. It's because you don't have direct access to the private data members of the base/superclass, or to the sub-object type represented by m_EinsteinAdapter.

Cheers, Mike.

I have made this letter longer than usual because I lack the time to make it shorter ...

... and my other CPU is a Ryzen 5950X :-) Blaise Pascal

Oliver Behnke
Oliver Behnke
Moderator
Administrator
Joined: 4 Sep 07
Posts: 981
Credit: 25,170,813
RAC: 4

Hi

Message 78026 in response to message 78025

Hi Mike,

Quote:
Quote:
Yeah, whoops my brainfade. Saw
StarsphereS5R3::StarsphereS5R3() :
	Starsphere(EinsteinS5R3Adapter::SharedMemoryIdentifier),
	m_EinsteinAdapter(&m_BoincAdapter)
{
	m_CurrentTime = "";
}

This is a constructor initialiser list. Thus the Starsphere constructor is called, being the base/super-class of StarsphereS5R3. Plus the EinsteinS5R3RadioAdapter constructor too, as m_EinsteinAdapter is an EinsteinS5R3RadioAdapter.

That's right. This is how you conveniently instantiate member objects that are not kept on the stack - otherwise you could/would use the "new" operator to do that but then you'd need to "delete" them manually in the destructor. I wanted to avoid that because it just adds complexity (without guarded pointers) while it doesn't get you anything.

I agree what you said about multiple inheritance, but sometime it just comes in handy when "unexpected needs" arise :-)

Oliver

PS: I'll comment on your previous questions soon!

Einstein@Home Project

Mike Hewson
Mike Hewson
Moderator
Joined: 1 Dec 05
Posts: 6,578
Credit: 306,820,738
RAC: 190,565

RE: Hi

Message 78027 in response to message 78026

Quote:

Hi Mike,

Quote:
Quote:
Yeah, whoops my brainfade. Saw
StarsphereS5R3::StarsphereS5R3() :
	Starsphere(EinsteinS5R3Adapter::SharedMemoryIdentifier),
	m_EinsteinAdapter(&m_BoincAdapter)
{
	m_CurrentTime = "";
}

This is a constructor initialiser list. Thus the Starsphere constructor is called, being the base/super-class of StarsphereS5R3. Plus the EinsteinS5R3RadioAdapter constructor too, as m_EinsteinAdapter is an EinsteinS5R3RadioAdapter.

That's right. This is how you conveniently instantiate member objects that are not kept on the stack - otherwise you could/would use the "new" operator to do that but then you'd need to "delete" them manually in the destructor. I wanted to avoid that because it just adds complexity (without guarded pointers) while it doesn't get you anything.

Neat.

Quote:

I agree what you said about multiple inheritance, but sometime it just comes in handy when "unexpected needs" arise :-)

Oliver

PS: I'll comment on your previous questions soon!


No hurry, you're doing the CUDA stuff no doubt!! Take your time ..... :-)

I'm trying to belt Suse linux into submission regarding installing GCC. It's pretending not to find the standard libraries, maybe I'll try Debian as you developed on that.

Cheers, Mike.

I have made this letter longer than usual because I lack the time to make it shorter ...

... and my other CPU is a Ryzen 5950X :-) Blaise Pascal

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.