Pharo-dev
By thread
pharo-dev@lists.pharo.org
By month
Messages by month
- ----- 2026 -----
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
June 2016
- 812 messages
Re: [Pharo-dev] endless loop again
by Henrik Johansen
> On 04 Jun 2016, at 9:13 , stepharo <stepharo(a)free.fr> wrote:
>
>
>
> Le 3/6/16 à 19:16, Esteban A. Maringolo a écrit :
>> Regarding the first part of your email, about UI lockups, it is almost
>> unavoidable, because in Pharo almost everything happens in the main
>> thread, as you pointed out.
> Yes. This is all my point.
IMHO, all Pharo beginner tutorials should start by showing off Cmd - dot (or Alt - dot, on Win / Linux).
Not just because it's cool, but because it's necessary :)
Cheers,
Henry
June 8, 2016
Enterprise Pharo ePub: The Second Pass
by Thibault ARLOING
Hi,
I reworked the Enterprise Pharo book as ePub taking into account feedbacks of the pass on first version.
So, now the navigation menu is more developed and I added a cover for the book.
It would be great to have new feedbacks on this version
If some of you have electronic readers, it would be good to test the book on it too
You can download the ePub here<http://files.pharo.org/books-ressources/entreprise-pharo/EnterprisePharo.ep…><http://files.pharo.org/books-ressources/entreprise-pharo/EnterprisePharo.ep…>
Thanks,
Thibault
June 8, 2016
Re: [Pharo-dev] [Vm-dev] Re: [ANN] Ephemeron Support is Ready
by Guille Polito
Hi Eliot,
Pharo does AFAIK the same with the source files when you're navigating
source code.
Now, I remember that while adapting the finalization scheme that you
sent me to Pharo (because there are indeed subtle differences), I
noticed that there was a missing loop.
[looking for the code... found!]
finalizationProcess
"The finalization process arranges to send mourn to each element of
the VM's finalization queue,
which is accessed via primitiveFetchMourner. The VM signals
FinalizationSemaphore whenever
the queue is non-empty. This process loops, waiting on the
semaphore, fetches the first element
of the queue and then spawns a process at a higher priority to
acually send the mourn messages.
If an error occurs in the higher priority mourn loop process then
this process will simply spawn
another process, hence ensuring that errors in finalization
methods don't break finalization.
In addition this process also runs the old finalization scheme,
supporting clients of the older,
WeakRegistry based scheme. Hopefully this will go away when all
cleints have moved over."
| throttle firstMourner |
throttle := Semaphore new.
[FinalizationSemaphore wait; initSignals.
"Support the old scheme until things have changed over..."
self doOldFinalization.
[firstMourner := self primitiveFetchMourner.
firstMourner notNil] whileTrue:
[[throttle signal.
self mournLoopWith: firstMourner] forkAt: Processor
activePriority + 1.
throttle wait]]
At first I was using that code that you sent me and I noticed that the
finalization process in there is a loop that is never evaluated! So I
updated it to the following using a [true] whileTrue:
finalizationProcess
"The finalization process arranges to send mourn to each element of
the VM's finalization queue,
which is accessed via primitiveFetchMourner. The VM signals
FinalizationSemaphore whenever
the queue is non-empty. This process loops, waiting on the
semaphore, fetches the first element
of the queue and then spawns a process at a higher priority to
acually send the mourn messages.
If an error occurs in the higher priority mourn loop process then
this process will simply spawn
another process, hence ensuring that errors in finalization
methods don't break finalization.
In addition this process also runs the old finalization scheme,
supporting clients of the older,
WeakRegistry based scheme. Hopefully this will go away when all
cleints have moved over."
| throttle firstMourner |
throttle := Semaphore new.
[true] whileTrue: [FinalizationSemaphore wait; initSignals.
"Support the old scheme until things have changed over..."
self doOldFinalization.
[firstMourner := self primitiveFetchMourner.
firstMourner notNil] whileTrue:
[[throttle signal.
self mournLoopWith: firstMourner] forkAt: Processor
activePriority + 1.
throttle wait]]
Maybe that's the reason of weak arrays not being finalized in squeak?
Guille
-------- Original Message --------
>
>
>
> Hi Guille,
>
> good news! But I'm seeing something wrong with finalisation of
> weak arrays using the new scheme. In Squeak method source access is
> done by default by opening a new read-only file for each method's
> source read (crazy, but that's not the issue). So by default
> something that accesses lots of source ends up running out of file
> descriptors, which causes primOpen:writable: to fail. The surrounding
> code then uses retryWithGC:until:forFileNamed: to do a GC to try and
> reclaim non-longer referenced files, close file descriptors and continue:
>
> StandardFileStream retryWithGC:[self primOpen: f writable:
> writeMode]
> until:[:id| id notNil]
> forFileNamed: fileName.
>
> But in my tests I'm not seeing any files reclaimed. I wonder whether
> the new finalisation code is failing to finalise weak arrays
> properly. I wonder whether your weak tests work properly with the new
> scheme or not.
>
> Anyway, I think I can reproduce the pathology in the simulator if I
> modify it to implement a small limit on the number of file
> descriptors. I'm going to try that to shed light on the problem. I
> can't easily debug in a running image because...I run out of file
> descriptors ;-)
>
> On Tue, Jun 7, 2016 at 2:32 AM, Guille Polito
> <guillermopolito(a)gmail.com <mailto:guillermopolito@gmail.com>> wrote:
>
>
>
>
>
>
>
> Hi All,
>
>
>
> Since this morning, in Pharo #60065, Ephemeron support is in the
> image. Most of the changes are infrastructural, so far transparent
> for the users. It is important to notice that even while the support
> is there, it is not enabled by default. Also, this required changes
> in the virtual machine that are not yet distributed everywhere. For
> the ones that would like more detail, I invite you to read the
> following :)
>
>
>
> * On the infrastructure side
>
> - There is support to create Ephemeric classes and load them from
> monticello
>
> - There is a new finalization mechanism (by default disabled) that
> will process Ephemerons using a finalization queue. This will avoid
> scanning collections in look for weak objects to finalize ,as it
> happens now with the WeakDependent mechanism in WeakArray.
>
> - System-Finalization features two new classes *Ephemeron* and
> *EphemeronRegistry*. For the ones that want more details on
> Ephemerons, you can read the associated paper [1], or the class
> comment of Ephemeron:
>
>
>
> I represent ephemeric key-value objects. Ephemerons are
> key-value objects (subclasses of Association) with special
> semantics during garbage collection. My special behavior can
> resumed as follows:
>
>
>
> - The garbage collection will iterate my instances only if the key
> is not referenced strongly by another object.
>
> - Then, if no strong references to the key are found, then the
> values of this ephemeron are hold weakly.
>
> - Otherwise, the values are hold strongly.
>
>
>
> In this implementation, an Ephemeron can hold more than one value,
> which are all treated in the same manner. This ephemeron instance
> knows its container, which allows the ephemeron to remove itself
> from a container (such as a Dictionary) upon finalization.
>
>
>
> !! Example usages
>
>
>
> In general terms, do not use myself directly. Use instead an
> Ephemeric container like EphemeronRegistry. An Ephemeron registry
> will guarantee the collection of keys and values of the object
> inside the Ephemeron.
>
>
>
> Otherwise, if you want to use it, you can create an Ephemeron as
> any association:
>
>
>
> ephemeron := Ephemeron key: aKey value: aValue.
>
> ephemeron container: aContainer.
>
>
>
> !! Ephemeron Finalization
>
>
>
> When an ephemeron's key is hold strongly just by the ephemeron
> itself, the Ephemeron will be mourned (finalized). That means that
> the VM will:
>
> - put the Ephemeron in the mourning queue waiting for the image to
> take care of mourning
>
> - make the Ephemeron non ephemeric. That is, the ephemeron
> instance cannot be reused.
>
>
>
> On the image side, the finalization process will send the message
> #mourn to an Ephemeron. #mourn will #finalize the Ephemeron's
> key, and remove the Ephemeron from it's container to allow its
> collection during a subsequent garbage collection.
>
>
>
> !! More Documentation
>
>
>
> You can read the associated paper to understand better the
> semantics of ephemerons:
>
>
>
> [1]Ephemerons: A New Finalization Mechanism. Barry Hayes. OOPSLA
> '97
>
>
>
>
>
>
> - WARNING: to be able to use ephemerons, you need to use the
> *latestVm* that has several fixes for making ephemerons work, and
> you need to enable ephemerons on the image side by evaluating:
>
>
>
> Smalltalk supportsQueueingFinalization: true.
>
>
>
> - With latest vm and ephemerons enabled, tests should be green,
> otherwise they are skipped
>
>
>
>
>
>
>
> * From the user point of view:
>
>
>
> - The Weak registries were not yet migrated to the new
> finalization mechanism.
>
> - We expect nothing will change from the user point of view. Just
> less memory leaks.
>
>
>
> * Next steps (in order)
>
> 1) Bless the latest vm as stable
>
> 2) Enable queueing finalization by default
>
> 3) Replace Weak Registry by Ephemeron Registry.
>
>
>
>
>
> Informed by: Guille
>
>
>
>
>
>
> --
> _,,,^..^,,,_
> best, Eliot
>
>
>
>
>
June 8, 2016
Re: [Pharo-dev] Privacy sendDiagnosticsAndUsageData should be ternary, not binary
by stepharo
Le 7/6/16 à 12:00, Andrei Chis a écrit :
> Hi Peter,
>
> On Tue, Jun 7, 2016 at 12:05 AM, Peter Uhnak <i.uhnak(a)gmail.com
> <mailto:i.uhnak@gmail.com>> wrote:
>
> Hi,
>
> Privacy>>sendDiagnosticsAndUsageData should be ternary, not binary.
>
> Because right now if I refuse sending the data I will be asked
> again every single time.
>
>
> Indeed right now, at least in Spotter, the notification is shown every
> time it is opened in
> a new image, even if the setting was explicitly set. It was done like
> this as a reminder,
> especially if you have the setting set to true.
Andrei for the shortcut reporter we put a number of show. Like that the
user will be reminder a number
of times and the system will get calm. May be you could do the same
>
>
> So the proper behavior (imho) should be:
>
> ask Privacy for the setting⦠if the setting is not defined, then
> show a popup.
> If the setting is defined then respect it and do not show another
> popup.
>
>
> The current behaviour with showing the notification in Spotter and
> Nautilus should be a temporary one.
> Ideally we just need a single uniform way of showing this notification
> plus the option to control
> and see the data that each tool wants to record at a fined-grained level.
>
>
> Also it would be nice to know what happens with the data.
>
>
> We store it on a server and use it for various analyses.
what can you tell us on processor use in Spotter.
> It is also publicly available: GTEventTool default download.
>
> I mean my projects are open source so "sendSourceCode" shouldn't
> be an issue⦠but what you can possibly learn from it?
> Why not just analyze the content of SmalltalkHub/GitHub?
>
>
> Because if you have the setting enabled it does not always work to map
> different actions that with the code that you are working on.
>
> Cheers,
> Andrei
>
>
> Peter
>
>
June 8, 2016
CMD Shift B + N is not equal to CMD B + CMD Shift N
by stepharo
Hi
I was coding with a student on a french keyboard (argh) on linux and I was
teaching him to use shortcuts and we saw that the shortcut reported is
displaying
Cmd shift B + N
for class refs while it should be CMD B + CMD Shift N
I do not know how to fix it but this is confusing for newcomers.
Stef
June 8, 2016
[pharo-project/pharo-core] 683d0e: 60069
by GitHub
Branch: refs/heads/6.0
Home: https://github.com/pharo-project/pharo-core
Commit: 683d0ec54cd9dba568b7238f446e366c07108a41
https://github.com/pharo-project/pharo-core/commit/683d0ec54cd9dba568b7238f…
Author: Jenkins Build Server <board(a)pharo-project.org>
Date: 2016-06-08 (Wed, 08 Jun 2016)
Changed paths:
M Refactoring-Core.package/RBMoveVariableDefinitionRefactoring.class/instance/preconditions/preconditions.st
M Refactoring-Core.package/RBRenameTemporaryRefactoring.class/instance/preconditions/preconditions.st
R ScriptLoader60.package/ScriptLoader.class/instance/pharo - scripts/script60068.st
A ScriptLoader60.package/ScriptLoader.class/instance/pharo - scripts/script60069.st
R ScriptLoader60.package/ScriptLoader.class/instance/pharo - updates/update60068.st
A ScriptLoader60.package/ScriptLoader.class/instance/pharo - updates/update60069.st
M ScriptLoader60.package/ScriptLoader.class/instance/public/commentForCurrentUpdate.st
A Spec-SelectEntity.package/SelectEntity.class/README.md
A Spec-SelectEntity.package/SelectEntity.class/class/example/example.st
A Spec-SelectEntity.package/SelectEntity.class/class/specs/defaultSpec.st
A Spec-SelectEntity.package/SelectEntity.class/definition.st
A Spec-SelectEntity.package/SelectEntity.class/instance/accessing/entityText.st
A Spec-SelectEntity.package/SelectEntity.class/instance/accessing/entityText_.st
A Spec-SelectEntity.package/SelectEntity.class/instance/accessing/selectEntity.st
A Spec-SelectEntity.package/SelectEntity.class/instance/accessing/selectEntity_.st
A Spec-SelectEntity.package/SelectEntity.class/instance/api-events/whenDisplaySymbolChanged_.st
A Spec-SelectEntity.package/SelectEntity.class/instance/api-events/whenEntityChanged_.st
A Spec-SelectEntity.package/SelectEntity.class/instance/api-events/whenGhostTextChanged_.st
A Spec-SelectEntity.package/SelectEntity.class/instance/api-events/whenPossibleEntitiesChanged_.st
A Spec-SelectEntity.package/SelectEntity.class/instance/api-events/whenSelectDialogChanged_.st
A Spec-SelectEntity.package/SelectEntity.class/instance/api/displaySymbol.st
A Spec-SelectEntity.package/SelectEntity.class/instance/api/displaySymbol_.st
A Spec-SelectEntity.package/SelectEntity.class/instance/api/entity.st
A Spec-SelectEntity.package/SelectEntity.class/instance/api/entity_.st
A Spec-SelectEntity.package/SelectEntity.class/instance/api/ghostText.st
A Spec-SelectEntity.package/SelectEntity.class/instance/api/ghostText_.st
A Spec-SelectEntity.package/SelectEntity.class/instance/api/possibleEntities.st
A Spec-SelectEntity.package/SelectEntity.class/instance/api/possibleEntities_.st
A Spec-SelectEntity.package/SelectEntity.class/instance/api/selectDialog.st
A Spec-SelectEntity.package/SelectEntity.class/instance/api/selectDialog_.st
A Spec-SelectEntity.package/SelectEntity.class/instance/entryCompletion/entitiesEntryCompletion.st
A Spec-SelectEntity.package/SelectEntity.class/instance/initialization/initialize.st
A Spec-SelectEntity.package/SelectEntity.class/instance/initialization/initializePresenter.st
A Spec-SelectEntity.package/SelectEntity.class/instance/initialization/initializeValueHolders.st
A Spec-SelectEntity.package/SelectEntity.class/instance/initialization/initializeWidgets.st
Log Message:
-----------
60069
18428 Add SelectEntity to Spec
https://pharo.fogbugz.com/f/cases/18428
18421 Fix Zinc-HTTP extensions capitalization
https://pharo.fogbugz.com/f/cases/18421
18438 confusing error for variable refactoring
https://pharo.fogbugz.com/f/cases/18438
http://files.pharo.org/image/60/60069.zip
June 8, 2016
[pharo-project/pharo-core]
by GitHub
Branch: refs/tags/60069
Home: https://github.com/pharo-project/pharo-core
June 8, 2016
Re: [Pharo-dev] Playground and text evaluation printing result default.
by stepharo
Le 8/6/16 à 09:04, stepharo a écrit :
> This is incorrect. If you would not complain aggressively, we would
> simply have a smoother conversation about solutions.
My final point:
Aggressivity is often the result of not being heard.
So now you can argue that you listen :)
But I decided that I will not bother people about such little problems
anymore.
If people believe that I'm trolling then it is the time to do something
else for me.
And this is what I will do.
Stef
June 8, 2016
Re: [Pharo-dev] Playground and text evaluation printing result default.
by stepharo
"La perfection n'est atteinte non pas quand il n'y a plus rien a ajouter
mais plus rien a enlever" Saint Exupery.
I'm curious to see the results of the data you collected about spotter
usage.
Because we have around 50 processors and may be we need more? Who knows.
Personnally I succeeded to use
find a class
find a method
But I'm stupid and I cannot adapt. And probably the fact that I cannot
access Spotter without hurting my hand it is also probably why I do not
try more.
Stef
Le 7/6/16 à 23:37, Tudor Girba a écrit :
> Hi Stef,
>
> Thanks for the feedback. Sorry for the long email, but I you raised several issues and I thought it is worth addressing them.
>
> The feature we are talking about came into being after several suggestions on this mailing list (and quite some long discussions) that had the scenario of keeping track of several executions. In the first version of the Playground it was not possible to paste directly in the playground. We did not impose anything, it was the contrary.
>
> From your email I see that you would rather prefer the variant of embedding the text as is after pressing Enter. Is this correct?
>
> Here is another variant:
> - Cmd+p
> - Cmd+v ==> paste the string directly in the editor without comments
>
> I think this would fit well.
>
> What do you think?
>
>
> More replies about Spotter inline.
>
>
>> On Jun 7, 2016, at 8:09 AM, stepharo <stepharo(a)free.fr> wrote:
>>
>>
>>
>> Le 5/6/16 à 23:00, Tudor Girba a écrit :
>>> Hi Stef,
>>>
>>> The quotes appear only when you add the result in the playground.
>> No need to explain I'm not idiot and I know it.
>>> The typical use case for this is to keep track of several results.
>> No need to explain I'm not idiot and I know it.
>>> In this situation you do not want to modify the code to not affect the highlighting and this is why it gets in a comment.
>> This is fun because I never ever needed it. But this is probably what everybody else is doing that since this is the default.
>> I just write simple code and tests. Indeed I'm not that smart.
>>
>> But your tools only embedd your scenario and let the other users forced to adapt.
>>
>> Well you do not want but I do.
>> I spent my evening removing quotes while writing tests.
>>
>> What I hate with the GTTools is that you want to teach me how I should work. Sorry but good tools do not do that.
>> Good tools empower the users and not constraint them.
>>
>> I work a lot faster when I do not have to remove the wonderful comments or when I have to copy and paste.
>> This commenting is breaking the flow of efficient people. May be GT team do not work write tests in the
>> debugger but I do most of the time and I'm forced by the environment to remove quotes all over the places.
>>> If you want to copy the content without quotes, you can do:
>>> Cmd+p -> popup
>>> Cmd+c -> selects the current line and copies the text
>>> Esc
>>> Cmd+v
>> Sorry but I do not want.
>> I just want to print and modify directly.
>> 7 keystrokes vs 2
>>> Perhaps we can add another keybinding like Shift+Enter for adding the text without quotes.
>> And why not the inverse.
>> By default printing is printing and if you want to do something else then you have a special binding.
>>
>> Now I'm upset with this general attitude (Oh I will teach how you can be a nice user) that I will turn them off
>> or go and hack my own settings. Still I'm amazingly sad about this state of affair.
>> All these story about GT is hurting me because of this attitude: we are so smart and we thought a lot and we will teach you
> You are mistaken here. We propose solutions that are different because this is the only way to get to something new, but afterwards we iterate multiple times, sometimes even a long time after the introduction of the original feature. For example, for the problem you are mentioning with the Playground appears 1.5 years after we introduced the Playground. The fact that they these interfaces are new breaks existing reflexes and the iterations that happen after are focused mostly on trying to figure out whether this is inconvenient because is new or because it is actually suboptimal.
>
> This discussion is one of those. We wanted to solve the most often appearing case in which we use Cmd+p as a way to preview quickly the result. Pasting the code in the existing playground is an edge case for Cmd+p, not the primary case. After having proposed a solution for the primary problem, people raised the issue of the temporary results and then we created the idea of Enter and have comments. This might not be your use case, but others have it.
>
>
>> how you should work... and at the end I the end-user has to adapt.
>> Look at the Spotter discussions: you looked for the graal and I was just telling to you that I cannot find
>> simple information such as class refs!
>>
>> So what saddens me the most is that
>> - you pretend to have end-user trying your tools but I have impression that they are not real power users
>> or this is yourself and it means that you are never exposed to other people.
>> I can still not use Spotter because the way I put my hand on my keyboard. So should change
>> - 1 my hands
>> - 2 my brain
>> - 3 my keyboard
>> - 4 do not use the tools?
>> - funnily enough if I would not have complain aggressively then it looks like we would have the same than before.
> This is incorrect. If you would not complain aggressively, we would simply have a smoother conversation about solutions.
>
>
>> Your flow is not mine and I go faster my way but your tools force me to get slow.
>> I do not have the time to produce a video but I would even if it would give a bad press to Pharo.
>> I will do a presentation in the rmod team. Because people do not watch themselves why acting.
> Letâs do a remote session and I watch you do things. This week I am available this Thursday morning or Friday after 11.
>
>
>> Good tools empower the users not constraint them.
>>
>> GTTools feel often like an overengineer guitar that would have hampered Jimmy Hendrix to do crazy solos.
> Could well be.
>
> Doru
>
>
>
>>> Cheers,
>>> Doru
>>>
>>>
>>>
>>>> On Jun 5, 2016, at 10:20 PM, stepharo <stepharo(a)free.fr> wrote:
>>>>
>>>> Hi
>>>>
>>>> I would like to know if there is a setting to remove the "" when printing the result of an expression.
>>>>
>>>> I know that playground has been thought to help me, but today I watched myself removing the comments
>>>>
>>>> code so often that I would like to get a setting because such wrapping of results is really boring for me.
>>>>
>>>> I'm spending my time removing them and I start to wonder why they are any useful.
>>>>
>>>> I would help me to write fast tests for example in the debugger.
>>>>
>>>> Stef
>>>>
>>>>
>>>>
>>> --
>>> www.tudorgirba.com
>>> www.feenk.com
>>>
>>> "What we can governs what we wish."
>>>
>>>
>>>
>>>
>>>
>>>
>>
> --
> www.tudorgirba.com
> www.feenk.com
>
> "Obvious things are difficult to teach."
>
>
>
>
>
>
June 8, 2016
Re: [Pharo-dev] Playground and text evaluation printing result default.
by stepharo
You remember certainly this book that said that most users
are looking at ui the same way that we see a bear dansing in tutu while
it should be a classical dancer with grace.
So users adapt to things even if some of them are hurting them.
I don't. I do not like that I have to fight to get things that were
totally trivial to do.
Tools should adapt and help not the inverse.
Stef
Le 7/6/16 à 23:37, Tudor Girba a écrit :
> Hi Stef,
>
> Thanks for the feedback. Sorry for the long email, but I you raised several issues and I thought it is worth addressing them.
>
> The feature we are talking about came into being after several suggestions on this mailing list (and quite some long discussions) that had the scenario of keeping track of several executions. In the first version of the Playground it was not possible to paste directly in the playground. We did not impose anything, it was the contrary.
>
> From your email I see that you would rather prefer the variant of embedding the text as is after pressing Enter. Is this correct?
>
> Here is another variant:
> - Cmd+p
> - Cmd+v ==> paste the string directly in the editor without comments
>
> I think this would fit well.
>
> What do you think?
>
>
> More replies about Spotter inline.
>
>
>> On Jun 7, 2016, at 8:09 AM, stepharo <stepharo(a)free.fr> wrote:
>>
>>
>>
>> Le 5/6/16 à 23:00, Tudor Girba a écrit :
>>> Hi Stef,
>>>
>>> The quotes appear only when you add the result in the playground.
>> No need to explain I'm not idiot and I know it.
>>> The typical use case for this is to keep track of several results.
>> No need to explain I'm not idiot and I know it.
>>> In this situation you do not want to modify the code to not affect the highlighting and this is why it gets in a comment.
>> This is fun because I never ever needed it. But this is probably what everybody else is doing that since this is the default.
>> I just write simple code and tests. Indeed I'm not that smart.
>>
>> But your tools only embedd your scenario and let the other users forced to adapt.
>>
>> Well you do not want but I do.
>> I spent my evening removing quotes while writing tests.
>>
>> What I hate with the GTTools is that you want to teach me how I should work. Sorry but good tools do not do that.
>> Good tools empower the users and not constraint them.
>>
>> I work a lot faster when I do not have to remove the wonderful comments or when I have to copy and paste.
>> This commenting is breaking the flow of efficient people. May be GT team do not work write tests in the
>> debugger but I do most of the time and I'm forced by the environment to remove quotes all over the places.
>>> If you want to copy the content without quotes, you can do:
>>> Cmd+p -> popup
>>> Cmd+c -> selects the current line and copies the text
>>> Esc
>>> Cmd+v
>> Sorry but I do not want.
>> I just want to print and modify directly.
>> 7 keystrokes vs 2
>>> Perhaps we can add another keybinding like Shift+Enter for adding the text without quotes.
>> And why not the inverse.
>> By default printing is printing and if you want to do something else then you have a special binding.
>>
>> Now I'm upset with this general attitude (Oh I will teach how you can be a nice user) that I will turn them off
>> or go and hack my own settings. Still I'm amazingly sad about this state of affair.
>> All these story about GT is hurting me because of this attitude: we are so smart and we thought a lot and we will teach you
> You are mistaken here. We propose solutions that are different because this is the only way to get to something new, but afterwards we iterate multiple times, sometimes even a long time after the introduction of the original feature. For example, for the problem you are mentioning with the Playground appears 1.5 years after we introduced the Playground. The fact that they these interfaces are new breaks existing reflexes and the iterations that happen after are focused mostly on trying to figure out whether this is inconvenient because is new or because it is actually suboptimal.
>
> This discussion is one of those. We wanted to solve the most often appearing case in which we use Cmd+p as a way to preview quickly the result. Pasting the code in the existing playground is an edge case for Cmd+p, not the primary case. After having proposed a solution for the primary problem, people raised the issue of the temporary results and then we created the idea of Enter and have comments. This might not be your use case, but others have it.
>
>
>> how you should work... and at the end I the end-user has to adapt.
>> Look at the Spotter discussions: you looked for the graal and I was just telling to you that I cannot find
>> simple information such as class refs!
>>
>> So what saddens me the most is that
>> - you pretend to have end-user trying your tools but I have impression that they are not real power users
>> or this is yourself and it means that you are never exposed to other people.
>> I can still not use Spotter because the way I put my hand on my keyboard. So should change
>> - 1 my hands
>> - 2 my brain
>> - 3 my keyboard
>> - 4 do not use the tools?
>> - funnily enough if I would not have complain aggressively then it looks like we would have the same than before.
> This is incorrect. If you would not complain aggressively, we would simply have a smoother conversation about solutions.
>
>
>> Your flow is not mine and I go faster my way but your tools force me to get slow.
>> I do not have the time to produce a video but I would even if it would give a bad press to Pharo.
>> I will do a presentation in the rmod team. Because people do not watch themselves why acting.
> Letâs do a remote session and I watch you do things. This week I am available this Thursday morning or Friday after 11.
>
>
>> Good tools empower the users not constraint them.
>>
>> GTTools feel often like an overengineer guitar that would have hampered Jimmy Hendrix to do crazy solos.
> Could well be.
>
> Doru
>
>
>
>>> Cheers,
>>> Doru
>>>
>>>
>>>
>>>> On Jun 5, 2016, at 10:20 PM, stepharo <stepharo(a)free.fr> wrote:
>>>>
>>>> Hi
>>>>
>>>> I would like to know if there is a setting to remove the "" when printing the result of an expression.
>>>>
>>>> I know that playground has been thought to help me, but today I watched myself removing the comments
>>>>
>>>> code so often that I would like to get a setting because such wrapping of results is really boring for me.
>>>>
>>>> I'm spending my time removing them and I start to wonder why they are any useful.
>>>>
>>>> I would help me to write fast tests for example in the debugger.
>>>>
>>>> Stef
>>>>
>>>>
>>>>
>>> --
>>> www.tudorgirba.com
>>> www.feenk.com
>>>
>>> "What we can governs what we wish."
>>>
>>>
>>>
>>>
>>>
>>>
>>
> --
> www.tudorgirba.com
> www.feenk.com
>
> "Obvious things are difficult to teach."
>
>
>
>
>
>
June 8, 2016