"Do not feed the trolls"

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
81 messages Options
12345
Reply | Threaded
Open this post in threaded view
|

"Do not feed the trolls"

Dale Henrichs
From Wikipedia:

In Internet slang, a troll is someone who posts inflammatory,[2] extraneous, or off-topic messages in an online community, such as an online discussion forum, chat room, or blog, with the primary intent of provoking readers into an emotional response[3] or of otherwise disrupting normal on-topic discussion.[4] The noun troll may refer to the provocative message itself, as in: "That was an excellent troll you posted".

Reply | Threaded
Open this post in threaded view
|

Re: "Do not feed the trolls"

Guido Stepken

Tnx for the flowers!

Ok, lets resume, what we did see from the Pharo team since Pharo 1.0, 15. April 2010:

Much advanced code. Yes. But - what for? Any *important* app outside there? Dr.Geo ... any parametric CAD can do this! CMSBOX - pfffft! How many customers?

Pharo - still unstable, unusable, no sponsors.

Jitter? Hmmm...  e.g. LUAJit *has* sponsors, *very* mighty sponsors, WoW, Wikipedia ... and it *ins* rock stable, portable to 32bit, 64bit Intel, PPC *and* ARM!!!

One man show, b.t.w.!! Like Elliot Miranda with COGVM!

Develop the development process!

tnx for seeing reality,

Guido Stepken

Am 21.02.2012 02:00 schrieb "Dale Henrichs" <[hidden email]>:
From Wikipedia:

In Internet slang, a troll is someone who posts inflammatory,[2] extraneous, or off-topic messages in an online community, such as an online discussion forum, chat room, or blog, with the primary intent of provoking readers into an emotional response[3] or of otherwise disrupting normal on-topic discussion.[4] The noun troll may refer to the provocative message itself, as in: "That was an excellent troll you posted".

Reply | Threaded
Open this post in threaded view
|

Re: "Do not feed the trolls"

Peter Hugosson-Miller
In reply to this post by Dale Henrichs
Nice try, Dale, but this troll will apparently eat anything - even Wikipedia articles :-p

--
Cheers,
Peter.
Reply | Threaded
Open this post in threaded view
|

Re: "Do not feed the trolls"

Guido Stepken

Much simpler calling s.b. a troll than changing own behaviour!!! :-)

You get old and unflexible, when you rather start to defend, refusing to see facts:

"Its not me, who is responsible for the failing of the product in the market, i am working hard!!!!!"

Always the same .... I hate it, this attitude.

tnx 4 understanding,

Guido Stepken

Am 21.02.2012 02:29 schrieb "Peter Hugosson-Miller" <[hidden email]>:
Nice try, Dale, but this troll will apparently eat anything - even Wikipedia articles :-p

--
Cheers,
Peter.
Reply | Threaded
Open this post in threaded view
|

Re: "Do not feed the trolls"

Stuart Herring-2
In reply to this post by Guido Stepken
>
> Develop the development process!
>

You keep saying this, but you don't explain what you mean.
You think Pharo's development process is flawed. Ok, we get that.  But
what exactly do you suggest be done about it?

To be clear - I am _not_ asking to hear what's _wrong_ with it.  I
want to hear a positive suggestion of something that can be done.
Something practical and possible.

Once given that, Stephane and the others can either use the
information, or not.  But either way you will have said your piece and
there will be no need to say any more.

Reply | Threaded
Open this post in threaded view
|

Re: "Do not feed the trolls"

Schwab,Wilhelm K
+10.


________________________________________
From: [hidden email] [[hidden email]] on behalf of Stuart Herring [[hidden email]]
Sent: Monday, February 20, 2012 9:29 PM
To: [hidden email]
Subject: Re: [Pharo-project] "Do not feed the trolls"

>
> Develop the development process!
>

You keep saying this, but you don't explain what you mean.
You think Pharo's development process is flawed. Ok, we get that.  But
what exactly do you suggest be done about it?

To be clear - I am _not_ asking to hear what's _wrong_ with it.  I
want to hear a positive suggestion of something that can be done.
Something practical and possible.

Once given that, Stephane and the others can either use the
information, or not.  But either way you will have said your piece and
there will be no need to say any more.


Reply | Threaded
Open this post in threaded view
|

Re: "Do not feed the trolls"

wysseier
In reply to this post by Guido Stepken
Guido Stepken wrote
Much advanced code. Yes. But - what for? Any *important* app outside there?
Dr.Geo ... any parametric CAD can do this! CMSBOX - pfffft! How many
customers?

Pharo - still unstable, unusable, no sponsors.

Jitter? Hmmm...  e.g. LUAJit *has* sponsors, *very* mighty sponsors, WoW,
Wikipedia ... and it *ins* rock stable, portable to 32bit, 64bit Intel, PPC
*and* ARM!!!

One man show, b.t.w.!! Like Elliot Miranda with COGVM!

Develop the development process!

tnx for seeing reality,

Guido Stepken
I guess I need now to thank you too for your flowers...

It is not up to me whether our CMSBOX is an important project in a general context. But to answer your question: almost 500 customers in Switzerland are using this Pharo-based application until now and for them, this application and the underlying very stable technology with ongoing development IS important. Besides, we at netstyle.ch created several business critical web-based applications, from automatic inventory management to a large CRM for a Swiss insurance broker. Although you probably never heard of these applications I guess we are nevertheless an important component of the Pharo eco system and we use it because we believe it to be the right way of the ongoing development.

Although there is always room for improvement, the migration to Pharo was and is an important step within our company strategy. On this basis, we built a company from scratch with more than 10 employees whereof five software engineers are doing nothing else than working with the Pharo IDE. It is due to the ongoing development of a small community that our personal "success" became possible. Could not be more thankful for that! Keep the work going!

To now improve whatever needs to improved in your opinion, one should not issue orders to or offend the community but to collaborate constructively on suggestions. Honestly, this was not our strength within the past months too, but we are willing to support this lively community as much as we can in the future although we are not Wikipedia or similar. I am convinced that a constructive and appreciative  collaboration is the only way to improve Pharo so please consider my words when writing your next message.

Cheers,

Chris Wysseier
Founder and CEO of netstyle.ch and cmsbox

P.S: Also wanted to say hi to everybody as I am new on the list. Be aware that I am not an *experienced* software engineer (let's say "anymore" ;) ) and therefore will not be able to discuss on technical strategies or tasks. But I would like to know what is going on and to show support and presence to all of you.
Reply | Threaded
Open this post in threaded view
|

Re: "Do not feed the trolls"

Nicolas Petton
In reply to this post by Guido Stepken
Guido,

I'd rather focus on positive energy.

Please understand that you're not helping, at all. I'm kindly asking you
to stop, you're attitude is polluting this mailing list.


Cheers,
Nico

On 21/02/12 02:40, Guido Stepken wrote:

> Much simpler calling s.b. a troll than changing own behaviour!!! :-)
>
> You get old and unflexible, when you rather start to defend, refusing to
> see facts:
>
> "Its not me, who is responsible for the failing of the product in the
> market, i am working hard!!!!!"
>
> Always the same .... I hate it, this attitude.
>
> tnx 4 understanding,
>
> Guido Stepken
>
> Am 21.02.2012 02:29 schrieb "Peter Hugosson-Miller"
> <[hidden email] <mailto:[hidden email]>>:
>
>     Nice try, Dale, but this troll will apparently eat anything - even
>     Wikipedia articles :-p
>
>     --
>     Cheers,
>     Peter.
>


--
Nicolas Petton
http://nicolas-petton.fr

Reply | Threaded
Open this post in threaded view
|

Re: Netstyle experience (was Do not feed the trolls)

Janko Mivšek
In reply to this post by wysseier
Hi Chris,

Thank you very much for your experience report and I think I'm not alone
to like to hear from your more about what are your wishes as a manager
from the Pharo in the future. Because you are an "enterprise" (in a
positive meaning of that word) Pharo user.

Maybe let me start asking you an opinion of what I'd like to see from
Pharo as a priority:

 - more stability,
 - better user experience (UX),
 - better version control and packaging tools
 - better integration of tools
 - tabbed browsing, back button etc

More polishing and boring bug hunting tasks therefore and just a bit
less fundamental rewritings like compiler etc. Later are more academic
and more interesting, yes, but IMHO for us the "enterprise" users the
above priorities are much more important.

Best regards
Janko


S, wysseier piše:

> Guido Stepken wrote
>>
>> Much advanced code. Yes. But - what for? Any *important* app outside
>> there?
>> Dr.Geo ... any parametric CAD can do this! CMSBOX - pfffft! How many

> I guess I need now to thank you too for your flowers...
>
> It is not up to me whether our CMSBOX is an important project in a general
> context. But to answer your question: almost 500 customers in Switzerland
> are using this Pharo-based application until now and for them, this
> application and the underlying very stable technology with ongoing
> development IS important. Besides, we at netstyle.ch created several
> business critical web-based applications, from automatic inventory
> management to a large CRM for a Swiss insurance broker. Although you
> probably never heard of these applications I guess we are nevertheless an
> important component of the Pharo eco system and we use it because we believe
> it to be the right way of the ongoing development.
>
> Although there is always room for improvement, the migration to Pharo was
> and is an important step within our company strategy. On this basis, we
> built a company from scratch with more than 10 employees whereof five
> software engineers are doing nothing else than working with the Pharo IDE.
> It is due to the ongoing development of a small community that our personal
> "success" became possible. Could not be more thankful for that! Keep the
> work going!
>
> To now improve whatever needs to improved in your opinion, one should not
> issue orders to or offend the community but to collaborate constructively on
> suggestions. Honestly, this was not our strength within the past months too,
> but we are willing to support this lively community as much as we can in the
> future although we are not Wikipedia or similar. I am convinced that a
> constructive and appreciative  collaboration is the only way to improve
> Pharo so please consider my words when writing your next message.
>
> Cheers,
>
> Chris Wysseier
> Founder and CEO of netstyle.ch and cmsbox
>
> P.S: Also wanted to say hi to everybody as I am new on the list. Be aware
> that I am not an *experienced* software engineer (let's say "anymore" ;) )
> and therefore will not be able to discuss on technical strategies or tasks.
> But I would like to know what is going on and to show support and presence
> to all of you.
>
> --
> View this message in context: http://forum.world.st/Do-not-feed-the-trolls-tp4405636p4406708.html
> Sent from the Pharo Smalltalk mailing list archive at Nabble.com.
>
>

--
Janko Mivšek
Aida/Web
Smalltalk Web Application Server
http://www.aidaweb.si

Reply | Threaded
Open this post in threaded view
|

Re: "Do not feed the trolls"

Sven Van Caekenberghe
In reply to this post by wysseier
Hi Chris,

On 21 Feb 2012, at 12:12, wysseier wrote:

> It is not up to me whether our CMSBOX is an important project in a general
> context. But to answer your question: almost 500 customers in Switzerland
> are using this Pharo-based application until now and for them, this
> application and the underlying very stable technology with ongoing
> development IS important. Besides, we at netstyle.ch created several
> business critical web-based applications, from automatic inventory
> management to a large CRM for a Swiss insurance broker. Although you
> probably never heard of these applications I guess we are nevertheless an
> important component of the Pharo eco system and we use it because we believe
> it to be the right way of the ongoing development.
>
> Although there is always room for improvement, the migration to Pharo was
> and is an important step within our company strategy. On this basis, we
> built a company from scratch with more than 10 employees whereof five
> software engineers are doing nothing else than working with the Pharo IDE.
> It is due to the ongoing development of a small community that our personal
> "success" became possible. Could not be more thankful for that! Keep the
> work going!
>
> To now improve whatever needs to improved in your opinion, one should not
> issue orders to or offend the community but to collaborate constructively on
> suggestions. Honestly, this was not our strength within the past months too,
> but we are willing to support this lively community as much as we can in the
> future although we are not Wikipedia or similar. I am convinced that a
> constructive and appreciative  collaboration is the only way to improve
> Pharo so please consider my words when writing your next message.
>
> Cheers,
>
> Chris Wysseier
> Founder and CEO of netstyle.ch and cmsbox
>
> P.S: Also wanted to say hi to everybody as I am new on the list. Be aware
> that I am not an *experienced* software engineer (let's say "anymore" ;) )
> and therefore will not be able to discuss on technical strategies or tasks.
> But I would like to know what is going on and to show support and presence
> to all of you.

Thanks for sharing this information!

This is good to hear.

We hope to hear more from you and the netstyle Smaltalkers in the future.

Sven
 
Reply | Threaded
Open this post in threaded view
|

Re: Netstyle experience (was Do not feed the trolls)

Dave Mason-3
In reply to this post by Janko Mivšek

On Feb 21, 2012, at 07:07, Janko Mivšek wrote:

> - more stability,

This is the biggest thing for me.  I'm trying to get my Analysis of Algorithms students to recognise and value a powerful environment like Pharo Smalltalk, but some of them are experiencing so many crashes that they've taken to entering their code in Notepad and then pasting it into Pharo!!!  This is not a strong advert for Smalltalk or Pharo.

I suspect many of these crashes are stack overflows.  I *thought* that Squeak/Pharo was supposed to recognise stack overflow, but I just wrote a method:
        crash
                ^self crash + 4
and my image grew to 500+MB and then crashed.  This is with Pharo 1.3 one-click.  With 1.1 one-click, I *do* get the Low space window popping up at 516MB (although I don't appear able to do much... it doesn't even seem to quit-no-save); I eventually did a force-quit.  This is all on Mac OS X 10.6.8.
The 1.3 says:
        VM: Mac OS - intel - 1068 - Croquet Closure Cog VM
                [CoInterpreter VMMaker-oscog- IgorStasenko.123] 21.0
        Image: Pharo1.3 [Latest update: #13307]

How can I get more stability?  Is it time to move to 1.4?  Is there something I or my students can do to help?

Thanks for everybody's efforts!

../Dave
Reply | Threaded
Open this post in threaded view
|

Re: Netstyle experience (was Do not feed the trolls)

Camillo Bruni-3
yeah I agree that would be great if a debugger would popup there...

On 2012-02-21, at 15:34, Dave Mason wrote:

>
> On Feb 21, 2012, at 07:07, Janko Mivšek wrote:
>
>> - more stability,
>
> This is the biggest thing for me.  I'm trying to get my Analysis of Algorithms students to recognise and value a powerful environment like Pharo Smalltalk, but some of them are experiencing so many crashes that they've taken to entering their code in Notepad and then pasting it into Pharo!!!  This is not a strong advert for Smalltalk or Pharo.
>
> I suspect many of these crashes are stack overflows.  I *thought* that Squeak/Pharo was supposed to recognise stack overflow, but I just wrote a method:
> crash
> ^self crash + 4
> and my image grew to 500+MB and then crashed.  This is with Pharo 1.3 one-click.  With 1.1 one-click, I *do* get the Low space window popping up at 516MB (although I don't appear able to do much... it doesn't even seem to quit-no-save); I eventually did a force-quit.  This is all on Mac OS X 10.6.8.
> The 1.3 says:
> VM: Mac OS - intel - 1068 - Croquet Closure Cog VM
> [CoInterpreter VMMaker-oscog- IgorStasenko.123] 21.0
> Image: Pharo1.3 [Latest update: #13307]
>
> How can I get more stability?  Is it time to move to 1.4?  Is there something I or my students can do to help?
>
> Thanks for everybody's efforts!
>
> ../Dave


Reply | Threaded
Open this post in threaded view
|

Re: Netstyle experience

Sven Van Caekenberghe
In reply to this post by Dave Mason-3
Hi Dave,

On 21 Feb 2012, at 15:34, Dave Mason wrote:

> This is the biggest thing for me.  I'm trying to get my Analysis of Algorithms students to recognise and value a powerful environment like Pharo Smalltalk, but some of them are experiencing so many crashes that they've taken to entering their code in Notepad and then pasting it into Pharo!!!  This is not a strong advert for Smalltalk or Pharo.
>
> I suspect many of these crashes are stack overflows.  I *thought* that Squeak/Pharo was supposed to recognise stack overflow, but I just wrote a method:
> crash
> ^self crash + 4
> and my image grew to 500+MB and then crashed.  This is with Pharo 1.3 one-click.  With 1.1 one-click, I *do* get the Low space window popping up at 516MB (although I don't appear able to do much... it doesn't even seem to quit-no-save); I eventually did a force-quit.  This is all on Mac OS X 10.6.8.
> The 1.3 says:
> VM: Mac OS - intel - 1068 - Croquet Closure Cog VM
> [CoInterpreter VMMaker-oscog- IgorStasenko.123] 21.0
> Image: Pharo1.3 [Latest update: #13307]
>
> How can I get more stability?  Is it time to move to 1.4?  Is there something I or my students can do to help?
>
> Thanks for everybody's efforts!
>
> ../Dave

Out of the box experience is indeed very important.

There was an important fix related to stopping infinite loops recently, I am sure the latest 1.4 includes it.

Sven


Reply | Threaded
Open this post in threaded view
|

Re: Netstyle experience

S Krish


Having talked about this many times earlier, i have now codified for the system that has impediment to using toggle breakpoint, halts in polling methods, kernel , system classes etc.. saving the file after any runtime execution of Pharo..  I do have personally a stable env now with 1.3 on ubuntu but on windows though a big improvement now, it still stack overflows more due to a basic mistake no experienced small talker commits viz putting a halt in a polling method, System classes etc.. , modifying a code that is invoked every millisecond in say mouseDown: or the ilk.

What is needed is a very simple Pharo kernel, that has this safe mode on, which disallows for a fresher the mistakes which bites....





Not Feb 21, 2012, at 8:24 PM, Sven Van Caekenberghe <[hidden email]> wrote:

> Hi Dave,
>
> On 21 Feb 2012, at 15:34, Dave Mason wrote:
>
>> This is the biggest thing for me.  I'm trying to get my Analysis of Algorithms students to recognise and value a powerful environment like Pharo Smalltalk, but some of them are experiencing so many crashes that they've taken to entering their code in Notepad and then pasting it into Pharo!!!  This is not a strong advert for Smalltalk or Pharo.
>>
>> I suspect many of these crashes are stack overflows.  I *thought* that Squeak/Pharo was supposed to recognise stack overflow, but I just wrote a method:
>>    crash
>>        ^self crash + 4
>> and my image grew to 500+MB and then crashed.  This is with Pharo 1.3 one-click.  With 1.1 one-click, I *do* get the Low space window popping up at 516MB (although I don't appear able to do much... it doesn't even seem to quit-no-save); I eventually did a force-quit.  This is all on Mac OS X 10.6.8.
>> The 1.3 says:
>>    VM: Mac OS - intel - 1068 - Croquet Closure Cog VM
>>        [CoInterpreter VMMaker-oscog-    IgorStasenko.123] 21.0
>>    Image: Pharo1.3 [Latest update: #13307]
>>
>> How can I get more stability?  Is it time to move to 1.4?  Is there something I or my students can do to help?
>>
>> Thanks for everybody's efforts!
>>
>> ../Dave
>
> Out of the box experience is indeed very important.
>
> There was an important fix related to stopping infinite loops recently, I am sure the latest 1.4 includes it.
>
> Sven
>
>

Reply | Threaded
Open this post in threaded view
|

Re: "Do not feed the trolls"

Stéphane Ducasse
In reply to this post by wysseier
Thanks a lot Christophe!
I love your trust :)
It puts such responsibility on us but we accept it and we will do our best to make sure you can deliver
robust and cool applications.

For your information, Pinesoft's CEO told me that they are full of Pharo projects - a great news.
Stef

> It is not up to me whether our CMSBOX is an important project in a general
> context. But to answer your question: almost 500 customers in Switzerland
> are using this Pharo-based application until now and for them, this
> application and the underlying very stable technology with ongoing
> development IS important. Besides, we at netstyle.ch created several
> business critical web-based applications, from automatic inventory
> management to a large CRM for a Swiss insurance broker. Although you
> probably never heard of these applications I guess we are nevertheless an
> important component of the Pharo eco system and we use it because we believe
> it to be the right way of the ongoing development.
>
> Although there is always room for improvement, the migration to Pharo was
> and is an important step within our company strategy. On this basis, we
> built a company from scratch with more than 10 employees whereof five
> software engineers are doing nothing else than working with the Pharo IDE.
> It is due to the ongoing development of a small community that our personal
> "success" became possible. Could not be more thankful for that! Keep the
> work going!
>
> To now improve whatever needs to improved in your opinion, one should not
> issue orders to or offend the community but to collaborate constructively on
> suggestions. Honestly, this was not our strength within the past months too,
> but we are willing to support this lively community as much as we can in the
> future although we are not Wikipedia or similar. I am convinced that a
> constructive and appreciative  collaboration is the only way to improve
> Pharo so please consider my words when writing your next message.
>
> Cheers,
>
> Chris Wysseier
> Founder and CEO of netstyle.ch and cmsbox
>
> P.S: Also wanted to say hi to everybody as I am new on the list. Be aware
> that I am not an *experienced* software engineer (let's say "anymore" ;) )
> and therefore will not be able to discuss on technical strategies or tasks.
> But I would like to know what is going on and to show support and presence
> to all of you.
>
> --
> View this message in context: http://forum.world.st/Do-not-feed-the-trolls-tp4405636p4406708.html
> Sent from the Pharo Smalltalk mailing list archive at Nabble.com.
>


Reply | Threaded
Open this post in threaded view
|

Re: Netstyle experience (was Do not feed the trolls)

Stéphane Ducasse
In reply to this post by Janko Mivšek
Hi janko

> More polishing and boring bug hunting tasks therefore and just a bit
> less fundamental rewritings like compiler etc.

Did you ever look at one bug entry?
You see the bug entry does not magically empty itself. There are people like me and marcus
and a couple of others that are looking at reports, producing fixes...

> Later are more academic and more interesting, yes, but IMHO for us the "enterprise" users the
> above priorities are much more important.

Well this is not true:
        - if you want to build the next generation of code coverage tools
        - better tools
        - without a good compiler we can also say bye bye to the next generation of optimization
        do not think that Cog is the end of the story. It is just the start.

then you need to be able to understand the code and be able to fix it.
So the compiler is important.

Stef
Reply | Threaded
Open this post in threaded view
|

Re: Netstyle experience (was Do not feed the trolls)

Stéphane Ducasse
In reply to this post by Dave Mason-3

On Feb 21, 2012, at 3:34 PM, Dave Mason wrote:

>
> On Feb 21, 2012, at 07:07, Janko Mivšek wrote:
>
>> - more stability,
>
> This is the biggest thing for me.  I'm trying to get my Analysis of Algorithms students to recognise and value a powerful environment like Pharo Smalltalk, but some of them are experiencing so many crashes that they've taken to entering their code in Notepad and then pasting it into Pharo!!!  This is not a strong advert for Smalltalk or Pharo.


I  have may be a crash per month or so at the maximum and even in this case I'm doing something nasty.
and nobody in our team experience that. Pharo is crashing less than my mac email client!

You should report that as soon as you get it.

> I suspect many of these crashes are stack overflows.  I *thought* that Squeak/Pharo was supposed to recognise stack overflow, but I just wrote a method:
> crash
> ^self crash + 4
> and my image grew to 500+MB and then crashed.  This is with Pharo 1.3 one-click.  With 1.1 one-click, I *do* get the Low space window popping up at 516MB (although I don't appear able to do much... it doesn't even seem to quit-no-save); I eventually did a force-quit.  This is all on Mac OS X 10.6.8.

really?

> The 1.3 says:
> VM: Mac OS - intel - 1068 - Croquet Closure Cog VM
> [CoInterpreter VMMaker-oscog- IgorStasenko.123] 21.0
> Image: Pharo1.3 [Latest update: #13307]
>
> How can I get more stability?  Is it time to move to 1.4?  Is there something I or my students can do to help?

This is really strange.
>
> Thanks for everybody's efforts!
>
> ../Dave


Reply | Threaded
Open this post in threaded view
|

Re: Netstyle experience (was Do not feed the trolls)

Igor Stasenko
In reply to this post by Stéphane Ducasse
True.
Again, there are two opposing forces:  compatibility versus improvement.
Sometimes it is very hard or even impossible to improve system without
breaking compatibility.

What i don't see, is how things which lying in front of us are related
to any sort of
academia research. They are completely practical:
 - improve event handling
 - move to new file system
 - provide better FFI
 - new compiler
 and so on.

You know, Janko, polishing makes sense if you have something which
looks fine and you
know that it will serve you well in future. But polishing things which
were lying broken in garage for years makes little sense.

People might mistakenly think that we wanna change things solely for
the sake of change. But it is not like that.
We need these changes , need to fix our infrastructure, because
without solid basement you cannot build anything good.


On 21 February 2012 22:30, Stéphane Ducasse <[hidden email]> wrote:

> Hi janko
>
>> More polishing and boring bug hunting tasks therefore and just a bit
>> less fundamental rewritings like compiler etc.
>
> Did you ever look at one bug entry?
> You see the bug entry does not magically empty itself. There are people like me and marcus
> and a couple of others that are looking at reports, producing fixes...
>
>> Later are more academic and more interesting, yes, but IMHO for us the "enterprise" users the
>> above priorities are much more important.
>
> Well this is not true:
>        - if you want to build the next generation of code coverage tools
>        - better tools
>        - without a good compiler we can also say bye bye to the next generation of optimization
>        do not think that Cog is the end of the story. It is just the start.
>
> then you need to be able to understand the code and be able to fix it.
> So the compiler is important.
>
> Stef



--
Best regards,
Igor Stasenko.

Reply | Threaded
Open this post in threaded view
|

Re: Netstyle experience (was Do not feed the trolls)

Stéphane Ducasse
>
> People might mistakenly think that we wanna change things solely for
> the sake of change. But it is not like that.
> We need these changes , need to fix our infrastructure, because
> without solid basement you cannot build anything good.
>
Thanks Igor. Let us take a concrete example.
I'm convinced that having support for multitouch event/ genie and others works (for iPad = $$$$) is important.
If you happen to know how we can get this code plug and play let me know :) but I guess that you will not easily.

But really read it! Really read it it is worth the 2 min you can people vs the days giro and me are spending there (and this is not about just coding but understanding the situation and building a better one).
Because we are far from doing stuff for research. We are not doing research in interaction design!

I could show you some of the compiler code too.


Stef



HandMorph>>handleEvent: anEvent
        | evt ofs |
        owner ifNil:[^self].
        evt := anEvent.
        self logEventStats: evt.
       
        evt isMouse ifTrue:[
                 "just for record, to be used by capture block"
                lastMouseEvent := evt].

        captureBlock ifNotNil: [ ^ captureBlock value: anEvent ].
        evt isMouseOver ifTrue:[^self sendMouseEvent: evt].
       
        self showDebugEvent: evt.
       
        "Notify listeners"
        self sendListenEvent: evt to: self eventListeners.

        evt isWindowEvent ifTrue: [
                self sendEvent: evt focus: nil.
                ^self mouseOverHandler processMouseOver: lastMouseEvent].
       

        evt isKeyboard ifTrue:[
                self sendListenEvent: evt to: self keyboardListeners.
                self sendKeyboardEvent: evt.
                ^self mouseOverHandler processMouseOver: lastMouseEvent].

        evt isDropEvent ifTrue:[
                self sendEvent: evt focus: nil.
                ^self mouseOverHandler processMouseOver: lastMouseEvent].

        evt isMouse ifTrue:[
                self sendListenEvent: evt to: self mouseListeners.
                lastMouseEvent := evt].

        "Check for pending drag or double click operations."
        mouseClickState ifNotNil:[
                (mouseClickState handleEvent: evt from: self) ifFalse:[
                        "Possibly dispatched #click: or something and will not re-establish otherwise"
                        ^self mouseOverHandler processMouseOver: lastMouseEvent]].

        evt isMove ifTrue:[
                self position: evt position.
                self sendMouseEvent: evt.
        ] ifFalse:[
                "Issue a synthetic move event if we're not at the position of the event"
                (evt position = self position) ifFalse:[self moveToEvent: evt].
                "Drop submorphs on button events"
                (self hasSubmorphs)
                        ifTrue:[self dropMorphs: evt]
                        ifFalse:[self sendMouseEvent: evt].
        ].
        self showMouseFocusEvent: evt.
        self mouseOverHandler processMouseOver: lastMouseEvent.


HandMorph>>processEvents
        "Process user input events from the local input devices."

        | evt evtBuf type hadAny |
        ActiveEvent ifNotNil:
                        ["Meaning that we were invoked from within an event response.
                Make sure z-order is up to date"

                        self mouseOverHandler processMouseOver: lastMouseEvent].
        hadAny := false.
        [(evtBuf := Sensor nextEvent) isNil] whileFalse:
                        [evt := nil. "for unknown event types"
                        type := evtBuf first.
                        type = EventTypeMouse ifTrue: [recentModifiers := evtBuf sixth. evt := self generateMouseEvent: evtBuf].
                        type = EventTypeKeyboard
                                ifTrue: [recentModifiers := evtBuf fifth. evt := self generateKeyboardEvent: evtBuf].
                        type = EventTypeDragDropFiles
                                ifTrue: [evt := self generateDropFilesEvent: evtBuf].
                        type = EventTypeWindow
                                ifTrue:[evt := self generateWindowEvent: evtBuf].
                        "All other events are ignored"
                        (type ~= EventTypeDragDropFiles and: [evt isNil]) ifTrue: [^self].
                        evt isNil
                                ifFalse:
                                        ["Finally, handle it"

                                        self handleEvent: evt.
                                        hadAny := true.

                                        "For better user feedback, return immediately after a mouse event has been processed."
                                        (evt isMouse and: [evt isMouseWheel not]) ifTrue: [^self]]].
        "note: if we come here we didn't have any mouse events"
        mouseClickState notNil
                ifTrue:
                        ["No mouse events during this cycle. Make sure click states time out accordingly"

                        mouseClickState handleEvent: lastMouseEvent asMouseMove from: self].
        hadAny
                ifFalse:
                        ["No pending events. Make sure z-order is up to date"

                        self mouseOverHandler processMouseOver: lastMouseEvent]


HandMorph>>generateMouseEvent: evtBuf
        "Generate the appropriate mouse event for the given raw event buffer"

        | position buttons modifiers type trail stamp oldButtons evtChanged |
        evtBuf first = lastEventBuffer first
                ifTrue:
                        ["Workaround for Mac VM bug, *always* generating 3 events on clicks"

                        evtChanged := false.
                        3 to: evtBuf size
                                do: [:i | (lastEventBuffer at: i) = (evtBuf at: i) ifFalse: [evtChanged := true]].
                        evtChanged ifFalse: [^nil]].
        stamp := evtBuf second.
        stamp = 0 ifTrue: [stamp := Time millisecondClockValue].
        position := evtBuf third @ evtBuf fourth.
        buttons := evtBuf fifth.
        modifiers := evtBuf sixth.
        type := buttons = 0
                ifTrue:
                        [lastEventBuffer fifth = 0 ifTrue: [#mouseMove] ifFalse: [#mouseUp]]
                ifFalse:
                        [lastEventBuffer fifth = 0
                                                ifTrue: [#mouseDown]
                                                ifFalse: [#mouseMove]].
        buttons := buttons bitOr: (modifiers bitShift: 3).
        oldButtons := lastEventBuffer fifth
                                bitOr: (lastEventBuffer sixth bitShift: 3).
        lastEventBuffer := evtBuf.
        type == #mouseMove
                ifTrue:
                        [trail := self mouseTrailFrom: evtBuf.
                        ^MouseMoveEvent basicNew
                                setType: type
                                startPoint: (self position)
                                endPoint: trail last
                                trail: trail
                                buttons: buttons
                                hand: self
                                stamp: stamp].
        ^MouseButtonEvent basicNew
                setType: type
                position: position
                which: (oldButtons bitXor: buttons)
                buttons: buttons
                hand: self
                stamp: stamp
Reply | Threaded
Open this post in threaded view
|

Re: Netstyle experience (was Do not feed the trolls)

Guido Stepken

"mouseOverHandler" is *absolutely* depreciated everywhere, iOS, Android AND Windows 8 ... tablet useforms dominate Desktop useforms more and more.

just my 2ct.

Am 22.02.2012 08:32 schrieb "Stéphane Ducasse" <[hidden email]>:
>
> People might mistakenly think that we wanna change things solely for
> the sake of change. But it is not like that.
> We need these changes , need to fix our infrastructure, because
> without solid basement you cannot build anything good.
>
Thanks Igor. Let us take a concrete example.
I'm convinced that having support for multitouch event/ genie and others works (for iPad = $$$$) is important.
If you happen to know how we can get this code plug and play let me know :) but I guess that you will not easily.

But really read it! Really read it it is worth the 2 min you can people vs the days giro and me are spending there (and this is not about just coding but understanding the situation and building a better one).
Because we are far from doing stuff for research. We are not doing research in interaction design!

I could show you some of the compiler code too.


Stef



HandMorph>>handleEvent: anEvent
       | evt ofs |
       owner ifNil:[^self].
       evt := anEvent.
       self logEventStats: evt.

       evt isMouse ifTrue:[
                "just for record, to be used by capture block"
               lastMouseEvent := evt].

       captureBlock ifNotNil: [ ^ captureBlock value: anEvent ].
       evt isMouseOver ifTrue:[^self sendMouseEvent: evt].

       self showDebugEvent: evt.

       "Notify listeners"
       self sendListenEvent: evt to: self eventListeners.

       evt isWindowEvent ifTrue: [
               self sendEvent: evt focus: nil.
               ^self mouseOverHandler processMouseOver: lastMouseEvent].


       evt isKeyboard ifTrue:[
               self sendListenEvent: evt to: self keyboardListeners.
               self sendKeyboardEvent: evt.
               ^self mouseOverHandler processMouseOver: lastMouseEvent].

       evt isDropEvent ifTrue:[
               self sendEvent: evt focus: nil.
               ^self mouseOverHandler processMouseOver: lastMouseEvent].

       evt isMouse ifTrue:[
               self sendListenEvent: evt to: self mouseListeners.
               lastMouseEvent := evt].

       "Check for pending drag or double click operations."
       mouseClickState ifNotNil:[
               (mouseClickState handleEvent: evt from: self) ifFalse:[
                       "Possibly dispatched #click: or something and will not re-establish otherwise"
                       ^self mouseOverHandler processMouseOver: lastMouseEvent]].

       evt isMove ifTrue:[
               self position: evt position.
               self sendMouseEvent: evt.
       ] ifFalse:[
               "Issue a synthetic move event if we're not at the position of the event"
               (evt position = self position) ifFalse:[self moveToEvent: evt].
               "Drop submorphs on button events"
               (self hasSubmorphs)
                       ifTrue:[self dropMorphs: evt]
                       ifFalse:[self sendMouseEvent: evt].
       ].
       self showMouseFocusEvent: evt.
       self mouseOverHandler processMouseOver: lastMouseEvent.


HandMorph>>processEvents
       "Process user input events from the local input devices."

       | evt evtBuf type hadAny |
       ActiveEvent ifNotNil:
                       ["Meaning that we were invoked from within an event response.
               Make sure z-order is up to date"

                       self mouseOverHandler processMouseOver: lastMouseEvent].
       hadAny := false.
       [(evtBuf := Sensor nextEvent) isNil] whileFalse:
                       [evt := nil.    "for unknown event types"
                       type := evtBuf first.
                       type = EventTypeMouse ifTrue: [recentModifiers := evtBuf sixth. evt := self generateMouseEvent: evtBuf].
                       type = EventTypeKeyboard
                               ifTrue: [recentModifiers := evtBuf fifth. evt := self generateKeyboardEvent: evtBuf].
                       type = EventTypeDragDropFiles
                               ifTrue: [evt := self generateDropFilesEvent: evtBuf].
                       type = EventTypeWindow
                               ifTrue:[evt := self generateWindowEvent: evtBuf].
                       "All other events are ignored"
                       (type ~= EventTypeDragDropFiles and: [evt isNil]) ifTrue: [^self].
                       evt isNil
                               ifFalse:
                                       ["Finally, handle it"

                                       self handleEvent: evt.
                                       hadAny := true.

                                       "For better user feedback, return immediately after a mouse event has been processed."
                                       (evt isMouse and: [evt isMouseWheel not]) ifTrue: [^self]]].
       "note: if we come here we didn't have any mouse events"
       mouseClickState notNil
               ifTrue:
                       ["No mouse events during this cycle. Make sure click states time out accordingly"

                       mouseClickState handleEvent: lastMouseEvent asMouseMove from: self].
       hadAny
               ifFalse:
                       ["No pending events. Make sure z-order is up to date"

                       self mouseOverHandler processMouseOver: lastMouseEvent]


HandMorph>>generateMouseEvent: evtBuf
       "Generate the appropriate mouse event for the given raw event buffer"

       | position buttons modifiers type trail stamp oldButtons evtChanged |
       evtBuf first = lastEventBuffer first
               ifTrue:
                       ["Workaround for Mac VM bug, *always* generating 3 events on clicks"

                       evtChanged := false.
                       3 to: evtBuf size
                               do: [:i | (lastEventBuffer at: i) = (evtBuf at: i) ifFalse: [evtChanged := true]].
                       evtChanged ifFalse: [^nil]].
       stamp := evtBuf second.
       stamp = 0 ifTrue: [stamp := Time millisecondClockValue].
       position := evtBuf third @ evtBuf fourth.
       buttons := evtBuf fifth.
       modifiers := evtBuf sixth.
       type := buttons = 0
               ifTrue:
                       [lastEventBuffer fifth = 0 ifTrue: [#mouseMove] ifFalse: [#mouseUp]]
               ifFalse:
                       [lastEventBuffer fifth = 0
                                               ifTrue: [#mouseDown]
                                               ifFalse: [#mouseMove]].
       buttons := buttons bitOr: (modifiers bitShift: 3).
       oldButtons := lastEventBuffer fifth
                               bitOr: (lastEventBuffer sixth bitShift: 3).
       lastEventBuffer := evtBuf.
       type == #mouseMove
               ifTrue:
                       [trail := self mouseTrailFrom: evtBuf.
                       ^MouseMoveEvent basicNew
                               setType: type
                               startPoint: (self position)
                               endPoint: trail last
                               trail: trail
                               buttons: buttons
                               hand: self
                               stamp: stamp].
       ^MouseButtonEvent basicNew
               setType: type
               position: position
               which: (oldButtons bitXor: buttons)
               buttons: buttons
               hand: self
               stamp: stamp
12345