Wednesday, May 31, 2017

Fwd: TEXTING



Sent from my iPad

Begin forwarded message:

From: Sharon Kahn <sharon62kahn@gmail.com>
Date: May 31, 2017 at 6:47:54 PM CDT
Subject: Fwd: TEXTING




THE TEXT
 Hi Fred, this is Alan next door. I have a confession to make. I've been riddled with guilt these past few months and have been trying to pluck up the courage to tell you to your face, but I am at least now telling you in text as I cannot live with myself a moment longer without you knowing.

The truth is I have been sharing your wife, day and night when you're not around. In fact, probably more than you.
I haven't been getting it at home recently, but that's no excuse, I know. The temptation was just too much.
I can no longer live with the guilt and I hope you will accept my sincerest apologies and forgive me. It won't happen again.
Please suggest a fee for usage, and I'll pay you.

Regards, Alan.


 THE RESPONSE

Fred, feeling insulted and betrayed, grabbed his gun and shot his neighbor dead.
He returned home where he poured himself a stiff drink and sat down on the sofa.
He took out his phone and saw that he had a second message from his neighbor.
 
THE SECOND MESSAGE

Hi Fred,
This is Alan next door again. Sorry about the typo on my last text.
I expect you figured it out anyway, and that you noticed that darned Auto-Correct changed "wi-fi" to "wife"   Technology hey?

Regards, Alan
 
 
 
 
 
 




Fwd: 馬友友 聖母頌



Sent from my iPad

Begin forwarded message:

From: Sharon Kahn <sharon62kahn@gmail.com>
Date: May 31, 2017 at 6:41:04 PM CDT
Subject: Fwd: 馬友友 聖母頌







Subject: 馬友友 聖母頌


馬友友 聖母頌
 

Digest for comp.lang.c++@googlegroups.com - 24 updates in 3 topics

Daniel <danielaparker@gmail.com>: May 30 06:56PM -0700

On Tuesday, May 30, 2017 at 5:35:43 PM UTC-4, Mr Flibble wrote:
> button is a rare use-case. I provide ready baked events for common
> use-cases whilst allowing the flexibility to create events for rare
> use-cases.
 
There is considerable a priori experience with event handlers. Typically
event handlers take an event source and an event object as parameters. A
clicked event object holds the state of the shift, alt and ctrl keys, the x
and y coordinates of the mouse pointer, which mouse button was clicked, etc.
My suggestion would be to follow that practice.
 
Does neoGFX support attaching multiple handlers for the same event on the
same widget?
 
Best regards,
Daniel
Mr Flibble <flibbleREMOVETHISBIT@i42.co.uk>: May 30 09:44PM -0500

> clicked event object holds the state of the shift, alt and ctrl keys, the x
> and y coordinates of the mouse pointer, which mouse button was clicked, etc.
> My suggestion would be to follow that practice.
 
As I said in my reply this information is available.
 
 
> Does neoGFX support attaching multiple handlers for the same event on the
> same widget?
 
Yes. Note this is not a mouse button clicked event I am talking about but a
button widget "clicked" event which is also triggered by pressing space bar
if widget has focus.
 
/Flibble
"Rick C. Hodgin" <rick.c.hodgin@gmail.com>: May 30 08:26PM -0700

On Tuesday, May 30, 2017 at 5:35:43 PM UTC-4, Mr Flibble wrote:
> > modification keys like shift, alt, ctrl? Do you have thread-
> > level callbacks which support real-time sampling of those values?
 
> Such information is available allowing such events to be easily created.
 
I would think it would be the norm. One API with the extraneous info
being ignored if not used, rather than two or more APIs, one for the
"simple stuff" and one for the "regular stuff."
 
I'm not being picky or purposefully mean to you, Leigh. I honestly
do not see the advantage.
 
> button is a rare use-case. I provide ready baked events for common
> use-cases whilst allowing the flexibility to create events for rare
> use-cases.
 
That's not true. It is in many use cases, but in those use cases
where right-clicking is common / standard, it's not at all true.
 
You're creating a true graphical UI. You have to expect people
will be coding for right-clicks on most everything, so as to
access settings about things they're clicking on, rather than a
type of normal navigation or selection.
 
> > algorithm after many seconds have gone by?
 
> Then you are doing it wrong. A library doesn't have to support doing it
> wrong use cases.
 
Well, I don't generally code like that. Sometimes you have to
because you receive OS callbacks without that information, but I
mention it here because I didn't see any parameters being passed
to your simplicity version above, hence the need for such functions
in such a case.
 
I think if you want simplicity, you should just receive a struct
or class that has defined callback functions, and then use those
if they're not NULL. Something simple:
 
struct SEvents {
bool (*onLeftClick)(SObject* state);
bool (*onRightClick)(SObject* state);
// ... and other such stuff
};
 
I think neoGrx could prepare a snapshot data object, or pass several
parameters, and have everything setup for the instance handoff, which
may then be propagated through for a while before control returns
from the dispatcher. In fact, you could even setup a dispatcher
which launches each event in its own thread as a nice service that
would prevent the user from having to write that code.
 
 
> You appear to have a beef with C++ lambdas which is foolish as they are
> a great improvement to the language. You are not forced to use a lambda
> as you can use use anything convertible to a std::function object.
 
I do have a beef with lambdas. I've created an alternative which
better documents what's taking place by giving it a name, and allowing
it to be moved away from the syntax of the instruction in use.
 
I call it an adhoc, which is arbitrary code created at any point, and
it is not normally entered through normal flow, but only when explicitly
called by name or by address:
 
Search for "adhoc" on this message:
https://groups.google.com/d/msg/caliveprogramminglanguage/pSV7rzGcIeE/Ix3pBmhsBgAJ
 
Its syntax is basically like a type of local function, but by
creating it as a adhoc, it is documented in code for its explicit
use case:
 
int main(int argc, char* argv[])
{
// Create a function to reference which is related to this
// code immediately nearby.
adhoc int my_adhoc(int a, int b) {
return(a + b + 9);
}
 
cout << "5,6 equals " << my_adhoc(5, 6);
return 0;
}
 
CAlive also allows alternate syntax to create the same thing,
which can appear to be more similar to lambdas, and can be
encoded where lambdas are.
 
> > function and the development environment, then such simplicity
> > is akin to useless.
 
> It is both simple and provides utility.
 
As Einstein once said: "Things should be as simple as possible,
but no simpler." I think you've tried to make things simple, but
you're missed out on the fact that more is required for normal
events processing than your simple model, meaning the model is
now doubly complex because you have simple things and normal
things. I think it will be more confusing to users.
 
Thank you,
Rick C. Hodgin
Juha Nieminen <nospam@thanks.invalid>: May 31 06:13AM

> bool (*onRightClick)(SObject* state);
> // ... and other such stuff
> };
 
That's the C kludge that tries to emulate interfaces, ie. a base class
with virtual functions.
"Rick C. Hodgin" <rick.c.hodgin@gmail.com>: May 31 03:11AM -0700

Juha Nieminen wrote:
> That's the C kludge that tries to emulate interfaces, ie. a base
> class with virtual functions.
 
It can be coded however you like. That was just an example. But I
would argue such an implementation is simple and easy to understand.
 
Thank you,
Rick C. Hodgin
Daniel <danielaparker@gmail.com>: May 31 04:23AM -0700

On Tuesday, May 30, 2017 at 10:44:31 PM UTC-4, Mr Flibble wrote:
> > and y coordinates of the mouse pointer, which mouse button was clicked, etc.
> > My suggestion would be to follow that practice.
 
> As I said in my reply this information is available.
 
Could you show an example that illustrates how a handler could save the
x and y screen coordinates when the right mouse button is pressed in
combination with the shift key being pressed?
 
Thanks,
Daniel
David Brown <david.brown@hesbynett.no>: May 31 02:05PM +0200

On 31/05/17 05:26, Rick C. Hodgin wrote:
 
> I would think it would be the norm. One API with the extraneous info
> being ignored if not used, rather than two or more APIs, one for the
> "simple stuff" and one for the "regular stuff."
 
My understanding is that the "clicked" event is a button or widget
clicked event, not a /mouse/ click event. I don't know anything about
neoGFX, but it is quite common for widget libraries to have a simple
"clicked" event that is triggered by a left mouse click, or a keyboard
press when the widget has the focus. That would different from a more
detailed "mouse" event that would say which mouse button is used,
modifier keys, exact position, etc. And there may be other related
events suchas "right_clicked".
 
It would be nice to see an example of the neoGFX syntax for how the
details are captured for events that have information such as more
general mouse click events.
 
> mention it here because I didn't see any parameters being passed
> to your simplicity version above, hence the need for such functions
> in such a case.
 
Even if there is no information sent in parameters (we need to wait for
Leigh to give more details here for events that have parameters), the
way you would deal with a long-running event function is to first
capture the important information, then to pass it on to an asynchronous
function (perhaps in another thread) that handles the waiting and other
time-consuming work. You don't put a 5 second delay in your event handler.
 
 
> CAlive also allows alternate syntax to create the same thing,
> which can appear to be more similar to lambdas, and can be
> encoded where lambdas are.
 
You can do /exactly/ the same thing with lambdas, bar minor syntactic
details:
 
#include <iostream>
using std::cout;
 
int main(void) {
 
auto my_adhoc = [](int a, int b) -> int {
return a + b + 9;
};
 
cout << "5, 6 equals " << my_adhoc(5, 6) << "\n";
}
 
Lambdas can be defined in all sorts of places, and named if you want to.
 
Does that cover your "beef" against lambdas?
 
(And as Leigh says, there is no requirement to use lambdas for events -
you can use normal functions, functor objects, or anything else that is
callable.)
 
> events processing than your simple model, meaning the model is
> now doubly complex because you have simple things and normal
> things. I think it will be more confusing to users.
 
I think it is just a case of Leigh picking an example event that is so
simple that it has no need of parameters.
"Rick C. Hodgin" <rick.c.hodgin@gmail.com>: May 31 06:05AM -0700

On Wednesday, May 31, 2017 at 8:05:50 AM UTC-4, David Brown wrote:
> [snip]
 
I appreciate your desire to help me to be a better person, David.
I also continue to pray for you as well.
 
Thank you,
Rick C. Hodgin
David Brown <david.brown@hesbynett.no>: May 31 03:10PM +0200

On 31/05/17 15:05, Rick C. Hodgin wrote:
>> [snip]
 
> I appreciate your desire to help me to be a better person, David.
> I also continue to pray for you as well.
 
I am not trying to make you a better person - I am trying to discuss C++
and a C++ library in a C++ thread on a C++ forum.
 
You have previously decided not to discuss off-topic issues with me.
Fair enough - I have not always been polite or patient with you. And I
am happy not to engage in discussions that are usually extremely
frustrating for me, and make no visible progress.
 
But surely we can talk about C++ (and other technical topics in other
groups)? I am not trying to help you be a "better person" - I am trying
to tell you a little more about lambdas that you might not have known,
and learn more about why you don't like them.
"Rick C. Hodgin" <rick.c.hodgin@gmail.com>: May 31 06:19AM -0700

On Wednesday, May 31, 2017 at 9:10:46 AM UTC-4, David Brown wrote:
> [snip]
 
I appreciate your desire to help me to be a better person, David,
by giving me guidance in these areas where you feel I am lacking.
 
I also desire to help you to be a better person, so I continue to
pray for you as well.
 
Thank you,
Rick C. Hodgin
"Alf P. Steinbach" <alf.p.steinbach+usenet@gmail.com>: May 31 03:21PM +0200

On 31-May-17 3:19 PM, Rick C. Hodgin wrote:
> by giving me guidance in these areas where you feel I am lacking.
 
> I also desire to help you to be a better person, so I continue to
> pray for you as well.
 
The time has come to put you in my kill-file, Rick.
 
Or, what passes for a kill-file in Thunderbird, but same effect.
 
Plonk.
 
 
Sorry 'bout that,
 
- Alf
"Rick C. Hodgin" <rick.c.hodgin@gmail.com>: May 31 06:36AM -0700

On Wednesday, May 31, 2017 at 9:21:42 AM UTC-4, Alf P. Steinbach wrote:
> The time has come to put you in my kill-file, Rick.
> Sorry 'bout that,
 
I would like to ask you to consider something, Alf, or to the
other people reading this, when you add someone advocating a life
lived in service to Jesus Christ (and separate yourself from the
lived follow-through of that life's profession in reality, such
as by an outward example of simply praying for people), consider
that by separating yourself from that God-seeking person you are
separating yourself from a person focused on serving the Lord in
real ways rightly here upon this Earth.
 
Consider also that in so doing, you are also separating yourself
from the Lord because He sends men and women like me out into the
world to help encourage and guide people away from where they are
and toward where they should be.
 
So in essence, when you "kill-file" me, you are really doing much,
much more. You are effectively cutting yourself off from a voice
of the Lord in your life, which means you're embracing another's
guidance, the one bent on killing your eternal soul in Hell as you
choose a path away from God, and toward that other calling.
 
Consider what this means to you beyond the confines of this world.
 
Thank you,
Rick C. Hodgin
Mr Flibble <flibble@i42.co.uk>: May 31 06:43PM +0100

On 31/05/2017 04:26, Rick C. Hodgin wrote:
> "simple stuff" and one for the "regular stuff."
 
> I'm not being picky or purposefully mean to you, Leigh. I honestly
> do not see the advantage
 
Grow up.
 
>> use-cases.
 
> That's not true. It is in many use cases, but in those use cases
> where right-clicking is common / standard, it's not at all true.
 
It is true. This is an event sent from a button widget: you don't
normally right click on button widgets.
 
/Leigh
"Rick C. Hodgin" <rick.c.hodgin@gmail.com>: May 31 10:59AM -0700

On Wednesday, May 31, 2017 at 1:43:37 PM UTC-4, Mr Flibble wrote:
> > I'm not being picky or purposefully mean to you, Leigh. I honestly
> > do not see the advantage
> Grow up.
 
It's a proper statement ... even for a grow-up. I included it at
all because I thought you might feel I was trying to be picky for
some petty reasons because of our post-relationship on issues of
Jesus Christ. That's not the case. I did not see the advantage
of having that feature when most of the time I would think you
would want additional information for the click event.
 
> > where right-clicking is common / standard, it's not at all true.
 
> It is true. This is an event sent from a button widget: you don't
> normally right click on button widgets.
 
I don't know what you're referring to, but I have defined a full
event stack on my objects, which are largely based upon a tool that
I use daily which has similar events:
 
It's "SBaseEventsMap" on line 1623, and then 1656:
http://tinyurl.com/accessors-h
 
Each callback receives a passed object which has property members
with the items required for whatever the event is:
 
union {
uptr _defaultHandler;
bool (*defaultHandler) (SObject* obj, u32 tnIndex);
};
 
They are referenced in code by an id which finds them by name.
It is slower than doing it a direct way, but it allows full and
custom expansion of add-on properties, events, methods, and other
objects at runtime.

Thank you,
Rick C. Hodgin
Mr Flibble <flibble@i42.co.uk>: May 31 07:14PM +0100

On 31/05/2017 13:05, David Brown wrote:
 
> It would be nice to see an example of the neoGFX syntax for how the
> details are captured for events that have information such as more
> general mouse click events.
 
The idea is that a widget of a specific type will translate a generic
mouse clicked event (which comes from the native window/surface and
contains all the meta information asked about here) and translates it
into an event that fits in with the widget's abstraction. It is not
useful (in general), for example, for a push button widget to emit right
mouse click events or to know the x,y position of a left click event on
the push button widget.
 
If you want to emit event meta information from a custom widget type
then simply override thus:
 
class my_xy_widget : public neogfx::widget
{
public:
event<const point&> xy;
event<const point&> xy_context;
public:
void mouse_button_pressed(mouse_button aButton, const point& aPosition,
key_modifiers_e aKeyModifiers) override
{
if (aButton == mouse_button::Left)
xy.trigger(aPosition);
else if (aButton == mouse_button::Right)
xy_context.trigger(aPosition);
}
}
 
I only include events in the API that make sense for the specific widget
abstractions.
 
It is also possible to be notified of all events coming from
window/surface (with access to all meta information) and there is
provision for filtering those events.
 
>> things. I think it will be more confusing to users.
 
> I think it is just a case of Leigh picking an example event that is so
> simple that it has no need of parameters.
 
Correct. :)
 
/Flibble
Mr Flibble <flibble@i42.co.uk>: May 31 07:18PM +0100

On 31/05/2017 04:26, Rick C. Hodgin wrote:
 
> CAlive also allows alternate syntax to create the same thing,
> which can appear to be more similar to lambdas, and can be
> encoded where lambdas are.
 
The problem isn't that neoGFX supports lambdas the problem is that you
don't like lambdas which is your problem not mine or that of anyone who
wants to use lambdas with neoGFX.
 
You obviously are having a problem embracing modern C++ techniques
because you like to cling on to the old fashioned paradigms.
 
/Flibble
"Rick C. Hodgin" <rick.c.hodgin@gmail.com>: May 31 11:55AM -0700

On Wednesday, May 31, 2017 at 2:18:19 PM UTC-4, Mr Flibble wrote:
> The problem isn't that neoGFX supports lambdas the problem is that you
> don't like lambdas which is your problem not mine or that of anyone who
> wants to use lambdas with neoGFX.
 
I don't like lambdas. I do like lambs, however. They're useful.
 
> You obviously are having a problem embracing modern C++ techniques
> because you like to cling on to the old fashioned paradigms.
 
It's not a problem so much as a choice. But, to be fair, I have
embraced many C++ programming techniques, and I'm adding them to
CAlive. I've also come up with several more of my own which I
think C and C++ will eventually adopt.
 
Thank you,
Rick C. Hodgin
scott@slp53.sl.home (Scott Lurndal): May 31 06:57PM


>I don't like lambdas. I do like lambs, however. They're useful.
 
:%s/useful/tasty/g
"Rick C. Hodgin" <rick.c.hodgin@gmail.com>: May 31 12:05PM -0700

On Wednesday, May 31, 2017 at 2:57:36 PM UTC-4, Scott Lurndal wrote:
> "Rick C. Hodgin" <rick.c.hodgin@gmail.com> writes:
> >I don't like lambdas. I do like lambs, however. They're useful.
> :%s/useful/tasty/g
 
:-)
 
Thank you,
Rick C. Hodgin
Daniel <danielaparker@gmail.com>: May 31 01:16PM -0700

On Wednesday, May 31, 2017 at 2:14:35 PM UTC-4, Mr Flibble wrote:
> useful (in general), for example, for a push button widget to emit right
> mouse click events or to know the x,y position of a left click event on
> the push button widget.
 
The x,y position of a left or right click event are properties of an
event, not a widget. All other GUI frameworks that I know of (including
pyqt, wxpython, .NET) associate an event object type with each enumerated
event, and pass an instance of that type to the handler.
 
For example, in wxpython, a handler would be bound to an event on the
widget,
 
widget.Bind(wx.EVT_MOVE, OnMove)
 
def OnMove(self, e):
x, y = e.GetPosition()
print "current window position x = ",x," y= ",y
Mr Flibble <flibble@i42.co.uk>: May 31 10:25PM +0100

On 31/05/2017 21:16, Daniel wrote:
> event, not a widget. All other GUI frameworks that I know of (including
> pyqt, wxpython, .NET) associate an event object type with each enumerated
> event, and pass an instance of that type to the handler.
 
Correct the x,y position is a property of an event and this is the case
in neoGFX; it is up to the widget in question how this event is
translated into a widget specific event.
 
 
> def OnMove(self, e):
> x, y = e.GetPosition()
> print "current window position x = ",x," y= ",y
 
That is not how neoGFX works however it is possible to get access to the
base event if required.
 
/Flibble
Jeff-Relf.Me @.: May 31 12:30PM -0700

asetofsymbols@gmail.com: May 31 01:32AM -0700

http://www.axiom-developer.org/
Can you show a little function it is better to write in C++ than in Axiom?
"Alf P. Steinbach" <alf.p.steinbach+usenet@gmail.com>: May 31 01:01PM +0200

> http://www.axiom-developer.org/
> Can you show a little function it is better to write in C++ than in Axiom?
 
I don't know the Axiom language (assuming that it is a language), but
happily the answer doesn't depend on the particulars of the languages.
 
See the FAQ item "Is C++ better than Java? (or C#, C, Objective-C,
JavaScript, Ruby, Perl, PHP, Haskell, FORTRAN, Pascal, Ada, Smalltalk,
or any other language?)", e.g. at <url:
https://isocpp.org/wiki/faq/big-picture#lang-comparisons>.
 
It's often a good idea to check the FAQ before posting. ;-)
 
 
Cheers & hth.,
 
- Alf
You received this digest because you're subscribed to updates for this group. You can change your settings on the group membership page.
To unsubscribe from this group and stop receiving emails from it send an email to comp.lang.c+++unsubscribe@googlegroups.com.

Digest for comp.programming.threads@googlegroups.com - 3 updates in 3 topics

rami18 <coco@coco.com>: May 30 05:14PM -0400

Hello.............
 
 
We call my new poem: a Poem of Love in Free Verses
 
It's special in that i wrote it and i am addressing it to Liberty, like
addressing it to the Statue of Liberty, but you can also read it as if i
am addressing it to a women, or you can read it as i am addressing it to
"Liberty".
 
Here is my new arab poem in english and in french:
 
Please read it carefully:
 
https://sites.google.com/site/aminer68/my-poem
 
 
Please read it listening at the same time at this beautiful music of
Vangelis, to be more beautiful:
 
https://www.youtube.com/watch?v=55SVonv-sio
 
 
 
Thank you,
Amine Moulay Ramdane.
 
 
Thank you,
Amine Moulay Ramdane.
rami18 <coco@coco.com>: May 30 01:17PM -0400

Hello..
 
Here is my new arab poem in english and in french:
 
Please read it carefully:
 
https://sites.google.com/site/aminer68/my-poem
 
 
Please read it listening at the same time at this beautiful music of
Vangelis, to be more beautiful:
 
https://www.youtube.com/watch?v=55SVonv-sio
 
 
 
Thank you,
Amine Moulay Ramdane.
rami18 <coco@coco.com>: May 30 11:49AM -0400

Hello....
 
Here is one of my new arab poem that i have just wrote in english,
please read it carefully:
 
 
Tell the one with the pretty eyes of emerald
 
Let all my love flames have lit for her
 
And the days passed and her absence weighed me
 
Tell her that my nights have run away
 
 
Tell the one with the pretty eyes of emerald
 
To the one whose love made me suffer
 
To the one whose shadow no longer leaves me
 
How can I forget her after all these days?
 
Do not understand me well that he who has my disease of love
 
 
Tell the one with the pretty eyes of emerald
 
To the one whose love made me suffer
 
I did not think you were going to forget me
 
Life no longer has meaning away from you
 
Approach yourself as my life embellishes
 
Get close to my suffering
 
Do not understand me well that he who has my disease of love
 
 
But answer me my friends?
 
What have we kept from this strange life?
 
A moment of hope, an unfinished dream
 
And shadows of our shadows parading
 
On our mirrors broken by this miserly time
 
 
O my solitude, go! Lend me all your wings!
 
Just for one last time, for a last moment
 
Before dawn and the decline of the stars
 
That I may inebriate the depths of my soul
 
And finally join her, my beloved star ...
 
 
And then tell the one with the pretty eyes of emerald
 
Let all my love flames have lit for her
 
And the days passed and her absence weighed me
 
Tell her that my nights have run away
 
Tell the one with pretty eyes of emeralds
 
To the one whose love made me suffer
 
To the one whose shadow no longer leaves me
 
How can I forget her after all these days?
 
Do not understand me well that he who has my disease of love
 
 
And then our thoughts that go astray
 
To the seaside shores of the sea
 
And our eyes on the horizon
 
Under a blue sky and foreign
 
And our wandering souls
 
Worn by unknown waves
 
Bringing Love, Joy and Glee
 
A peaceful time that runs away ...
 
Under our bare and innocent feet
 
And thoughts that inhabit us
 
Like shadows of our shadows
 
Shadows intertwined forever.
 
 
And then a very gentle wind
 
Carrier of tender murmurs
 
Who ruffle the hair and undresses
 
Of all its miles and wonderful aromas
 
And a beautiful sunset
 
With plenty of golden lights
 
Who caress the sky of our lives
 
Who caress your face and your emerald eyes
 
And my words like nightingales
 
Who come to brighten your life
 
Full of multicolored songs
 
And nice sound waves
 
Where love and hope
 
Are the reflection of my mirror
 
 
Poet that I am
 
A Wandering Soul
 
Braving Darkness
 
And hecatombs
 
In the shadow of my words
 
Forming streams
 
The sad as the desperate
 
Seek to drink
 
 
The light of my poetry
 
Is a happiness
 
Gushing from the bottom
 
From my heart
 
 
And my poetry
 
A multicolored song
 
Like sound waves
 
Where sadness, love and hope
 
Are the reflections of my mirror
 
 
And then time ...
 
The time of a walk
 
The time of a meeting
 
The time of a smile
 
The time of a sweetness
 
The time of happiness
 
The time of a poetry
 
The time to disappear into oblivion ...
 
It's life...
 
 
 
Thank you,
Amine Moulay Ramdane.
You received this digest because you're subscribed to updates for this group. You can change your settings on the group membership page.
To unsubscribe from this group and stop receiving emails from it send an email to comp.programming.threads+unsubscribe@googlegroups.com.

Tuesday, May 30, 2017

Digest for comp.lang.c++@googlegroups.com - 22 updates in 6 topics

Mr Flibble <flibble@i42.co.uk>: May 30 05:35PM +0100

Hi!
 
Handling a button clicked event in my C++ GUI library "neoGFX" is
simplicity at its finest:
 
button1.clicked([](){ /* do stuff */}); // simplicity
 
This is achieved without the egregious use of macros to auto generate code.
 
http://neogfx.org
 
/Flibble
"Rick C. Hodgin" <rick.c.hodgin@gmail.com>: May 30 02:07PM -0700

On Tuesday, May 30, 2017 at 12:36:04 PM UTC-4, Mr Flibble wrote:
> Handling a button clicked event in my C++ GUI library "neoGFX" is:
> button1.clicked([](){ /* do stuff */}); // simplicity
 
What about parameters passed to the clicked() event? I might want
to know if it was left-clicked, right-clicked, middle-clicked, or
left-and-right clicked, left-and-middle-clicked, double-clicked,
double-right-clicked, etc. And what about the condition of the
modification keys like shift, alt, ctrl? Do you have thread-
level callbacks which support real-time sampling of those values?
What if the code on my clicked() event has to access a remote
Internet connection and it takes 5 seconds to establish a
connection, will the values of shift, ctrl, alt still be held
for me to examine if I poll them at some later point in my
algorithm after many seconds have gone by?
 
And what about code grouping? Am I now having to sift through
my GUI init() code to find all of the algorithms which handle
the various events? I don't have them arranged in a header or
class structure which can use traditional IDE tools to goto
body / definition? Now I'm going to a single init() event and
manually searching page after page for code, or using only a
ctrl+f Find feature of my editor?
 
It might be simple, but unless it provides some real utility in
function and the development environment, then such simplicity
is akin to useless.
 
Thank you,
Rick C. Hodgin
Mr Flibble <flibble@i42.co.uk>: May 30 10:35PM +0100

On 30/05/2017 22:07, Rick C. Hodgin wrote:
> double-right-clicked, etc. And what about the condition of the
> modification keys like shift, alt, ctrl? Do you have thread-
> level callbacks which support real-time sampling of those values?
 
Such information is available allowing such events to be easily created.
Left clicking a button is a common use-case whilst right clicking a
button is a rare use-case. I provide ready baked events for common
use-cases whilst allowing the flexibility to create events for rare
use-cases.
 
> connection, will the values of shift, ctrl, alt still be held
> for me to examine if I poll them at some later point in my
> algorithm after many seconds have gone by?
 
Then you are doing it wrong. A library doesn't have to support doing it
wrong use cases.
 
> body / definition? Now I'm going to a single init() event and
> manually searching page after page for code, or using only a
> ctrl+f Find feature of my editor?
 
You appear to have a beef with C++ lambdas which is foolish as they are
a great improvement to the language. You are not forced to use a lambda
as you can use use anything convertible to a std::function object.
 
> It might be simple, but unless it provides some real utility in
> function and the development environment, then such simplicity
> is akin to useless.
 
It is both simple and provides utility.
 
/Flibble
Christiano <christiano@engineer.com>: May 30 04:56PM -0300

PPP2 [1], appendix E, shows the following code:
 
//--------------begin-------------------------------
template<class T> class Vector_ref {
vector<T*> v;
vector<T*> owned;
public:
Vector_ref() {}
Vector_ref(T* a, T* b = 0, T* c = 0, T* d = 0); // <---- *HERE*
 
~Vector_ref() { for (int i=0; i<owned.size(); ++i) delete owned[i]; }
 
void push_back(T& s) { v.push_back(&s); }
void push_back(T* p) { v.push_back(p); owned.push_back(p); }
 
T& operator[](int i) { return *v[i]; }
const T& operator[](int i) const { return *v[i]; }
 
int size() const { return v.size(); }
};
//----------------end-------------------------------
 
The problem is the line:
Vector_ref(T* a, T* b = 0, T* c = 0, T* d = 0);
 
This constructor doesn't have definition. Did he just forget to write that constructor or it is just a technique?
 
____________
[1] http://www.stroustrup.com/Programming/
Paavo Helde <myfirstname@osa.pri.ee>: May 30 11:19PM +0300

On 30.05.2017 22:56, Christiano wrote:
> PPP2 [1], appendix E, shows the following code:
 
> This constructor doesn't have definition. Did he just forget to write
> that constructor or it is just a technique?
 
Maybe it was left as an exercise for the reader?
Mr Flibble <flibble@i42.co.uk>: May 30 05:33PM +0100

On 29/05/2017 23:03, Rick C. Hodgin wrote:
> Leigh. It's why you can't hear it today. You aren't looking for
> the truth, and you have not yet been drawn by God to be able to
> even receive it.
 
Your god doesn't exist though; I know this because I know evolution is a
fact.
 
/Flibble
Melzzzzz <Melzzzzz@zzzzz.com>: May 30 04:36PM

>> even receive it.
 
> Your god doesn't exist though; I know this because I know evolution is a
> fact.
 
Evolution does not debunks gods, rather Bible...
 
 
 
--
press any key to continue or any other to quit...
Mr Flibble <flibble@i42.co.uk>: May 30 05:40PM +0100

On 30/05/2017 17:36, Melzzzzz wrote:
 
>> Your god doesn't exist though; I know this because I know evolution is a
>> fact.
 
> Evolution does not debunks gods, rather Bible...
 
Evolution does not debunk gods in general but it can debunk specific
gods such as Rick's god (the god of Abraham). If you can falsify the
Bible then you can falsify anything predicated on the Bible being true.
 
/Flibble
"Rick C. Hodgin" <rick.c.hodgin@gmail.com>: May 30 09:48AM -0700

On Tuesday, May 30, 2017 at 12:33:36 PM UTC-4, Mr Flibble wrote:
> > even receive it.
 
> Your god doesn't exist though; I know this because I know evolution
> is a fact.
 
You've been taught evolution is a fact, so it's natural to believe
that. But modern DNA / genetics research is proving that evolution
is impossible, outside of minor variations within an already-existing
species, because the complexities involved to get from A to B are
beyond impossible. In fact, the complexities to get from A.00000001
to A.00000002 are beyond impossible.
 
I know it's a difficult pill to swallow, Leigh, but you really have
been lied to by mainstream science and all mainstream knowledge
bases since you were born. It's what the mainstream in this world
does because it's trying to keep you from coming to the truth and
coming to Jesus and asking forgiveness and saving your eternal soul
from death.
 
I ask you to look into the DNA research and see for yourself if
what I claim is true. To find out the complexities involved, and
how many errors are introduced in trying to change even one thing
in the genome, as by moving from A to B.
 
Cats always produce cats. Dogs always produce dogs. There are
never any cases where Xyz produces a non-Xyz, but only there are
pre-programmed, allowable variations within the design, so that
any new changes will only work within their pre-existing allowance
for those changes.
 
Thank you,
Rick C. Hodgin
Melzzzzz <Melzzzzz@zzzzz.com>: May 30 04:56PM


> Evolution does not debunk gods in general but it can debunk specific
> gods such as Rick's god (the god of Abraham). If you can falsify the
> Bible then you can falsify anything predicated on the Bible being true.
 
Bible is easily debunked.
 
--
press any key to continue or any other to quit...
"Rick C. Hodgin" <rick.c.hodgin@gmail.com>: May 30 10:00AM -0700

On Tuesday, May 30, 2017 at 12:56:11 PM UTC-4, Melzzzzz wrote:
> Bible is easily debunked.
 
You're going to be in for a real shocker on that last day, Melzzzzz.
 
I pray you turn to Jesus before that day so you are spared an
eternity consumed in unending Hellfire because you would not
hear the truth in this world).
 
You are valuable, Melzzzzz. Jesus offers you forgiveness without
judgment. He'll begin the process of healing and guiding you from
this day forward, and He'll give you eternal life in the paradise of
Heaven.
 
It is that which the enemy is trying to keep you from by speaking
his lies, as if they are authoritative over God and truth. They are
not. The devil lies for one purpose: to keep you condemned to Hell
with him and his sorry self.
 
Thank you,
Rick C. Hodgin
Mr Flibble <flibble@i42.co.uk>: May 30 06:08PM +0100

On 30/05/2017 17:48, Rick C. Hodgin wrote:
> pre-programmed, allowable variations within the design, so that
> any new changes will only work within their pre-existing allowance
> for those changes.
 
So much gibberish I'm afraid Rick. It is obvious that you do not
understand the process of speciation.
 
/Flibble
"Rick C. Hodgin" <rick.c.hodgin@gmail.com>: May 30 10:22AM -0700

On Tuesday, May 30, 2017 at 1:09:15 PM UTC-4, Mr Flibble wrote:
> It is obvious that you do not understand the process of speciation.
 
There is another model which explains it, Leigh. And that model also
aligns with the flood, and what we see in nature, and in science, and
in laboratories today. It does not require any leaps of faith to
understand, except for one: that we were created by God for a real
purpose. The rest of the things we can examine align perfectly with
the theory.
 
Here's the video that explains it (begins at 7:58):
www.youtube.com/watch?v=KbODW6XO8zY&t=7m58s
 
There are also books and articles. But the gist goes like this:
 
(1) Master kinds of each animal were created by God.
 
(2) They were programmed by God to diversify through
each generation. Adam had all of the different
people forms within him, and each generation created
variations from Adam which went out to the various
forms, which later were used to group people together
at the Tower of Babel, so that like-appearance people
went off to the same areas because they could speak
the same language.
 
(3) This method was to create diverse forms from the
master form over time.
 
(4) We see the same changes today, such as breeding to
particular forms. You cannot go back to the original
form from the more specialized form because there's
been a reduction of genetic expression through the
specialized generations, but you can take the original
form and get once again to the more specialized form
because that information is still there.
 
It's the same with all life.
 
Thank you,
Rick C. Hodgin
Mr Flibble <flibble@i42.co.uk>: May 30 06:30PM +0100

On 30/05/2017 18:22, Rick C. Hodgin wrote:
> form and get once again to the more specialized form
> because that information is still there.
 
> It's the same with all life.
 
You think you have an answer to every rebuttal but alas all your answers
are in fact the same (effectively a jumbly word salad) and of course all
are equally wrong.
 
/Flibble
"Rick C. Hodgin" <rick.c.hodgin@gmail.com>: May 30 10:36AM -0700

On Tuesday, May 30, 2017 at 1:31:14 PM UTC-4, Mr Flibble wrote:
 
> You think you have an answer to every rebuttal but alas all your answers
> are in fact the same (effectively a jumbly word salad) and of course all
> are equally wrong.
 
Have you examined them so you are speaking on exhaustive research?
Or is this conclusion based on what you've been taught previously?
 
It's new research into genetics, Leigh, only conducted within the
last 15 years, and even more specifically findings published only
in the last 3 or 4 years.
 
And the evidence is pointing scientists to a re-examination of their
prior firmly held beliefs.
 
Did you know that over 80% of what was once considered "junk DNA"
has been found operating in a regulatory capacity in our genetic
makeup? And that 80% is admitted by the researchers to be a very
conservative number because they can only scientifically prove
that percentage, but there are hints it is much higher, and many
of the scientists believe they'll eventually find it's 100%.
 
This information is out there, Leigh, but it doesn't get mainstream
publication or acceptance because there's an enemy at work in this
world who wants your soul destroyed in Hell.
 
The truth is before you, Leigh. Seek it out. Search it out. Go
deep and examine far. Do the research on your own, to your own
satisfaction. You'll find what I'm telling you, and not because
I'm somehow imposing a viewpoint upon you, but because it's what
the literal evidence points you toward.
 
-----
I'm asking you to prove to yourself what I'm saying, if it's right
or wrong. It's the only way you can know for sure if the Biblical
viewpoint is correct or not, because right now you're guessing,
and it's a big thing to put a guess on.
 
Thank you,
Rick C. Hodgin
Mr Flibble <flibble@i42.co.uk>: May 30 08:54PM +0100

On 30/05/2017 18:36, Rick C. Hodgin wrote:
> or wrong. It's the only way you can know for sure if the Biblical
> viewpoint is correct or not, because right now you're guessing,
> and it's a big thing to put a guess on.
 
Yet more word salad jumbly.
 
/Flibble
"Rick C. Hodgin" <rick.c.hodgin@gmail.com>: May 30 01:10PM -0700

On Tuesday, May 30, 2017 at 3:54:36 PM UTC-4, Mr Flibble wrote:
> Yet more word salad jumbly.
 
If it were me, I'd want to know. I wouldn't find peace until I knew
if what I "knew" was real, or if it was only something I had been
taught that didn't stand up to direct scrutiny.
 
That's actually how I came to faith, Leigh. I didn't want to guess
I was right, but I wanted to know ... so I began investigating, and
in so doing set my sights on coming to the truth even if it meant
unraveling what I previously thought I knew. I was convinced I was
right, so I was expecting to find my viewpoint. But the truth took
hold of my life and changed everything.
 
-----
There's no shame in being wrong. The enemy we face is not a small
enemy. He's pulled the wool over the eyes of the vast majority of
people on this world because of sin. Satan and his demon agents
are working all around us continually, guiding us, prompting us,
and leading us directly away from the things of God. They make it
easy to follow paths toward self-destruction, and difficult to
follow paths of truth.
 
If you ever come to faith you'll know what I mean.
 
Thank you,
Rick C. Hodgin
Tim Rentsch <txr@alumni.caltech.edu>: May 30 06:53AM -0700

>> it provides a way of "looping" in functions but which still can
>> be 'constexpr'.
 
> Oh, this was relaxed in C++14. [...]
 
Yes I know. I deliberately aim for C++11 compatibility where
I can, not just with constexpr but generally. Also I find a
functional/recursive style is in many cases easier to write
and easier to understand, so I am predisposed to use it in
cases where it isn't really awkward.
"Alf P. Steinbach" <alf.p.steinbach+usenet@gmail.com>: May 30 04:28PM +0200

On 30-May-17 3:53 PM, Tim Rentsch wrote:
> functional/recursive style is in many cases easier to write
> and easier to understand, so I am predisposed to use it in
> cases where it isn't really awkward.
 
OK. I'm sorry but what I wrote
 
> (but Visual C++ 2017 lacks support)
 
was just wrong.
 
As I understand it Visual C++ 2017 eats `constexpr` functions with loops
for breakfast, enthusiastically. It also has modules, C++ 2017 file
system, and possibly coroutine support.
 
But I still haven't managed to fix my config script to use Visual C++
2017 instead of Visual C++ 2015 in the command line.
 
And for some inexplicable reason I keep forgetting that I haven't fixed it.
 
 
Cheers!,
 
- Alf
Ian Collins <ian-news@hotmail.com>: May 31 08:05AM +1200

On 05/31/17 01:53 AM, Tim Rentsch wrote:
 
>> Oh, this was relaxed in C++14. [...]
 
> Yes I know. I deliberately aim for C++11 compatibility where
> I can, not just with constexpr but generally.
 
C++14 is a better target these days, the improvements, while small, were
significant and every compiler I know supports it.
 
--
Ian
aminer68@gmail.com: May 30 10:40AM -0700

Hello..
 
Here is my new arab poem in english and in french:
 
Please read it carefully:
 
https://sites.google.com/site/aminer68/my-poem
 
 
Please read it listening at the same time at this beautiful music of
Vangelis, to be more beautiful:
 
https://www.youtube.com/watch?v=55SVonv-sio
 
 
 
Thank you,
Amine Moulay Ramdane.
Juha Nieminen <nospam@thanks.invalid>: May 30 06:50AM

> I say debugging template, is more difficult that debugging complex C macro...
 
So you said it. Now what? What do you want us to do about it?
You received this digest because you're subscribed to updates for this group. You can change your settings on the group membership page.
To unsubscribe from this group and stop receiving emails from it send an email to comp.lang.c+++unsubscribe@googlegroups.com.