=============== Summary ===============
Change Set: UIManagerInformTitle Date: 17 May 2023 Author: Christoph Thiede
Adds UIManager>>#inform:title:, analogously to existing #confirm:title.
Project uiManager inform: 'Squeak is great!' title: 'Important Note'
=============== Diff ===============
DummyUIManager>>inform:title: {ui requests} · ct 5/14/2023 21:27 + inform: aString title: titleString + "Nothing to be done here" + self askForProvidedAnswerTo: aString ifSupplied: [:answer | + ^ answer].
MVCUIManager>>inform:title: {ui requests} · ct 5/14/2023 21:27 + inform: aString title: titleString + "Display a message for the user to read and then dismiss" + self askForProvidedAnswerTo: aString ifSupplied: [:answer | + ^ answer]. + + ^ PopUpMenu inform: (self dialogStringFromQuery: aString withTitle: titleString)
MorphicUIManager>>inform:title: {ui requests} · ct 5/14/2023 21:26 + inform: aString title: titleString + "Display a message for the user to read and then dismiss" + self askForProvidedAnswerTo: aString ifSupplied: [:answer | + ^ answer]. + + ^ UserDialogBoxMorph inform: aString title: titleString
UIManager>>inform:title: {ui requests} · ct 5/14/2023 21:27 + inform: aString title: titleString + "Display a message for the user to read and then dismiss" + ^self subclassResponsibility
--- Sent from Squeak Inbox Talk ["UIManagerInformTitle.1.cs"]
Cool beans. Got me thinking about Croquet. Would it provide more congruity to have a User object, with multiple views of a space (audio, video,text msg, LinkedIn feed) and be able to send #inform: and #confirm: to theUser?
❤️🔥🐰
On Wed, May 17, 2023 at 14:38, <[christoph.thiede@student.hpi.uni-potsdam.de](mailto:On Wed, May 17, 2023 at 14:38, <<a href=)> wrote:
=============== Summary ===============
Change Set: UIManagerInformTitle Date: 17 May 2023 Author: Christoph Thiede
Adds UIManager>>#inform:title:, analogously to existing #confirm:title.
Project uiManager inform: 'Squeak is great!' title: 'Important Note'
=============== Diff ===============
DummyUIManager>>inform:title: {ui requests} · ct 5/14/2023 21:27
- inform: aString title: titleString
- "Nothing to be done here"
- self askForProvidedAnswerTo: aString ifSupplied: [:answer |
- ^ answer].
MVCUIManager>>inform:title: {ui requests} · ct 5/14/2023 21:27
- inform: aString title: titleString
- "Display a message for the user to read and then dismiss"
- self askForProvidedAnswerTo: aString ifSupplied: [:answer |
- ^ answer].
- ^ PopUpMenu inform: (self dialogStringFromQuery: aString withTitle: titleString)
MorphicUIManager>>inform:title: {ui requests} · ct 5/14/2023 21:26
- inform: aString title: titleString
- "Display a message for the user to read and then dismiss"
- self askForProvidedAnswerTo: aString ifSupplied: [:answer |
- ^ answer].
- ^ UserDialogBoxMorph inform: aString title: titleString
UIManager>>inform:title: {ui requests} · ct 5/14/2023 21:27
- inform: aString title: titleString
- "Display a message for the user to read and then dismiss"
- ^self subclassResponsibility
---Sent from [Squeak Inbox Talk](https://github.com/hpi-swa-lab/squeak-inbox-talk) ["UIManagerInformTitle.1.cs"]
Interesting idea ... and you could mock/override that user for tests. On the other hand, I was planning to implement all UIManager requests as Exceptions/Notifications (pluggable, nestable, catchable, etc.) ...
Best, Christoph
On 2023-05-17T19:46:17+00:00, rabbit@callistohouse.org wrote:
Cool beans. Got me thinking about Croquet. Would it provide more congruity to have a User object, with multiple views of a space (audio, video,text msg, LinkedIn feed) and be able to send #inform: and #confirm: to theUser?
❤️🔥🐰
On Wed, May 17, 2023 at 14:38, <[christoph.thiede(a)student.hpi.uni-potsdam.de](mailto:On Wed, May 17, 2023 at 14:38, <<a href=)> wrote:
=============== Summary ===============
Change Set: UIManagerInformTitle Date: 17 May 2023 Author: Christoph Thiede
Adds UIManager>>#inform:title:, analogously to existing #confirm:title.
Project uiManager inform: 'Squeak is great!' title: 'Important Note'
=============== Diff ===============
DummyUIManager>>inform:title: {ui requests} · ct 5/14/2023 21:27
- inform: aString title: titleString
- "Nothing to be done here"
- self askForProvidedAnswerTo: aString ifSupplied: [:answer |
- ^ answer].
MVCUIManager>>inform:title: {ui requests} · ct 5/14/2023 21:27
- inform: aString title: titleString
- "Display a message for the user to read and then dismiss"
- self askForProvidedAnswerTo: aString ifSupplied: [:answer |
- ^ answer].
- ^ PopUpMenu inform: (self dialogStringFromQuery: aString withTitle: titleString)
MorphicUIManager>>inform:title: {ui requests} · ct 5/14/2023 21:26
- inform: aString title: titleString
- "Display a message for the user to read and then dismiss"
- self askForProvidedAnswerTo: aString ifSupplied: [:answer |
- ^ answer].
- ^ UserDialogBoxMorph inform: aString title: titleString
UIManager>>inform:title: {ui requests} · ct 5/14/2023 21:27
- inform: aString title: titleString
- "Display a message for the user to read and then dismiss"
- ^self subclassResponsibility
---Sent from [Squeak Inbox Talk](https://github.com/hpi-swa-lab/squeak-inbox-talk) ["UIManagerInformTitle.1.cs"]
Also an interesting idea. I like to use events.I do not underestimate Exceptions, except basic use. Seems to me an UI interaction is an event, not an exception. I’m all about making first class objects spit events so the container he’s in responds appropriately.
What I really want is an eventual UI, along with the ability to have more than one instance of a VatProcessScheduler operating on a particular core.
❤️🔥🐰
On Wed, May 17, 2023 at 17:57, <[christoph.thiede@student.hpi.uni-potsdam.de](mailto:On Wed, May 17, 2023 at 17:57, <<a href=)> wrote:
Interesting idea ... and you could mock/override that user for tests. On the other hand, I was planning to implement all UIManager requests as Exceptions/Notifications (pluggable, nestable, catchable, etc.) ...
Best, Christoph
On 2023-05-17T19:46:17+00:00, rabbit@callistohouse.org wrote:
Cool beans. Got me thinking about Croquet. Would it provide more congruity to have a User object, with multiple views of a space (audio, video,text msg, LinkedIn feed) and be able to send #inform: and #confirm: to theUser?
❤️🔥🐰
On Wed, May 17, 2023 at 14:38, <[christoph.thiede(a)student.hpi.uni-potsdam.de](mailto:On Wed, May 17, 2023 at 14:38, <<a href=)> wrote:
=============== Summary ===============
Change Set: UIManagerInformTitle Date: 17 May 2023 Author: Christoph Thiede
Adds UIManager>>#inform:title:, analogously to existing #confirm:title.
Project uiManager inform: 'Squeak is great!' title: 'Important Note'
=============== Diff ===============
DummyUIManager>>inform:title: {ui requests} · ct 5/14/2023 21:27
- inform: aString title: titleString
- "Nothing to be done here"
- self askForProvidedAnswerTo: aString ifSupplied: [:answer |
- ^ answer].
MVCUIManager>>inform:title: {ui requests} · ct 5/14/2023 21:27
- inform: aString title: titleString
- "Display a message for the user to read and then dismiss"
- self askForProvidedAnswerTo: aString ifSupplied: [:answer |
- ^ answer].
- ^ PopUpMenu inform: (self dialogStringFromQuery: aString withTitle: titleString)
MorphicUIManager>>inform:title: {ui requests} · ct 5/14/2023 21:26
- inform: aString title: titleString
- "Display a message for the user to read and then dismiss"
- self askForProvidedAnswerTo: aString ifSupplied: [:answer |
- ^ answer].
- ^ UserDialogBoxMorph inform: aString title: titleString
UIManager>>inform:title: {ui requests} · ct 5/14/2023 21:27
- inform: aString title: titleString
- "Display a message for the user to read and then dismiss"
- ^self subclassResponsibility
---Sent from [Squeak Inbox Talk](https://github.com/hpi-swa-lab/squeak-inbox-talk) ["UIManagerInformTitle.1.cs"]
Heh. I meant to type: “I “do not understand Exceptions (or Continuations) (or stacks)…”
❤️🔥🐰
On Wed, May 17, 2023 at 19:20, rabbit <[rabbit@callistohouse.org](mailto:On Wed, May 17, 2023 at 19:20, rabbit <<a href=)> wrote:
Also an interesting idea. I like to use events.I do not underestimate Exceptions, except basic use. Seems to me an UI interaction is an event, not an exception. I’m all about making first class objects spit events so the container he’s in responds appropriately.
What I really want is an eventual UI, along with the ability to have more than one instance of a VatProcessScheduler operating on a particular core.
❤️🔥🐰
On Wed, May 17, 2023 at 17:57, <[christoph.thiede@student.hpi.uni-potsdam.de](mailto:On Wed, May 17, 2023 at 17:57, <<a href=)> wrote:
Interesting idea ... and you could mock/override that user for tests. On the other hand, I was planning to implement all UIManager requests as Exceptions/Notifications (pluggable, nestable, catchable, etc.) ...
Best, Christoph
On 2023-05-17T19:46:17+00:00, rabbit@callistohouse.org wrote:
Cool beans. Got me thinking about Croquet. Would it provide more congruity to have a User object, with multiple views of a space (audio, video,text msg, LinkedIn feed) and be able to send #inform: and #confirm: to theUser?
❤️🔥🐰
On Wed, May 17, 2023 at 14:38, <[christoph.thiede(a)student.hpi.uni-potsdam.de](mailto:On Wed, May 17, 2023 at 14:38, <<a href=)> wrote:
=============== Summary ===============
Change Set: UIManagerInformTitle Date: 17 May 2023 Author: Christoph Thiede
Adds UIManager>>#inform:title:, analogously to existing #confirm:title.
Project uiManager inform: 'Squeak is great!' title: 'Important Note'
=============== Diff ===============
DummyUIManager>>inform:title: {ui requests} · ct 5/14/2023 21:27
- inform: aString title: titleString
- "Nothing to be done here"
- self askForProvidedAnswerTo: aString ifSupplied: [:answer |
- ^ answer].
MVCUIManager>>inform:title: {ui requests} · ct 5/14/2023 21:27
- inform: aString title: titleString
- "Display a message for the user to read and then dismiss"
- self askForProvidedAnswerTo: aString ifSupplied: [:answer |
- ^ answer].
- ^ PopUpMenu inform: (self dialogStringFromQuery: aString withTitle: titleString)
MorphicUIManager>>inform:title: {ui requests} · ct 5/14/2023 21:26
- inform: aString title: titleString
- "Display a message for the user to read and then dismiss"
- self askForProvidedAnswerTo: aString ifSupplied: [:answer |
- ^ answer].
- ^ UserDialogBoxMorph inform: aString title: titleString
UIManager>>inform:title: {ui requests} · ct 5/14/2023 21:27
- inform: aString title: titleString
- "Display a message for the user to read and then dismiss"
- ^self subclassResponsibility
---Sent from [Squeak Inbox Talk](https://github.com/hpi-swa-lab/squeak-inbox-talk) ["UIManagerInformTitle.1.cs"]
Seems to me an UI interaction is an event, not an exception. I’m all about making first class objects spit events so the container he’s in responds appropriately.
Sure, but something like an "information" or a "request to choose a folder" is not necessarily answered by the user but might be handled by an automator or a test instead. Exceptions are also first-class objects. But it might be another interesting to think about a UI system where all events (every mouse movement, click, keyboard press, etc.) are modeled through exceptions ... How could such a system look like? :D
Best, Christoph
On 2023-05-17T23:22:10+00:00, rabbit@callistohouse.org wrote:
Heh. I meant to type: “I “do not understand Exceptions (or Continuations) (or stacks)…”
❤️🔥🐰
On Wed, May 17, 2023 at 19:20, rabbit <[rabbit(a)callistohouse.org](mailto:On Wed, May 17, 2023 at 19:20, rabbit <<a href=)> wrote:
Also an interesting idea. I like to use events.I do not underestimate Exceptions, except basic use. Seems to me an UI interaction is an event, not an exception. I’m all about making first class objects spit events so the container he’s in responds appropriately.
What I really want is an eventual UI, along with the ability to have more than one instance of a VatProcessScheduler operating on a particular core.
❤️🔥🐰
On Wed, May 17, 2023 at 17:57, <[christoph.thiede(a)student.hpi.uni-potsdam.de](mailto:On Wed, May 17, 2023 at 17:57, <<a href=)> wrote:
Interesting idea ... and you could mock/override that user for tests. On the other hand, I was planning to implement all UIManager requests as Exceptions/Notifications (pluggable, nestable, catchable, etc.) ...
Best, Christoph
On 2023-05-17T19:46:17+00:00, rabbit(a)callistohouse.org wrote:
Cool beans. Got me thinking about Croquet. Would it provide more congruity to have a User object, with multiple views of a space (audio, video,text msg, LinkedIn feed) and be able to send #inform: and #confirm: to theUser?
❤️🔥🐰
On Wed, May 17, 2023 at 14:38, <[christoph.thiede(a)student.hpi.uni-potsdam.de](mailto:On Wed, May 17, 2023 at 14:38, <<a href=)> wrote:
=============== Summary ===============
Change Set: UIManagerInformTitle Date: 17 May 2023 Author: Christoph Thiede
Adds UIManager>>#inform:title:, analogously to existing #confirm:title.
Project uiManager inform: 'Squeak is great!' title: 'Important Note'
=============== Diff ===============
DummyUIManager>>inform:title: {ui requests} · ct 5/14/2023 21:27
- inform: aString title: titleString
- "Nothing to be done here"
- self askForProvidedAnswerTo: aString ifSupplied: [:answer |
- ^ answer].
MVCUIManager>>inform:title: {ui requests} · ct 5/14/2023 21:27
- inform: aString title: titleString
- "Display a message for the user to read and then dismiss"
- self askForProvidedAnswerTo: aString ifSupplied: [:answer |
- ^ answer].
- ^ PopUpMenu inform: (self dialogStringFromQuery: aString withTitle: titleString)
MorphicUIManager>>inform:title: {ui requests} · ct 5/14/2023 21:26
- inform: aString title: titleString
- "Display a message for the user to read and then dismiss"
- self askForProvidedAnswerTo: aString ifSupplied: [:answer |
- ^ answer].
- ^ UserDialogBoxMorph inform: aString title: titleString
UIManager>>inform:title: {ui requests} · ct 5/14/2023 21:27
- inform: aString title: titleString
- "Display a message for the user to read and then dismiss"
- ^self subclassResponsibility
---Sent from [Squeak Inbox Talk](https://github.com/hpi-swa-lab/squeak-inbox-talk) ["UIManagerInformTitle.1.cs"]
Object>> someConfirm:aString place:place fNotNil:a2inputValua"<---[ [ :p :answer | ^answer ]<---[ [_]-- self's caller returns ? ] ]" ^(( KEGNotificationSomething place:place if_placeMatches:( a2InputValua ifNil:[ [ :place :answer | ^answer ] ] )"<---[ [_]-- refactor ifNil: into Class ? ]" )signal:'NotifySomething Object>>someConfirm:place:ifNotNil:' with:[ :answer | ^answer ]"<---[ [_x ]-- a default ?^:( yes no place check ) [_x ]-- delete this line ?^:( no ) ]" ) ifNil:[ self confirmSomething:aStringOrSomething ]"<---[ [_]-- ^ here just looks messy to me? ]" ifNotNil:[ :x | x ]"<--------------------------------------------------[ [_]-- ^ here just looks messy to me? ]" BlockClosure>> on:notification_seq doPlaceCheckSeq:placeReturnvalue_seq ^( self on:( self classForKEG:( notification_seq next )at:#( BlockClosure on:doPlaceCheckSeq: ) ) do:[ :e | ( ( e place )=( placeReturnvalue_seq next ) ) ifTrue:[ e if_placeMatches value:place
value:( placeReturnvalue_seq next ) ]"<---[ [_]-- transpose? ]" ifFalse:[ self errorKEG:'( callerError:--( TestCase>>test )test place mis match )' ] ]"<---[ yes i think that this is better . i kept on balking at all those throw:at:s . too complicated too much repetition too many fiddley bits ]" [_x ]-- this is better than that throw thing?^:( yes i think so ) test ( self throw:returnVal at:#message ).( test )"<---[ is proliferation of throwing yuk Yuk ko ]"
test [ test-1 ]on:KEGNotificationSomething do:[ :e | e tag value:returnVal ]"<---[ the no place check default ]"
test #( ( NotifiClassName1 place1 false )( NotifiClassName2 place2 returnBool2 ) ( NotifiClassName3 place3 true )( NotifiClassName4 place4 true ) ( NotifiClassName5 place5 false )( NotifiClassName6 place6 true ) ( NotifiClassName7 place7 false )( NotifiClassName8 place8 true )... etc )orSomething asGen transpose reset ifNotNil:[ :notificationPlaceReturn_gen | "<------------------------------------[
on:doPlaceCheckSeq: does no initial reset ]"
[ test-1.notificationPlaceReturn_gen reset ."<---[ reuse the test array for each test ][ or don't ]" test-2.notificationPlaceReturn_gen reset . ... test-N ]on: notificationPlaceReturn_gen"<---[ or ( #Notification asGen repeatInfinite ) ]" doPlaceCheckSeq:notificationPlaceReturn_gen
ClassName>>someMethod"<---[ called by test-i ]" ... ( self someConfirm:'Please Confirm blablabla' place:#( ClassName someMethod 1 ) ifNotNil:nil )"<---[ nil --> [:p :a | ^a ] is the default or [ :place :answer | something ] is notNil and could be used for _? ]"
[ x ]-- if you do not have the latest KEGGenerator giant Package cluster _ then you could rig up some Stream hack job also or if there is some alternative or just whip out a to:by:do: and be done with it in two seconds flat why worry why should you have to learn this f yet another thing and it's large it's large it is large it's mostly comments but just go to implementorsOf: test_transepose or something he doesn't know i didn't know and BAM you know everything no you don't that's false advertising maybe some what false i forget i have not been wwwaaaasting my time again since then enough
the whole thing shoulda been written in CommonLisp et all much faster or lambdaOOP just forget about it
but i will use this Notify idea because why because it's better as in way better better enough to rip out the old thing ? yes i think so instead of all that throwing at: that i was doing mostly not doing and always going no don't do that again upon doing
sorry for wasting your time i know how you feel do i f do i know anything probably not so
ignore ignore ignore
everybody
ok
enough
On Thu, May 18, 2023 at 4:27 AM christoph.thiede@student.hpi.uni-potsdam.de wrote:
Seems to me an UI interaction is an event, not an exception. I’m all about making first class objects spit events so the container he’s in responds appropriately.
Sure, but something like an "information" or a "request to choose a folder" is not necessarily answered by the user but might be handled by an automator or a test instead. Exceptions are also first-class objects. But it might be another interesting to think about a UI system where all events (every mouse movement, click, keyboard press, etc.) are modeled through exceptions ... How could such a system look like? :D
Best, Christoph
On 2023-05-17T23:22:10+00:00, rabbit@callistohouse.org wrote:
Heh. I meant to type: “I “do not understand Exceptions (or Continuations) (or stacks)…”
❤️🔥🐰
On Wed, May 17, 2023 at 19:20, rabbit <[rabbit(a)callistohouse.org](mailto:On Wed, May 17, 2023 at 19:20, rabbit <<a href=)> wrote:
Also an interesting idea. I like to use events.I do not underestimate Exceptions, except basic use. Seems to me an UI interaction is an event, not an exception. I’m all about making first class objects spit events so the container he’s in responds appropriately.
What I really want is an eventual UI, along with the ability to have more than one instance of a VatProcessScheduler operating on a particular core.
❤️🔥🐰
On Wed, May 17, 2023 at 17:57, <[christoph.thiede(a)student.hpi.uni-potsdam.de](mailto:On Wed, May 17, 2023 at 17:57, <<a href=)> wrote:
Interesting idea ... and you could mock/override that user for tests. On the other hand, I was planning to implement all UIManager requests as Exceptions/Notifications (pluggable, nestable, catchable, etc.) ...
Best, Christoph
On 2023-05-17T19:46:17+00:00, rabbit(a)callistohouse.org wrote:
Cool beans. Got me thinking about Croquet. Would it provide more congruity to have a User object, with multiple views of a space (audio, video,text msg, LinkedIn feed) and be able to send #inform: and #confirm: to theUser?
❤️🔥🐰
On Wed, May 17, 2023 at 14:38, <[christoph.thiede(a)student.hpi.uni-potsdam.de](mailto:On Wed, May 17, 2023 at 14:38, <<a href=)> wrote:
=============== Summary ===============
Change Set: UIManagerInformTitle Date: 17 May 2023 Author: Christoph Thiede
Adds UIManager>>#inform:title:, analogously to existing #confirm:title.
Project uiManager inform: 'Squeak is great!' title: 'Important Note'
=============== Diff ===============
DummyUIManager>>inform:title: {ui requests} · ct 5/14/2023 21:27
- inform: aString title: titleString
- "Nothing to be done here"
- self askForProvidedAnswerTo: aString ifSupplied: [:answer |
- ^ answer].
MVCUIManager>>inform:title: {ui requests} · ct 5/14/2023 21:27
- inform: aString title: titleString
- "Display a message for the user to read and then dismiss"
- self askForProvidedAnswerTo: aString ifSupplied: [:answer |
- ^ answer].
- ^ PopUpMenu inform: (self dialogStringFromQuery: aString withTitle: titleString)
MorphicUIManager>>inform:title: {ui requests} · ct 5/14/2023 21:26
- inform: aString title: titleString
- "Display a message for the user to read and then dismiss"
- self askForProvidedAnswerTo: aString ifSupplied: [:answer |
- ^ answer].
- ^ UserDialogBoxMorph inform: aString title: titleString
UIManager>>inform:title: {ui requests} · ct 5/14/2023 21:27
- inform: aString title: titleString
- "Display a message for the user to read and then dismiss"
- ^self subclassResponsibility
---Sent from [Squeak Inbox Talk](https://github.com/hpi-swa-lab/squeak-inbox-talk) ["UIManagerInformTitle.1.cs"]
wow
that thing got squashed
completely unreadable now just as well
pfff i shoulda copied it and pasted it first
just forget about it
On Tue, May 23, 2023 at 1:39 AM Kjell Godo squeaklist@gmail.com wrote:
Object>> someConfirm:aString place:place fNotNil:a2inputValua"<---[ [ :p :answer | ^answer ]<---[ [_]-- self's caller returns ? ] ]" ^(( KEGNotificationSomething place:place if_placeMatches:( a2InputValua ifNil:[ [ :place :answer | ^answer ] ] )"<---[ [_]-- refactor ifNil: into Class ? ]" )signal:'NotifySomething Object>>someConfirm:place:ifNotNil:' with:[ :answer | ^answer ]"<---[ [_x ]-- a default ?^:( yes no place check ) [_x ]-- delete this line ?^:( no ) ]" ) ifNil:[ self confirmSomething:aStringOrSomething ]"<---[ [_]-- ^ here just looks messy to me? ]" ifNotNil:[ :x | x ]"<--------------------------------------------------[ [_]-- ^ here just looks messy to me? ]" BlockClosure>> on:notification_seq doPlaceCheckSeq:placeReturnvalue_seq ^( self on:( self classForKEG:( notification_seq next )at:#( BlockClosure on:doPlaceCheckSeq: ) ) do:[ :e | ( ( e place )=( placeReturnvalue_seq next ) ) ifTrue:[ e if_placeMatches value:place
value:( placeReturnvalue_seq next ) ]"<---[ [_]-- transpose? ]" ifFalse:[ self errorKEG:'( callerError:--( TestCase>>test )test place mis match )' ] ]"<---[ yes i think that this is better . i kept on balking at all those throw:at:s . too complicated too much repetition too many fiddley bits ]" [_x ]-- this is better than that throw thing?^:( yes i think so ) test ( self throw:returnVal at:#message ).( test )"<---[ is proliferation of throwing yuk Yuk ko ]"
test [ test-1 ]on:KEGNotificationSomething do:[ :e |
e tag value:returnVal ]"<---[ the no place check default ]"
test #( ( NotifiClassName1 place1 false )(
NotifiClassName2 place2 returnBool2 ) ( NotifiClassName3 place3 true )( NotifiClassName4 place4 true ) ( NotifiClassName5 place5 false )( NotifiClassName6 place6 true ) ( NotifiClassName7 place7 false )( NotifiClassName8 place8 true )... etc )orSomething asGen transpose reset ifNotNil:[ :notificationPlaceReturn_gen | "<------------------------------------[
on:doPlaceCheckSeq: does no initial reset ]"
[ test-1.notificationPlaceReturn_gen
reset ."<---[ reuse the test array for each test ][ or don't ]" test-2.notificationPlaceReturn_gen reset . ... test-N ]on: notificationPlaceReturn_gen"<---[ or ( #Notification asGen repeatInfinite ) ]" doPlaceCheckSeq:notificationPlaceReturn_gen
ClassName>>someMethod"<---[ called by test-i ]" ... ( self someConfirm:'Please Confirm blablabla' place:#( ClassName someMethod 1 ) ifNotNil:nil )"<---[ nil --> [:p :a | ^a ] is the default or [ :place
:answer | something ] is notNil and could be used for _? ]"
[ x ]-- if you do not have the latest KEGGenerator giant Package cluster _ then you could rig up some Stream hack job also or if there is some alternative or just whip out a to:by:do: and be done with it in two seconds flat why worry why should you have to learn this f yet another thing and it's large it's large it is large it's mostly comments but just go to implementorsOf: test_transepose or something he doesn't know i didn't know and BAM you know everything no you don't that's false advertising maybe some what false i forget i have not been wwwaaaasting my time again since then enough
the whole thing shoulda been written in CommonLisp et all much faster or lambdaOOP just forget about it
but i will use this Notify idea because why because it's better as in way better better enough to rip out the old thing ? yes i think so instead of all that throwing at: that i was doing mostly not doing and always going no don't do that again upon doing
sorry for wasting your time i know how you feel do i f do i know anything probably not so
ignore ignore ignore
everybody
ok
enough
On Thu, May 18, 2023 at 4:27 AM christoph.thiede@student.hpi.uni-potsdam.de wrote:
Seems to me an UI interaction is an event, not an exception. I’m all about making first class objects spit events so the container he’s in responds appropriately.
Sure, but something like an "information" or a "request to choose a folder" is not necessarily answered by the user but might be handled by an automator or a test instead. Exceptions are also first-class objects. But it might be another interesting to think about a UI system where all events (every mouse movement, click, keyboard press, etc.) are modeled through exceptions ... How could such a system look like? :D
Best, Christoph
On 2023-05-17T23:22:10+00:00, rabbit@callistohouse.org wrote:
Heh. I meant to type: “I “do not understand Exceptions (or Continuations) (or stacks)…”
❤️🔥🐰
On Wed, May 17, 2023 at 19:20, rabbit <[rabbit(a)callistohouse.org](mailto:On Wed, May 17, 2023 at 19:20, rabbit <<a href=)> wrote:
Also an interesting idea. I like to use events.I do not underestimate Exceptions, except basic use. Seems to me an UI interaction is an event, not an exception. I’m all about making first class objects spit events so the container he’s in responds appropriately.
What I really want is an eventual UI, along with the ability to have more than one instance of a VatProcessScheduler operating on a particular core.
❤️🔥🐰
On Wed, May 17, 2023 at 17:57, <[christoph.thiede(a)student.hpi.uni-potsdam.de](mailto:On Wed, May 17, 2023 at 17:57, <<a href=)> wrote:
Interesting idea ... and you could mock/override that user for tests. On the other hand, I was planning to implement all UIManager requests as Exceptions/Notifications (pluggable, nestable, catchable, etc.) ...
Best, Christoph
On 2023-05-17T19:46:17+00:00, rabbit(a)callistohouse.org wrote:
Cool beans. Got me thinking about Croquet. Would it provide more congruity to have a User object, with multiple views of a space (audio, video,text msg, LinkedIn feed) and be able to send #inform: and #confirm: to theUser?
❤️🔥🐰
On Wed, May 17, 2023 at 14:38, <[christoph.thiede(a)student.hpi.uni-potsdam.de](mailto:On Wed, May 17, 2023 at 14:38, <<a href=)> wrote:
> =============== Summary =============== > > Change Set: UIManagerInformTitle > Date: 17 May 2023 > Author: Christoph Thiede > > Adds UIManager>>#inform:title:, analogously to existing #confirm:title. > > Project uiManager inform: 'Squeak is great!' title: 'Important Note' > > =============== Diff =============== > > DummyUIManager>>inform:title: {ui requests} · ct 5/14/2023 21:27 > + inform: aString title: titleString > + "Nothing to be done here" > + self askForProvidedAnswerTo: aString ifSupplied: [:answer | > + ^ answer]. > > MVCUIManager>>inform:title: {ui requests} · ct 5/14/2023 21:27 > + inform: aString title: titleString > + "Display a message for the user to read and then dismiss" > + self askForProvidedAnswerTo: aString ifSupplied: [:answer | > + ^ answer]. > + > + ^ PopUpMenu inform: (self dialogStringFromQuery: aString withTitle: titleString) > > MorphicUIManager>>inform:title: {ui requests} · ct 5/14/2023 21:26 > + inform: aString title: titleString > + "Display a message for the user to read and then dismiss" > + self askForProvidedAnswerTo: aString ifSupplied: [:answer | > + ^ answer]. > + > + ^ UserDialogBoxMorph inform: aString title: titleString > > UIManager>>inform:title: {ui requests} · ct 5/14/2023 21:27 > + inform: aString title: titleString > + "Display a message for the user to read and then dismiss" > + ^self subclassResponsibility > > ---Sent from [Squeak Inbox Talk](https://github.com/hpi-swa-lab/squeak-inbox-talk) > ["UIManagerInformTitle.1.cs"]
is that ai for you
On Tue, May 23, 2023 at 1:45 AM Kjell Godo squeaklist@gmail.com wrote:
wow
that thing got squashed
completely unreadable now just as well
pfff i shoulda copied it and pasted it first
just forget about it
On Tue, May 23, 2023 at 1:39 AM Kjell Godo squeaklist@gmail.com wrote:
Object>> someConfirm:aString place:place fNotNil:a2inputValua"<---[ [ :p :answer | ^answer ]<---[ [_]-- self's caller returns ? ] ]" ^(( KEGNotificationSomething place:place if_placeMatches:( a2InputValua ifNil:[ [ :place :answer | ^answer ] ] )"<---[ [_]-- refactor ifNil: into Class ? ]" )signal:'NotifySomething Object>>someConfirm:place:ifNotNil:' with:[ :answer | ^answer ]"<---[ [_x ]-- a default ?^:( yes no place check ) [_x ]-- delete this line ?^:( no ) ]" ) ifNil:[ self confirmSomething:aStringOrSomething ]"<---[ [_]-- ^ here just looks messy to me? ]" ifNotNil:[ :x | x ]"<--------------------------------------------------[ [_]-- ^ here just looks messy to me? ]" BlockClosure>> on:notification_seq doPlaceCheckSeq:placeReturnvalue_seq ^( self on:( self classForKEG:( notification_seq next )at:#( BlockClosure on:doPlaceCheckSeq: ) ) do:[ :e | ( ( e place )=( placeReturnvalue_seq next ) ) ifTrue:[ e if_placeMatches value:place
value:( placeReturnvalue_seq next ) ]"<---[ [_]-- transpose? ]" ifFalse:[ self errorKEG:'( callerError:--( TestCase>>test )test place mis match )' ] ]"<---[ yes i think that this is better . i kept on balking at all those throw:at:s . too complicated too much repetition too many fiddley bits ]" [_x ]-- this is better than that throw thing?^:( yes i think so ) test ( self throw:returnVal at:#message ).( test )"<---[ is proliferation of throwing yuk Yuk ko ]"
test [ test-1 ]on:KEGNotificationSomething do:[ :e |
e tag value:returnVal ]"<---[ the no place check default ]"
test #( ( NotifiClassName1 place1 false )(
NotifiClassName2 place2 returnBool2 ) ( NotifiClassName3 place3 true )( NotifiClassName4 place4 true ) ( NotifiClassName5 place5 false )( NotifiClassName6 place6 true ) ( NotifiClassName7 place7 false )( NotifiClassName8 place8 true )... etc )orSomething asGen transpose reset ifNotNil:[ :notificationPlaceReturn_gen | "<------------------------------------[
on:doPlaceCheckSeq: does no initial reset ]"
[ test-1.notificationPlaceReturn_gen
reset ."<---[ reuse the test array for each test ][ or don't ]" test-2.notificationPlaceReturn_gen reset . ... test-N ]on: notificationPlaceReturn_gen"<---[ or ( #Notification asGen repeatInfinite ) ]" doPlaceCheckSeq:notificationPlaceReturn_gen
ClassName>>someMethod"<---[ called by test-i ]" ... ( self someConfirm:'Please Confirm blablabla' place:#( ClassName someMethod 1 ) ifNotNil:nil )"<---[ nil --> [:p :a | ^a ] is the default or [ :place
:answer | something ] is notNil and could be used for _? ]"
[ x ]-- if you do not have the latest KEGGenerator giant Package cluster _ then you could rig up some Stream hack job also or if there is some alternative or just whip out a to:by:do: and be done with it in two seconds flat why worry why should you have to learn this f yet another thing and it's large it's large it is large it's mostly comments but just go to implementorsOf: test_transepose or something he doesn't know i didn't know and BAM you know everything no you don't that's false advertising maybe some what false i forget i have not been wwwaaaasting my time again since then enough
the whole thing shoulda been written in CommonLisp et all much faster or lambdaOOP just forget about it
but i will use this Notify idea because why because it's better as in way better better enough to rip out the old thing ? yes i think so instead of all that throwing at: that i was doing mostly not doing and always going no don't do that again upon doing
sorry for wasting your time i know how you feel do i f do i know anything probably not so
ignore ignore ignore
everybody
ok
enough
On Thu, May 18, 2023 at 4:27 AM christoph.thiede@student.hpi.uni-potsdam.de wrote:
Seems to me an UI interaction is an event, not an exception. I’m all about making first class objects spit events so the container he’s in responds appropriately.
Sure, but something like an "information" or a "request to choose a folder" is not necessarily answered by the user but might be handled by an automator or a test instead. Exceptions are also first-class objects. But it might be another interesting to think about a UI system where all events (every mouse movement, click, keyboard press, etc.) are modeled through exceptions ... How could such a system look like? :D
Best, Christoph
On 2023-05-17T23:22:10+00:00, rabbit@callistohouse.org wrote:
Heh. I meant to type: “I “do not understand Exceptions (or Continuations) (or stacks)…”
❤️🔥🐰
On Wed, May 17, 2023 at 19:20, rabbit <[rabbit(a)callistohouse.org](mailto:On Wed, May 17, 2023 at 19:20, rabbit <<a href=)> wrote:
Also an interesting idea. I like to use events.I do not underestimate Exceptions, except basic use. Seems to me an UI interaction is an event, not an exception. I’m all about making first class objects spit events so the container he’s in responds appropriately.
What I really want is an eventual UI, along with the ability to have more than one instance of a VatProcessScheduler operating on a particular core.
❤️🔥🐰
On Wed, May 17, 2023 at 17:57, <[christoph.thiede(a)student.hpi.uni-potsdam.de](mailto:On Wed, May 17, 2023 at 17:57, <<a href=)> wrote:
Interesting idea ... and you could mock/override that user for tests. On the other hand, I was planning to implement all UIManager requests as Exceptions/Notifications (pluggable, nestable, catchable, etc.) ...
Best, Christoph
On 2023-05-17T19:46:17+00:00, rabbit(a)callistohouse.org wrote:
> Cool beans. Got me thinking about Croquet. Would it provide more congruity to have a User object, with multiple views of a space (audio, video,text msg, LinkedIn feed) and be able to send #inform: and #confirm: to theUser? > > ❤️🔥🐰 > > On Wed, May 17, 2023 at 14:38, <[christoph.thiede(a)student.hpi.uni-potsdam.de](mailto:On Wed, May 17, 2023 at 14:38, <<a href=)> wrote: > > > =============== Summary =============== > > > > Change Set: UIManagerInformTitle > > Date: 17 May 2023 > > Author: Christoph Thiede > > > > Adds UIManager>>#inform:title:, analogously to existing #confirm:title. > > > > Project uiManager inform: 'Squeak is great!' title: 'Important Note' > > > > =============== Diff =============== > > > > DummyUIManager>>inform:title: {ui requests} · ct 5/14/2023 21:27 > > + inform: aString title: titleString > > + "Nothing to be done here" > > + self askForProvidedAnswerTo: aString ifSupplied: [:answer | > > + ^ answer]. > > > > MVCUIManager>>inform:title: {ui requests} · ct 5/14/2023 21:27 > > + inform: aString title: titleString > > + "Display a message for the user to read and then dismiss" > > + self askForProvidedAnswerTo: aString ifSupplied: [:answer | > > + ^ answer]. > > + > > + ^ PopUpMenu inform: (self dialogStringFromQuery: aString withTitle: titleString) > > > > MorphicUIManager>>inform:title: {ui requests} · ct 5/14/2023 21:26 > > + inform: aString title: titleString > > + "Display a message for the user to read and then dismiss" > > + self askForProvidedAnswerTo: aString ifSupplied: [:answer | > > + ^ answer]. > > + > > + ^ UserDialogBoxMorph inform: aString title: titleString > > > > UIManager>>inform:title: {ui requests} · ct 5/14/2023 21:27 > > + inform: aString title: titleString > > + "Display a message for the user to read and then dismiss" > > + ^self subclassResponsibility > > > > ---Sent from [Squeak Inbox Talk](https://github.com/hpi-swa-lab/squeak-inbox-talk) > > ["UIManagerInformTitle.1.cs"]
yeah that's what i really wanted it to do
On Tue, May 23, 2023 at 1:46 AM Kjell Godo squeaklist@gmail.com wrote:
is that ai for you
On Tue, May 23, 2023 at 1:45 AM Kjell Godo squeaklist@gmail.com wrote:
wow
that thing got squashed
completely unreadable now just as well
pfff i shoulda copied it and pasted it first
just forget about it
On Tue, May 23, 2023 at 1:39 AM Kjell Godo squeaklist@gmail.com wrote:
Object>> someConfirm:aString place:place fNotNil:a2inputValua"<---[ [ :p :answer | ^answer ]<---[ [_]-- self's caller returns ? ] ]" ^(( KEGNotificationSomething place:place if_placeMatches:( a2InputValua ifNil:[ [ :place :answer | ^answer ] ] )"<---[ [_]-- refactor ifNil: into Class ? ]" )signal:'NotifySomething Object>>someConfirm:place:ifNotNil:' with:[ :answer | ^answer ]"<---[ [_x ]-- a default ?^:( yes no place check ) [_x ]-- delete this line ?^:( no ) ]" ) ifNil:[ self confirmSomething:aStringOrSomething ]"<---[ [_]-- ^ here just looks messy to me? ]" ifNotNil:[ :x | x ]"<--------------------------------------------------[ [_]-- ^ here just looks messy to me? ]" BlockClosure>> on:notification_seq doPlaceCheckSeq:placeReturnvalue_seq ^( self on:( self classForKEG:( notification_seq next )at:#( BlockClosure on:doPlaceCheckSeq: ) ) do:[ :e | ( ( e place )=( placeReturnvalue_seq next ) ) ifTrue:[ e if_placeMatches value:place
value:( placeReturnvalue_seq next ) ]"<---[ [_]-- transpose? ]" ifFalse:[ self errorKEG:'( callerError:--( TestCase>>test )test place mis match )' ] ]"<---[ yes i think that this is better . i kept on balking at all those throw:at:s . too complicated too much repetition too many fiddley bits ]" [_x ]-- this is better than that throw thing?^:( yes i think so ) test ( self throw:returnVal at:#message ).( test )"<---[ is proliferation of throwing yuk Yuk ko ]"
test [ test-1 ]on:KEGNotificationSomething do:[ :e |
e tag value:returnVal ]"<---[ the no place check default ]"
test #( ( NotifiClassName1 place1 false )(
NotifiClassName2 place2 returnBool2 ) ( NotifiClassName3 place3 true )( NotifiClassName4 place4 true ) ( NotifiClassName5 place5 false )( NotifiClassName6 place6 true ) ( NotifiClassName7 place7 false )( NotifiClassName8 place8 true )... etc )orSomething asGen transpose reset ifNotNil:[ :notificationPlaceReturn_gen | "<------------------------------------[
on:doPlaceCheckSeq: does no initial reset ]"
[ test-1.notificationPlaceReturn_gen
reset ."<---[ reuse the test array for each test ][ or don't ]" test-2.notificationPlaceReturn_gen reset . ... test-N ]on: notificationPlaceReturn_gen"<---[ or ( #Notification asGen repeatInfinite ) ]" doPlaceCheckSeq:notificationPlaceReturn_gen
ClassName>>someMethod"<---[ called by test-i ]" ... ( self someConfirm:'Please Confirm blablabla' place:#( ClassName someMethod 1 ) ifNotNil:nil )"<---[ nil --> [:p :a | ^a ] is the default or [ :place
:answer | something ] is notNil and could be used for _? ]"
[ x ]-- if you do not have the latest KEGGenerator giant Package cluster _ then you could rig up some Stream hack job also or if there is some alternative or just whip out a to:by:do: and be done with it in two seconds flat why worry why should you have to learn this f yet another thing and it's large it's large it is large it's mostly comments but just go to implementorsOf: test_transepose or something he doesn't know i didn't know and BAM you know everything no you don't that's false advertising maybe some what false i forget i have not been wwwaaaasting my time again since then enough
the whole thing shoulda been written in CommonLisp et all much faster or lambdaOOP just forget about it
but i will use this Notify idea because why because it's better as in way better better enough to rip out the old thing ? yes i think so instead of all that throwing at: that i was doing mostly not doing and always going no don't do that again upon doing
sorry for wasting your time i know how you feel do i f do i know anything probably not so
ignore ignore ignore
everybody
ok
enough
On Thu, May 18, 2023 at 4:27 AM christoph.thiede@student.hpi.uni-potsdam.de wrote:
Seems to me an UI interaction is an event, not an exception. I’m all about making first class objects spit events so the container he’s in responds appropriately.
Sure, but something like an "information" or a "request to choose a folder" is not necessarily answered by the user but might be handled by an automator or a test instead. Exceptions are also first-class objects. But it might be another interesting to think about a UI system where all events (every mouse movement, click, keyboard press, etc.) are modeled through exceptions ... How could such a system look like? :D
Best, Christoph
On 2023-05-17T23:22:10+00:00, rabbit@callistohouse.org wrote:
Heh. I meant to type: “I “do not understand Exceptions (or Continuations) (or stacks)…”
❤️🔥🐰
On Wed, May 17, 2023 at 19:20, rabbit <[rabbit(a)callistohouse.org](mailto:On Wed, May 17, 2023 at 19:20, rabbit <<a href=)> wrote:
Also an interesting idea. I like to use events.I do not underestimate Exceptions, except basic use. Seems to me an UI interaction is an event, not an exception. I’m all about making first class objects spit events so the container he’s in responds appropriately.
What I really want is an eventual UI, along with the ability to have more than one instance of a VatProcessScheduler operating on a particular core.
❤️🔥🐰
On Wed, May 17, 2023 at 17:57, <[christoph.thiede(a)student.hpi.uni-potsdam.de](mailto:On Wed, May 17, 2023 at 17:57, <<a href=)> wrote:
> Interesting idea ... and you could mock/override that user for tests. On the other hand, I was planning to implement all UIManager requests as Exceptions/Notifications (pluggable, nestable, catchable, etc.) ... > > Best, > Christoph > > On 2023-05-17T19:46:17+00:00, rabbit(a)callistohouse.org wrote: > >> Cool beans. Got me thinking about Croquet. Would it provide more congruity to have a User object, with multiple views of a space (audio, video,text msg, LinkedIn feed) and be able to send #inform: and #confirm: to theUser? >> >> ❤️🔥🐰 >> >> On Wed, May 17, 2023 at 14:38, <[christoph.thiede(a)student.hpi.uni-potsdam.de](mailto:On Wed, May 17, 2023 at 14:38, <<a href=)> wrote: >> >> > =============== Summary =============== >> > >> > Change Set: UIManagerInformTitle >> > Date: 17 May 2023 >> > Author: Christoph Thiede >> > >> > Adds UIManager>>#inform:title:, analogously to existing #confirm:title. >> > >> > Project uiManager inform: 'Squeak is great!' title: 'Important Note' >> > >> > =============== Diff =============== >> > >> > DummyUIManager>>inform:title: {ui requests} · ct 5/14/2023 21:27 >> > + inform: aString title: titleString >> > + "Nothing to be done here" >> > + self askForProvidedAnswerTo: aString ifSupplied: [:answer | >> > + ^ answer]. >> > >> > MVCUIManager>>inform:title: {ui requests} · ct 5/14/2023 21:27 >> > + inform: aString title: titleString >> > + "Display a message for the user to read and then dismiss" >> > + self askForProvidedAnswerTo: aString ifSupplied: [:answer | >> > + ^ answer]. >> > + >> > + ^ PopUpMenu inform: (self dialogStringFromQuery: aString withTitle: titleString) >> > >> > MorphicUIManager>>inform:title: {ui requests} · ct 5/14/2023 21:26 >> > + inform: aString title: titleString >> > + "Display a message for the user to read and then dismiss" >> > + self askForProvidedAnswerTo: aString ifSupplied: [:answer | >> > + ^ answer]. >> > + >> > + ^ UserDialogBoxMorph inform: aString title: titleString >> > >> > UIManager>>inform:title: {ui requests} · ct 5/14/2023 21:27 >> > + inform: aString title: titleString >> > + "Display a message for the user to read and then dismiss" >> > + ^self subclassResponsibility >> > >> > ---Sent from [Squeak Inbox Talk](https://github.com/hpi-swa-lab/squeak-inbox-talk) >> > ["UIManagerInformTitle.1.cs"]
is the archived version not squashed where is the archive
stay in your bubble no
autist comin through
On Tue, May 23, 2023 at 1:46 AM Kjell Godo squeaklist@gmail.com wrote:
yeah that's what i really wanted it to do
On Tue, May 23, 2023 at 1:46 AM Kjell Godo squeaklist@gmail.com wrote:
is that ai for you
On Tue, May 23, 2023 at 1:45 AM Kjell Godo squeaklist@gmail.com wrote:
wow
that thing got squashed
completely unreadable now just as well
pfff i shoulda copied it and pasted it first
just forget about it
On Tue, May 23, 2023 at 1:39 AM Kjell Godo squeaklist@gmail.com wrote:
Object>> someConfirm:aString place:place fNotNil:a2inputValua"<---[ [ :p :answer | ^answer ]<---[ [_]-- self's caller returns ? ] ]" ^(( KEGNotificationSomething place:place if_placeMatches:( a2InputValua ifNil:[ [ :place :answer | ^answer ] ] )"<---[ [_]-- refactor ifNil: into Class ? ]" )signal:'NotifySomething Object>>someConfirm:place:ifNotNil:' with:[ :answer | ^answer ]"<---[ [_x ]-- a default ?^:( yes no place check ) [_x ]-- delete this line ?^:( no ) ]" ) ifNil:[ self confirmSomething:aStringOrSomething ]"<---[ [_]-- ^ here just looks messy to me? ]" ifNotNil:[ :x | x ]"<--------------------------------------------------[ [_]-- ^ here just looks messy to me? ]" BlockClosure>> on:notification_seq doPlaceCheckSeq:placeReturnvalue_seq ^( self on:( self classForKEG:( notification_seq next )at:#( BlockClosure on:doPlaceCheckSeq: ) ) do:[ :e | ( ( e place )=( placeReturnvalue_seq next ) ) ifTrue:[ e if_placeMatches value:place
value:( placeReturnvalue_seq next ) ]"<---[ [_]-- transpose? ]" ifFalse:[ self errorKEG:'( callerError:--( TestCase>>test )test place mis match )' ] ]"<---[ yes i think that this is better . i kept on balking at all those throw:at:s . too complicated too much repetition too many fiddley bits ]" [_x ]-- this is better than that throw thing?^:( yes i think so ) test ( self throw:returnVal at:#message ).( test )"<---[ is proliferation of throwing yuk Yuk ko ]"
test [ test-1 ]on:KEGNotificationSomething do:[ :e |
e tag value:returnVal ]"<---[ the no place check default ]"
test #( ( NotifiClassName1 place1 false )(
NotifiClassName2 place2 returnBool2 ) ( NotifiClassName3 place3 true )( NotifiClassName4 place4 true ) ( NotifiClassName5 place5 false )( NotifiClassName6 place6 true ) ( NotifiClassName7 place7 false )( NotifiClassName8 place8 true )... etc )orSomething asGen transpose reset ifNotNil:[ :notificationPlaceReturn_gen | "<------------------------------------[
on:doPlaceCheckSeq: does no initial reset ]"
[ test-1.notificationPlaceReturn_gen
reset ."<---[ reuse the test array for each test ][ or don't ]" test-2.notificationPlaceReturn_gen reset . ... test-N ]on: notificationPlaceReturn_gen"<---[ or ( #Notification asGen repeatInfinite ) ]" doPlaceCheckSeq:notificationPlaceReturn_gen
ClassName>>someMethod"<---[ called by test-i ]" ... ( self someConfirm:'Please Confirm blablabla' place:#( ClassName someMethod 1 ) ifNotNil:nil )"<---[ nil --> [:p :a | ^a ] is the default or [ :place
:answer | something ] is notNil and could be used for _? ]"
[ x ]-- if you do not have the latest KEGGenerator giant Package cluster _ then you could rig up some Stream hack job also or if there is some alternative or just whip out a to:by:do: and be done with it in two seconds flat why worry why should you have to learn this f yet another thing and it's large it's large it is large it's mostly comments but just go to implementorsOf: test_transepose or something he doesn't know i didn't know and BAM you know everything no you don't that's false advertising maybe some what false i forget i have not been wwwaaaasting my time again since then enough
the whole thing shoulda been written in CommonLisp et all much faster or lambdaOOP just forget about it
but i will use this Notify idea because why because it's better as in way better better enough to rip out the old thing ? yes i think so instead of all that throwing at: that i was doing mostly not doing and always going no don't do that again upon doing
sorry for wasting your time i know how you feel do i f do i know anything probably not so
ignore ignore ignore
everybody
ok
enough
On Thu, May 18, 2023 at 4:27 AM christoph.thiede@student.hpi.uni-potsdam.de wrote:
Seems to me an UI interaction is an event, not an exception. I’m all about making first class objects spit events so the container he’s in responds appropriately.
Sure, but something like an "information" or a "request to choose a folder" is not necessarily answered by the user but might be handled by an automator or a test instead. Exceptions are also first-class objects. But it might be another interesting to think about a UI system where all events (every mouse movement, click, keyboard press, etc.) are modeled through exceptions ... How could such a system look like? :D
Best, Christoph
On 2023-05-17T23:22:10+00:00, rabbit@callistohouse.org wrote:
Heh. I meant to type: “I “do not understand Exceptions (or Continuations) (or stacks)…”
❤️🔥🐰
On Wed, May 17, 2023 at 19:20, rabbit <[rabbit(a)callistohouse.org](mailto:On Wed, May 17, 2023 at 19:20, rabbit <<a href=)> wrote:
> Also an interesting idea. I like to use events.I do not underestimate Exceptions, except basic use. Seems to me an UI interaction is an event, not an exception. I’m all about making first class objects spit events so the container he’s in responds appropriately. > > What I really want is an eventual UI, along with the ability to have more than one instance of a VatProcessScheduler operating on a particular core. > > ❤️🔥🐰 > > On Wed, May 17, 2023 at 17:57, <[christoph.thiede(a)student.hpi.uni-potsdam.de](mailto:On Wed, May 17, 2023 at 17:57, <<a href=)> wrote: > >> Interesting idea ... and you could mock/override that user for tests. On the other hand, I was planning to implement all UIManager requests as Exceptions/Notifications (pluggable, nestable, catchable, etc.) ... >> >> Best, >> Christoph >> >> On 2023-05-17T19:46:17+00:00, rabbit(a)callistohouse.org wrote: >> >>> Cool beans. Got me thinking about Croquet. Would it provide more congruity to have a User object, with multiple views of a space (audio, video,text msg, LinkedIn feed) and be able to send #inform: and #confirm: to theUser? >>> >>> ❤️🔥🐰 >>> >>> On Wed, May 17, 2023 at 14:38, <[christoph.thiede(a)student.hpi.uni-potsdam.de](mailto:On Wed, May 17, 2023 at 14:38, <<a href=)> wrote: >>> >>> > =============== Summary =============== >>> > >>> > Change Set: UIManagerInformTitle >>> > Date: 17 May 2023 >>> > Author: Christoph Thiede >>> > >>> > Adds UIManager>>#inform:title:, analogously to existing #confirm:title. >>> > >>> > Project uiManager inform: 'Squeak is great!' title: 'Important Note' >>> > >>> > =============== Diff =============== >>> > >>> > DummyUIManager>>inform:title: {ui requests} · ct 5/14/2023 21:27 >>> > + inform: aString title: titleString >>> > + "Nothing to be done here" >>> > + self askForProvidedAnswerTo: aString ifSupplied: [:answer | >>> > + ^ answer]. >>> > >>> > MVCUIManager>>inform:title: {ui requests} · ct 5/14/2023 21:27 >>> > + inform: aString title: titleString >>> > + "Display a message for the user to read and then dismiss" >>> > + self askForProvidedAnswerTo: aString ifSupplied: [:answer | >>> > + ^ answer]. >>> > + >>> > + ^ PopUpMenu inform: (self dialogStringFromQuery: aString withTitle: titleString) >>> > >>> > MorphicUIManager>>inform:title: {ui requests} · ct 5/14/2023 21:26 >>> > + inform: aString title: titleString >>> > + "Display a message for the user to read and then dismiss" >>> > + self askForProvidedAnswerTo: aString ifSupplied: [:answer | >>> > + ^ answer]. >>> > + >>> > + ^ UserDialogBoxMorph inform: aString title: titleString >>> > >>> > UIManager>>inform:title: {ui requests} · ct 5/14/2023 21:27 >>> > + inform: aString title: titleString >>> > + "Display a message for the user to read and then dismiss" >>> > + ^self subclassResponsibility >>> > >>> > ---Sent from [Squeak Inbox Talk](https://github.com/hpi-swa-lab/squeak-inbox-talk) >>> > ["UIManagerInformTitle.1.cs"]
"well this one is quite easily made readable if you drop it into a Workspace and delete all the column inducing Carriage Return Line Feeds but you're not interested so just skip it"
'Object>>' someConfirm:aString place:place fNotNil:a2inputValua"<---[ [ :p :answer | ^answer ]<---[ [_]-- self's caller returns ? ] ]" ^(( KEGNotificationSomething place:place if_placeMatches:( a2InputValua ifNil:[ [ :place :answer | ^answer ] ] )"<---[ [_]-- refactor ifNil: into Class ? ]" )signal:'NotifySomething Object>>someConfirm:place:ifNotNil:' with:[ :answer | ^answer ]"<---[ [_x ]-- a default ?^:( yes no place check ) [_x ]-- delete this line ?^:( no ) ]" ) ifNil:[ self confirmSomething:aStringOrSomething ]"<---[ [_]-- ^ here just looks messy to me? ]" ifNotNil:[ :x | x ]"<--------------------------------------------------[ [_]-- ^ here just looks messy to me? ]" 'BlockClosure>>' on:notification_seq doPlaceCheckSeq:placeReturnvalue_seq ^( self on:( self classForKEG:( notification_seq next )at:#( BlockClosure on:doPlaceCheckSeq: ) ) do:[ :e | ( ( e place )=( placeReturnvalue_seq next ) ) ifTrue:[ e if_placeMatches value:place value:( placeReturnvalue_seq next ) ]"<---[ [_]-- transpose? ]" ifFalse:[ self errorKEG:'( callerError:--( TestCase>>test )test place mis match )' ] ]"<---[ yes i think that this is better . i kept on balking at all those throw:at:s . too complicated too much repetition too many fiddley bits ] [_x ]-- this is better than that throw thing?^:( yes i think so )" test ( self throw:returnVal at:#message ).( test )"<---[ is proliferation of throwing yuk Yuk ko ]"
test [ test-1 ]on:KEGNotificationSomething do:[ :e | e tag value:returnVal ]"<---[ the no place check default ]"
test #( ( NotifiClassName1 place1 false )( NotifiClassName2 place2 returnBool2 ) ( NotifiClassName3 place3 true )( NotifiClassName4 place4 true ) ( NotifiClassName5 place5 false )( NotifiClassName6 place6 true ) ( NotifiClassName7 place7 false )( NotifiClassName8 place8 true )... etc )orSomething asGen transpose reset ifNotNil:[ :notificationPlaceReturn_gen | "<------------------------------------[
on:doPlaceCheckSeq: does no initial reset ]"
[ test-1.notificationPlaceReturn_gen reset ."<---[ reuse the test array for each test ][ or don't ]" test-2.notificationPlaceReturn_gen reset . "..." test-N ]on: notificationPlaceReturn_gen"<---[ or ( #Notification asGen repeatInfinite ) ]" doPlaceCheckSeq: notificationPlaceReturn_gen
ClassName>>someMethod"<---[ called by test-i ]" ... ( self someConfirm:'Please Confirm blablabla' place:#( ClassName someMethod 1 ) ifNotNil:nil )"<---[ nil --> [:p :a | ^a ] is the default or [ :place :answer | something ] is notNil and could be used for _? ]
[ x ]-- if you do not have the latest KEGGenerator giant Package cluster _ then you could rig up some Stream hack job also or if there is some alternative or just whip out a to:by:do: and be done with it in two seconds flat why worry why should you have to learn this f yet another thing and it's large it's large it is large it's mostly comments but just go to implementorsOf: test_transepose or something he doesn't know i didn't know and BAM you know everything no you don't that's false advertising maybe some what false i forget i have not been wwwaaaasting my time again since then enough
the whole thing shoulda been written in CommonLisp et all much faster or lambdaOOP just forget about it
but i will use this Notify idea because why because it's better as in way better better enough to rip out the old thing ? yes i think so instead of all that throwing at: that i was doing mostly not doing and always going no don't do that again upon doing
sorry for wasting your time i know how you feel do i f do i know anything probably not so
ignore ignore ignore
everybody
ok
enough
On Tue, May 23, 2023 at 1:50 AM Kjell Godo squeaklist@gmail.com wrote:
is the archived version not squashed where is the archive
stay in your bubble no
autist comin through
On Tue, May 23, 2023 at 1:46 AM Kjell Godo squeaklist@gmail.com wrote:
yeah that's what i really wanted it to do
On Tue, May 23, 2023 at 1:46 AM Kjell Godo squeaklist@gmail.com wrote:
is that ai for you
On Tue, May 23, 2023 at 1:45 AM Kjell Godo squeaklist@gmail.com wrote:
wow
that thing got squashed
completely unreadable now just as well
pfff i shoulda copied it and pasted it first
just forget about it
On Tue, May 23, 2023 at 1:39 AM Kjell Godo squeaklist@gmail.com wrote:
Object>> someConfirm:aString place:place fNotNil:a2inputValua"<---[ [ :p :answer | ^answer ]<---[ [_]-- self's caller returns ? ] ]" ^(( KEGNotificationSomething place:place if_placeMatches:( a2InputValua ifNil:[ [ :place :answer | ^answer ] ] )"<---[ [_]-- refactor ifNil: into Class ? ]" )signal:'NotifySomething Object>>someConfirm:place:ifNotNil:' with:[ :answer | ^answer ]"<---[ [_x ]-- a default ?^:( yes no place check ) [_x ]-- delete this line ?^:( no ) ]" ) ifNil:[ self confirmSomething:aStringOrSomething ]"<---[ [_]-- ^ here just looks messy to me? ]" ifNotNil:[ :x | x ]"<--------------------------------------------------[ [_]-- ^ here just looks messy to me? ]" BlockClosure>> on:notification_seq doPlaceCheckSeq:placeReturnvalue_seq ^( self on:( self classForKEG:( notification_seq next )at:#( BlockClosure on:doPlaceCheckSeq: ) ) do:[ :e | ( ( e place )=( placeReturnvalue_seq next ) ) ifTrue:[ e if_placeMatches value:place
value:( placeReturnvalue_seq next ) ]"<---[ [_]-- transpose? ]" ifFalse:[ self errorKEG:'( callerError:--( TestCase>>test )test place mis match )' ] ]"<---[ yes i think that this is better . i kept on balking at all those throw:at:s . too complicated too much repetition too many fiddley bits ]" [_x ]-- this is better than that throw thing?^:( yes i think so ) test ( self throw:returnVal at:#message ).( test )"<---[ is proliferation of throwing yuk Yuk ko ]"
test [ test-1 ]on:KEGNotificationSomething do:[ :e |
e tag value:returnVal ]"<---[ the no place check default ]"
test #( ( NotifiClassName1 place1 false )(
NotifiClassName2 place2 returnBool2 ) ( NotifiClassName3 place3 true )( NotifiClassName4 place4 true ) ( NotifiClassName5 place5 false )( NotifiClassName6 place6 true ) ( NotifiClassName7 place7 false )( NotifiClassName8 place8 true )... etc )orSomething asGen transpose reset ifNotNil:[ :notificationPlaceReturn_gen | "<------------------------------------[
>on:doPlaceCheckSeq: does no initial reset ]"
[ test-1.notificationPlaceReturn_gen
reset ."<---[ reuse the test array for each test ][ or don't ]" test-2.notificationPlaceReturn_gen reset . ... test-N ]on: notificationPlaceReturn_gen"<---[ or ( #Notification asGen repeatInfinite ) ]" doPlaceCheckSeq:notificationPlaceReturn_gen
ClassName>>someMethod"<---[ called by test-i ]" ... ( self someConfirm:'Please Confirm blablabla' place:#( ClassName someMethod 1 ) ifNotNil:nil )"<---[ nil --> [:p :a | ^a ] is the default or [ :place
:answer | something ] is notNil and could be used for _? ]"
[ x ]-- if you do not have the latest KEGGenerator giant Package cluster _ then you could rig up some Stream hack job also or if there is some alternative or just whip out a to:by:do: and be done with it in two seconds flat why worry why should you have to learn this f yet another thing and it's large it's large it is large it's mostly comments but just go to implementorsOf: test_transepose or something he doesn't know i didn't know and BAM you know everything no you don't that's false advertising maybe some what false i forget i have not been wwwaaaasting my time again since then enough
the whole thing shoulda been written in CommonLisp et all much faster or lambdaOOP just forget about it
but i will use this Notify idea because why because it's better as in way better better enough to rip out the old thing ? yes i think so instead of all that throwing at: that i was doing mostly not doing and always going no don't do that again upon doing
sorry for wasting your time i know how you feel do i f do i know anything probably not so
ignore ignore ignore
everybody
ok
enough
On Thu, May 18, 2023 at 4:27 AM christoph.thiede@student.hpi.uni-potsdam.de wrote:
> Seems to me an UI interaction is an event, not an exception. I’m all about making first class objects spit events so the container he’s in responds appropriately.
Sure, but something like an "information" or a "request to choose a folder" is not necessarily answered by the user but might be handled by an automator or a test instead. Exceptions are also first-class objects. But it might be another interesting to think about a UI system where all events (every mouse movement, click, keyboard press, etc.) are modeled through exceptions ... How could such a system look like? :D
Best, Christoph
On 2023-05-17T23:22:10+00:00, rabbit@callistohouse.org wrote:
> Heh. I meant to type: “I “do not understand Exceptions (or Continuations) (or stacks)…” > > ❤️🔥🐰 > > On Wed, May 17, 2023 at 19:20, rabbit <[rabbit(a)callistohouse.org](mailto:On Wed, May 17, 2023 at 19:20, rabbit <<a href=)> wrote: > > > Also an interesting idea. I like to use events.I do not underestimate Exceptions, except basic use. Seems to me an UI interaction is an event, not an exception. I’m all about making first class objects spit events so the container he’s in responds appropriately. > > > > What I really want is an eventual UI, along with the ability to have more than one instance of a VatProcessScheduler operating on a particular core. > > > > ❤️🔥🐰 > > > > On Wed, May 17, 2023 at 17:57, <[christoph.thiede(a)student.hpi.uni-potsdam.de](mailto:On Wed, May 17, 2023 at 17:57, <<a href=)> wrote: > > > >> Interesting idea ... and you could mock/override that user for tests. On the other hand, I was planning to implement all UIManager requests as Exceptions/Notifications (pluggable, nestable, catchable, etc.) ... > >> > >> Best, > >> Christoph > >> > >> On 2023-05-17T19:46:17+00:00, rabbit(a)callistohouse.org wrote: > >> > >>> Cool beans. Got me thinking about Croquet. Would it provide more congruity to have a User object, with multiple views of a space (audio, video,text msg, LinkedIn feed) and be able to send #inform: and #confirm: to theUser? > >>> > >>> ❤️🔥🐰 > >>> > >>> On Wed, May 17, 2023 at 14:38, <[christoph.thiede(a)student.hpi.uni-potsdam.de](mailto:On Wed, May 17, 2023 at 14:38, <<a href=)> wrote: > >>> > >>> > =============== Summary =============== > >>> > > >>> > Change Set: UIManagerInformTitle > >>> > Date: 17 May 2023 > >>> > Author: Christoph Thiede > >>> > > >>> > Adds UIManager>>#inform:title:, analogously to existing #confirm:title. > >>> > > >>> > Project uiManager inform: 'Squeak is great!' title: 'Important Note' > >>> > > >>> > =============== Diff =============== > >>> > > >>> > DummyUIManager>>inform:title: {ui requests} · ct 5/14/2023 21:27 > >>> > + inform: aString title: titleString > >>> > + "Nothing to be done here" > >>> > + self askForProvidedAnswerTo: aString ifSupplied: [:answer | > >>> > + ^ answer]. > >>> > > >>> > MVCUIManager>>inform:title: {ui requests} · ct 5/14/2023 21:27 > >>> > + inform: aString title: titleString > >>> > + "Display a message for the user to read and then dismiss" > >>> > + self askForProvidedAnswerTo: aString ifSupplied: [:answer | > >>> > + ^ answer]. > >>> > + > >>> > + ^ PopUpMenu inform: (self dialogStringFromQuery: aString withTitle: titleString) > >>> > > >>> > MorphicUIManager>>inform:title: {ui requests} · ct 5/14/2023 21:26 > >>> > + inform: aString title: titleString > >>> > + "Display a message for the user to read and then dismiss" > >>> > + self askForProvidedAnswerTo: aString ifSupplied: [:answer | > >>> > + ^ answer]. > >>> > + > >>> > + ^ UserDialogBoxMorph inform: aString title: titleString > >>> > > >>> > UIManager>>inform:title: {ui requests} · ct 5/14/2023 21:27 > >>> > + inform: aString title: titleString > >>> > + "Display a message for the user to read and then dismiss" > >>> > + ^self subclassResponsibility > >>> > > >>> > ---Sent from [Squeak Inbox Talk](https://github.com/hpi-swa-lab/squeak-inbox-talk) > >>> > ["UIManagerInformTitle.1.cs"]
what we low info people do get up to hmph
On Tue, May 23, 2023 at 1:59 AM Kjell Godo squeaklist@gmail.com wrote:
"well this one is quite easily made readable if you drop it into a Workspace and delete all the column inducing Carriage Return Line Feeds but you're not interested so just skip it"
'Object>>' someConfirm:aString place:place fNotNil:a2inputValua"<---[ [ :p :answer | ^answer ]<---[ [_]-- self's caller returns ? ] ]" ^(( KEGNotificationSomething place:place if_placeMatches:( a2InputValua ifNil:[ [ :place :answer | ^answer ] ] )"<---[ [_]-- refactor ifNil: into Class ? ]" )signal:'NotifySomething Object>>someConfirm:place:ifNotNil:' with:[ :answer | ^answer ]"<---[ [_x ]-- a default ?^:( yes no place check ) [_x ]-- delete this line ?^:( no ) ]" ) ifNil:[ self confirmSomething:aStringOrSomething ]"<---[ [_]-- ^ here just looks messy to me? ]" ifNotNil:[ :x | x ]"<--------------------------------------------------[ [_]-- ^ here just looks messy to me? ]" 'BlockClosure>>' on:notification_seq doPlaceCheckSeq:placeReturnvalue_seq ^( self on:( self classForKEG:( notification_seq next )at:#( BlockClosure on:doPlaceCheckSeq: ) ) do:[ :e | ( ( e place )=( placeReturnvalue_seq next ) ) ifTrue:[ e if_placeMatches value:place value:( placeReturnvalue_seq next ) ]"<---[ [_]-- transpose? ]" ifFalse:[ self errorKEG:'( callerError:--( TestCase>>test )test place mis match )' ] ]"<---[ yes i think that this is better . i kept on balking at all those throw:at:s . too complicated too much repetition too many fiddley bits ] [_x ]-- this is better than that throw thing?^:( yes i think so )" test ( self throw:returnVal at:#message ).( test )"<---[ is proliferation of throwing yuk Yuk ko ]"
test [ test-1 ]on:KEGNotificationSomething do:[ :e |
e tag value:returnVal ]"<---[ the no place check default ]"
test #( ( NotifiClassName1 place1 false )(
NotifiClassName2 place2 returnBool2 ) ( NotifiClassName3 place3 true )( NotifiClassName4 place4 true ) ( NotifiClassName5 place5 false )( NotifiClassName6 place6 true ) ( NotifiClassName7 place7 false )( NotifiClassName8 place8 true )... etc )orSomething asGen transpose reset ifNotNil:[ :notificationPlaceReturn_gen | "<------------------------------------[
on:doPlaceCheckSeq: does no initial reset ]"
[ test-1.notificationPlaceReturn_gen
reset ."<---[ reuse the test array for each test ][ or don't ]" test-2.notificationPlaceReturn_gen reset . "..." test-N ]on: notificationPlaceReturn_gen"<---[ or ( #Notification asGen repeatInfinite ) ]" doPlaceCheckSeq: notificationPlaceReturn_gen
ClassName>>someMethod"<---[ called by test-i ]" ... ( self someConfirm:'Please Confirm blablabla' place:#( ClassName someMethod 1 ) ifNotNil:nil )"<---[ nil --> [:p :a | ^a ] is the default or [ :place
:answer | something ] is notNil and could be used for _? ]
[ x ]-- if you do not have the latest KEGGenerator giant Package cluster _ then you could rig up some Stream hack job also or if there is some alternative or just whip out a to:by:do: and be done with it in two seconds flat why worry why should you have to learn this f yet another thing and it's large it's large it is large it's mostly comments but just go to implementorsOf: test_transepose or something he doesn't know i didn't know and BAM you know everything no you don't that's false advertising maybe some what false i forget i have not been wwwaaaasting my time again since then enough
the whole thing shoulda been written in CommonLisp et all much faster or lambdaOOP just forget about it
but i will use this Notify idea because why because it's better as in way better better enough to rip out the old thing ? yes i think so instead of all that throwing at: that i was doing mostly not doing and always going no don't do that again upon doing
sorry for wasting your time i know how you feel do i f do i know anything probably not so
ignore ignore ignore
everybody
ok
enough
On Tue, May 23, 2023 at 1:50 AM Kjell Godo squeaklist@gmail.com wrote:
is the archived version not squashed where is the archive
stay in your bubble no
autist comin through
On Tue, May 23, 2023 at 1:46 AM Kjell Godo squeaklist@gmail.com wrote:
yeah that's what i really wanted it to do
On Tue, May 23, 2023 at 1:46 AM Kjell Godo squeaklist@gmail.com wrote:
is that ai for you
On Tue, May 23, 2023 at 1:45 AM Kjell Godo squeaklist@gmail.com wrote:
wow
that thing got squashed
completely unreadable now just as well
pfff i shoulda copied it and pasted it first
just forget about it
On Tue, May 23, 2023 at 1:39 AM Kjell Godo squeaklist@gmail.com wrote:
Object>> someConfirm:aString place:place fNotNil:a2inputValua"<---[ [ :p :answer | ^answer ]<---[ [_]-- self's caller returns ? ] ]" ^(( KEGNotificationSomething place:place if_placeMatches:( a2InputValua ifNil:[ [ :place :answer | ^answer ] ] )"<---[ [_]-- refactor ifNil: into Class ? ]" )signal:'NotifySomething Object>>someConfirm:place:ifNotNil:' with:[ :answer | ^answer ]"<---[ [_x ]-- a default ?^:( yes no place check ) [_x ]-- delete this line ?^:( no ) ]" ) ifNil:[ self confirmSomething:aStringOrSomething ]"<---[ [_]-- ^ here just looks messy to me? ]" ifNotNil:[ :x | x ]"<--------------------------------------------------[ [_]-- ^ here just looks messy to me? ]" BlockClosure>> on:notification_seq doPlaceCheckSeq:placeReturnvalue_seq ^( self on:( self classForKEG:( notification_seq next )at:#( BlockClosure on:doPlaceCheckSeq: ) ) do:[ :e | ( ( e place )=( placeReturnvalue_seq next ) ) ifTrue:[ e if_placeMatches value:place
value:( placeReturnvalue_seq next ) ]"<---[ [_]-- transpose? ]" ifFalse:[ self errorKEG:'( callerError:--( TestCase>>test )test place mis match )' ] ]"<---[ yes i think that this is better . i kept on balking at all those throw:at:s . too complicated too much repetition too many fiddley bits ]" [_x ]-- this is better than that throw thing?^:( yes i think so ) test ( self throw:returnVal at:#message ).( test )"<---[ is proliferation of throwing yuk Yuk ko ]"
test [ test-1 ]on:KEGNotificationSomething do:[ :e |
e tag value:returnVal ]"<---[ the no place check default ]"
test #( ( NotifiClassName1 place1 false )(
NotifiClassName2 place2 returnBool2 ) ( NotifiClassName3 place3 true )( NotifiClassName4 place4 true ) ( NotifiClassName5 place5 false )( NotifiClassName6 place6 true ) ( NotifiClassName7 place7 false )( NotifiClassName8 place8 true )... etc )orSomething asGen transpose reset ifNotNil:[ :notificationPlaceReturn_gen | "<------------------------------------[ >>on:doPlaceCheckSeq: does no initial reset ]" [ test-1.notificationPlaceReturn_gen reset ."<---[ reuse the test array for each test ][ or don't ]" test-2.notificationPlaceReturn_gen reset . ... test-N ]on: notificationPlaceReturn_gen"<---[ or ( #Notification asGen repeatInfinite ) ]" doPlaceCheckSeq:notificationPlaceReturn_gen
ClassName>>someMethod"<---[ called by test-i ]" ... ( self someConfirm:'Please Confirm blablabla' place:#( ClassName someMethod 1 ) ifNotNil:nil )"<---[ nil --> [:p :a | ^a ] is the default or [ :place
:answer | something ] is notNil and could be used for _? ]"
[ x ]-- if you do not have the latest KEGGenerator giant Package cluster _ then you could rig up some Stream hack job also or if there is some alternative or just whip out a to:by:do: and be done with it in two seconds flat why worry why should you have to learn this f yet another thing and it's large it's large it is large it's mostly comments but just go to implementorsOf: test_transepose or something he doesn't know i didn't know and BAM you know everything no you don't that's false advertising maybe some what false i forget i have not been wwwaaaasting my time again since then enough
the whole thing shoulda been written in CommonLisp et all much faster or lambdaOOP just forget about it
but i will use this Notify idea because why because it's better as in way better better enough to rip out the old thing ? yes i think so instead of all that throwing at: that i was doing mostly not doing and always going no don't do that again upon doing
sorry for wasting your time i know how you feel do i f do i know anything probably not so
ignore ignore ignore
everybody
ok
enough
On Thu, May 18, 2023 at 4:27 AM christoph.thiede@student.hpi.uni-potsdam.de wrote: > > > Seems to me an UI interaction is an event, not an exception. I’m all about making first class objects spit events so the container he’s in responds appropriately. > > Sure, but something like an "information" or a "request to choose a folder" is not necessarily answered by the user but might be handled by an automator or a test instead. Exceptions are also first-class objects. But it might be another interesting to think about a UI system where all events (every mouse movement, click, keyboard press, etc.) are modeled through exceptions ... How could such a system look like? :D > > Best, > Christoph > > On 2023-05-17T23:22:10+00:00, rabbit@callistohouse.org wrote: > > > Heh. I meant to type: “I “do not understand Exceptions (or Continuations) (or stacks)…” > > > > ❤️🔥🐰 > > > > On Wed, May 17, 2023 at 19:20, rabbit <[rabbit(a)callistohouse.org](mailto:On Wed, May 17, 2023 at 19:20, rabbit <<a href=)> wrote: > > > > > Also an interesting idea. I like to use events.I do not underestimate Exceptions, except basic use. Seems to me an UI interaction is an event, not an exception. I’m all about making first class objects spit events so the container he’s in responds appropriately. > > > > > > What I really want is an eventual UI, along with the ability to have more than one instance of a VatProcessScheduler operating on a particular core. > > > > > > ❤️🔥🐰 > > > > > > On Wed, May 17, 2023 at 17:57, <[christoph.thiede(a)student.hpi.uni-potsdam.de](mailto:On Wed, May 17, 2023 at 17:57, <<a href=)> wrote: > > > > > >> Interesting idea ... and you could mock/override that user for tests. On the other hand, I was planning to implement all UIManager requests as Exceptions/Notifications (pluggable, nestable, catchable, etc.) ... > > >> > > >> Best, > > >> Christoph > > >> > > >> On 2023-05-17T19:46:17+00:00, rabbit(a)callistohouse.org wrote: > > >> > > >>> Cool beans. Got me thinking about Croquet. Would it provide more congruity to have a User object, with multiple views of a space (audio, video,text msg, LinkedIn feed) and be able to send #inform: and #confirm: to theUser? > > >>> > > >>> ❤️🔥🐰 > > >>> > > >>> On Wed, May 17, 2023 at 14:38, <[christoph.thiede(a)student.hpi.uni-potsdam.de](mailto:On Wed, May 17, 2023 at 14:38, <<a href=)> wrote: > > >>> > > >>> > =============== Summary =============== > > >>> > > > >>> > Change Set: UIManagerInformTitle > > >>> > Date: 17 May 2023 > > >>> > Author: Christoph Thiede > > >>> > > > >>> > Adds UIManager>>#inform:title:, analogously to existing #confirm:title. > > >>> > > > >>> > Project uiManager inform: 'Squeak is great!' title: 'Important Note' > > >>> > > > >>> > =============== Diff =============== > > >>> > > > >>> > DummyUIManager>>inform:title: {ui requests} · ct 5/14/2023 21:27 > > >>> > + inform: aString title: titleString > > >>> > + "Nothing to be done here" > > >>> > + self askForProvidedAnswerTo: aString ifSupplied: [:answer | > > >>> > + ^ answer]. > > >>> > > > >>> > MVCUIManager>>inform:title: {ui requests} · ct 5/14/2023 21:27 > > >>> > + inform: aString title: titleString > > >>> > + "Display a message for the user to read and then dismiss" > > >>> > + self askForProvidedAnswerTo: aString ifSupplied: [:answer | > > >>> > + ^ answer]. > > >>> > + > > >>> > + ^ PopUpMenu inform: (self dialogStringFromQuery: aString withTitle: titleString) > > >>> > > > >>> > MorphicUIManager>>inform:title: {ui requests} · ct 5/14/2023 21:26 > > >>> > + inform: aString title: titleString > > >>> > + "Display a message for the user to read and then dismiss" > > >>> > + self askForProvidedAnswerTo: aString ifSupplied: [:answer | > > >>> > + ^ answer]. > > >>> > + > > >>> > + ^ UserDialogBoxMorph inform: aString title: titleString > > >>> > > > >>> > UIManager>>inform:title: {ui requests} · ct 5/14/2023 21:27 > > >>> > + inform: aString title: titleString > > >>> > + "Display a message for the user to read and then dismiss" > > >>> > + ^self subclassResponsibility > > >>> > > > >>> > ---Sent from [Squeak Inbox Talk](https://github.com/hpi-swa-lab/squeak-inbox-talk) > > >>> > ["UIManagerInformTitle.1.cs"] >
if you don't stay in your bubble people could start turning up felons oh really i have no idea well i'm against the idea i've seen what they do in there have i ? i've seen things pixels i've seen pixels you people wouldn't believe no you haven't this is what happens when you let your prison people lobby congress to become sand ant traps roach motels fly paper pavilions for profit organizations 96.69% conviction rate they'll convict anybody even the prosecutors are sick and tired of always winning even they have started protesting the sickening win rate the deck is stacked with something and it aint chocolate well it's a farm it's patterned after the slave trade is it now yes you must be wrong am i ? well i wouldn't know i know nothing
joke it's a
On Tue, May 23, 2023 at 2:01 AM Kjell Godo squeaklist@gmail.com wrote:
what we low info people do get up to hmph
On Tue, May 23, 2023 at 1:59 AM Kjell Godo squeaklist@gmail.com wrote:
"well this one is quite easily made readable if you drop it into a Workspace and delete all the column inducing Carriage Return Line Feeds but you're not interested so just skip it"
'Object>>' someConfirm:aString place:place fNotNil:a2inputValua"<---[ [ :p :answer | ^answer ]<---[ [_]-- self's caller returns ? ] ]" ^(( KEGNotificationSomething place:place if_placeMatches:( a2InputValua ifNil:[ [ :place :answer | ^answer ] ] )"<---[ [_]-- refactor ifNil: into Class ? ]" )signal:'NotifySomething Object>>someConfirm:place:ifNotNil:' with:[ :answer | ^answer ]"<---[ [_x ]-- a default ?^:( yes no place check ) [_x ]-- delete this line ?^:( no ) ]" ) ifNil:[ self confirmSomething:aStringOrSomething ]"<---[ [_]-- ^ here just looks messy to me? ]" ifNotNil:[ :x | x ]"<--------------------------------------------------[ [_]-- ^ here just looks messy to me? ]" 'BlockClosure>>' on:notification_seq doPlaceCheckSeq:placeReturnvalue_seq ^( self on:( self classForKEG:( notification_seq next )at:#( BlockClosure on:doPlaceCheckSeq: ) ) do:[ :e | ( ( e place )=( placeReturnvalue_seq next ) ) ifTrue:[ e if_placeMatches value:place value:( placeReturnvalue_seq next ) ]"<---[ [_]-- transpose? ]" ifFalse:[ self errorKEG:'( callerError:--( TestCase>>test )test place mis match )' ] ]"<---[ yes i think that this is better . i kept on balking at all those throw:at:s . too complicated too much repetition too many fiddley bits ] [_x ]-- this is better than that throw thing?^:( yes i think so )" test ( self throw:returnVal at:#message ).( test )"<---[ is proliferation of throwing yuk Yuk ko ]"
test [ test-1 ]on:KEGNotificationSomething do:[ :e |
e tag value:returnVal ]"<---[ the no place check default ]"
test #( ( NotifiClassName1 place1 false )(
NotifiClassName2 place2 returnBool2 ) ( NotifiClassName3 place3 true )( NotifiClassName4 place4 true ) ( NotifiClassName5 place5 false )( NotifiClassName6 place6 true ) ( NotifiClassName7 place7 false )( NotifiClassName8 place8 true )... etc )orSomething asGen transpose reset ifNotNil:[ :notificationPlaceReturn_gen | "<------------------------------------[
on:doPlaceCheckSeq: does no initial reset ]"
[ test-1.notificationPlaceReturn_gen
reset ."<---[ reuse the test array for each test ][ or don't ]" test-2.notificationPlaceReturn_gen reset . "..." test-N ]on: notificationPlaceReturn_gen"<---[ or ( #Notification asGen repeatInfinite ) ]" doPlaceCheckSeq: notificationPlaceReturn_gen
ClassName>>someMethod"<---[ called by test-i ]" ... ( self someConfirm:'Please Confirm blablabla' place:#( ClassName someMethod 1 ) ifNotNil:nil )"<---[ nil --> [:p :a | ^a ] is the default or [ :place
:answer | something ] is notNil and could be used for _? ]
[ x ]-- if you do not have the latest KEGGenerator giant Package cluster _ then you could rig up some Stream hack job also or if there is some alternative or just whip out a to:by:do: and be done with it in two seconds flat why worry why should you have to learn this f yet another thing and it's large it's large it is large it's mostly comments but just go to implementorsOf: test_transepose or something he doesn't know i didn't know and BAM you know everything no you don't that's false advertising maybe some what false i forget i have not been wwwaaaasting my time again since then enough
the whole thing shoulda been written in CommonLisp et all much faster or lambdaOOP just forget about it
but i will use this Notify idea because why because it's better as in way better better enough to rip out the old thing ? yes i think so instead of all that throwing at: that i was doing mostly not doing and always going no don't do that again upon doing
sorry for wasting your time i know how you feel do i f do i know anything probably not so
ignore ignore ignore
everybody
ok
enough
On Tue, May 23, 2023 at 1:50 AM Kjell Godo squeaklist@gmail.com wrote:
is the archived version not squashed where is the archive
stay in your bubble no
autist comin through
On Tue, May 23, 2023 at 1:46 AM Kjell Godo squeaklist@gmail.com wrote:
yeah that's what i really wanted it to do
On Tue, May 23, 2023 at 1:46 AM Kjell Godo squeaklist@gmail.com wrote:
is that ai for you
On Tue, May 23, 2023 at 1:45 AM Kjell Godo squeaklist@gmail.com wrote:
wow
that thing got squashed
completely unreadable now just as well
pfff i shoulda copied it and pasted it first
just forget about it
On Tue, May 23, 2023 at 1:39 AM Kjell Godo squeaklist@gmail.com wrote: > > Object>> > someConfirm:aString > place:place > fNotNil:a2inputValua"<---[ [ :p :answer | ^answer ]<---[ [_]-- > self's caller returns ? ] ]" > ^(( KEGNotificationSomething > place:place > if_placeMatches:( a2InputValua ifNil:[ [ :place :answer | > ^answer ] ] )"<---[ [_]-- refactor ifNil: into Class ? ]" > )signal:'NotifySomething Object>>someConfirm:place:ifNotNil:' > with:[ :answer | ^answer ]"<---[ [_x ]-- a default ?^:( yes > no place check ) [_x ]-- delete this line ?^:( no ) ]" > ) ifNil:[ self confirmSomething:aStringOrSomething ]"<---[ > [_]-- ^ here just looks messy to me? ]" > ifNotNil:[ :x | x > ]"<--------------------------------------------------[ [_]-- ^ here > just looks messy to me? ]" > BlockClosure>> > on:notification_seq > doPlaceCheckSeq:placeReturnvalue_seq > ^( self > on:( self classForKEG:( notification_seq next )at:#( > BlockClosure on:doPlaceCheckSeq: ) ) > do:[ :e | > ( ( e place )=( placeReturnvalue_seq next ) ) > ifTrue:[ e if_placeMatches value:place > > value:( placeReturnvalue_seq next ) ]"<---[ [_]-- transpose? ]" > ifFalse:[ self errorKEG:'( callerError:--( > TestCase>>test )test place mis match )' ] > ]"<---[ yes i think that this is better . i kept on > balking at all those throw:at:s . too complicated too much > repetition too many fiddley bits ]" > [_x ]-- this is better than that throw thing?^:( yes i think so ) > test ( self throw:returnVal at:#message ).( test > )"<---[ is proliferation of throwing yuk Yuk ko ]" > > test [ test-1 ]on:KEGNotificationSomething do:[ :e | > e tag value:returnVal ]"<---[ the no place check default ]" > > test #( ( NotifiClassName1 place1 false )( > NotifiClassName2 place2 returnBool2 ) > ( NotifiClassName3 place3 true )( > NotifiClassName4 place4 true ) > ( NotifiClassName5 place5 false )( > NotifiClassName6 place6 true ) > ( NotifiClassName7 place7 false )( > NotifiClassName8 place8 true )... etc > )orSomething asGen transpose reset > ifNotNil:[ :notificationPlaceReturn_gen | > "<------------------------------------[ > >>on:doPlaceCheckSeq: does no initial reset ]" > [ test-1.notificationPlaceReturn_gen > reset ."<---[ reuse the test array for each test ][ or don't ]" > test-2.notificationPlaceReturn_gen reset . > ... > test-N > ]on: > notificationPlaceReturn_gen"<---[ or ( #Notification asGen > repeatInfinite ) ]" > doPlaceCheckSeq:notificationPlaceReturn_gen > > ClassName>>someMethod"<---[ called by test-i ]" ... > ( self someConfirm:'Please Confirm blablabla' > place:#( ClassName someMethod 1 ) > ifNotNil:nil )"<---[ nil --> [:p :a | ^a ] is the default > or [ :place > :answer | something ] is notNil and could be used for _? ]" > > [ x ]-- if you do not have the latest KEGGenerator giant Package > cluster _ then you could rig up some Stream hack job also > or if there is some alternative or just whip out a > to:by:do: and be done with it in two seconds flat why > worry > why should you have to learn this f yet another thing > and it's large it's large it is large it's mostly > comments > but just go to implementorsOf: test_transepose > or something he doesn't know > i didn't know > and > BAM you know everything no you don't that's false advertising > maybe some what false i forget > i have not been wwwaaaasting my time again since then enough > > the whole thing shoulda been written in CommonLisp et all much > faster or lambdaOOP > just forget about it > > but i will use this Notify idea because why because it's better > as in way better > better enough to rip out the old thing ? yes i think so > instead of all that throwing at: that i was doing mostly not > doing and always going no don't do that again upon doing > > sorry for wasting your time i know how you feel do i f > do i know anything probably not so > > ignore ignore ignore > > everybody > > ok > > enough > > On Thu, May 18, 2023 at 4:27 AM > christoph.thiede@student.hpi.uni-potsdam.de wrote: > > > > > Seems to me an UI interaction is an event, not an exception. I’m all about making first class objects spit events so the container he’s in responds appropriately. > > > > Sure, but something like an "information" or a "request to choose a folder" is not necessarily answered by the user but might be handled by an automator or a test instead. Exceptions are also first-class objects. But it might be another interesting to think about a UI system where all events (every mouse movement, click, keyboard press, etc.) are modeled through exceptions ... How could such a system look like? :D > > > > Best, > > Christoph > > > > On 2023-05-17T23:22:10+00:00, rabbit@callistohouse.org wrote: > > > > > Heh. I meant to type: “I “do not understand Exceptions (or Continuations) (or stacks)…” > > > > > > ❤️🔥🐰 > > > > > > On Wed, May 17, 2023 at 19:20, rabbit <[rabbit(a)callistohouse.org](mailto:On Wed, May 17, 2023 at 19:20, rabbit <<a href=)> wrote: > > > > > > > Also an interesting idea. I like to use events.I do not underestimate Exceptions, except basic use. Seems to me an UI interaction is an event, not an exception. I’m all about making first class objects spit events so the container he’s in responds appropriately. > > > > > > > > What I really want is an eventual UI, along with the ability to have more than one instance of a VatProcessScheduler operating on a particular core. > > > > > > > > ❤️🔥🐰 > > > > > > > > On Wed, May 17, 2023 at 17:57, <[christoph.thiede(a)student.hpi.uni-potsdam.de](mailto:On Wed, May 17, 2023 at 17:57, <<a href=)> wrote: > > > > > > > >> Interesting idea ... and you could mock/override that user for tests. On the other hand, I was planning to implement all UIManager requests as Exceptions/Notifications (pluggable, nestable, catchable, etc.) ... > > > >> > > > >> Best, > > > >> Christoph > > > >> > > > >> On 2023-05-17T19:46:17+00:00, rabbit(a)callistohouse.org wrote: > > > >> > > > >>> Cool beans. Got me thinking about Croquet. Would it provide more congruity to have a User object, with multiple views of a space (audio, video,text msg, LinkedIn feed) and be able to send #inform: and #confirm: to theUser? > > > >>> > > > >>> ❤️🔥🐰 > > > >>> > > > >>> On Wed, May 17, 2023 at 14:38, <[christoph.thiede(a)student.hpi.uni-potsdam.de](mailto:On Wed, May 17, 2023 at 14:38, <<a href=)> wrote: > > > >>> > > > >>> > =============== Summary =============== > > > >>> > > > > >>> > Change Set: UIManagerInformTitle > > > >>> > Date: 17 May 2023 > > > >>> > Author: Christoph Thiede > > > >>> > > > > >>> > Adds UIManager>>#inform:title:, analogously to existing #confirm:title. > > > >>> > > > > >>> > Project uiManager inform: 'Squeak is great!' title: 'Important Note' > > > >>> > > > > >>> > =============== Diff =============== > > > >>> > > > > >>> > DummyUIManager>>inform:title: {ui requests} · ct 5/14/2023 21:27 > > > >>> > + inform: aString title: titleString > > > >>> > + "Nothing to be done here" > > > >>> > + self askForProvidedAnswerTo: aString ifSupplied: [:answer | > > > >>> > + ^ answer]. > > > >>> > > > > >>> > MVCUIManager>>inform:title: {ui requests} · ct 5/14/2023 21:27 > > > >>> > + inform: aString title: titleString > > > >>> > + "Display a message for the user to read and then dismiss" > > > >>> > + self askForProvidedAnswerTo: aString ifSupplied: [:answer | > > > >>> > + ^ answer]. > > > >>> > + > > > >>> > + ^ PopUpMenu inform: (self dialogStringFromQuery: aString withTitle: titleString) > > > >>> > > > > >>> > MorphicUIManager>>inform:title: {ui requests} · ct 5/14/2023 21:26 > > > >>> > + inform: aString title: titleString > > > >>> > + "Display a message for the user to read and then dismiss" > > > >>> > + self askForProvidedAnswerTo: aString ifSupplied: [:answer | > > > >>> > + ^ answer]. > > > >>> > + > > > >>> > + ^ UserDialogBoxMorph inform: aString title: titleString > > > >>> > > > > >>> > UIManager>>inform:title: {ui requests} · ct 5/14/2023 21:27 > > > >>> > + inform: aString title: titleString > > > >>> > + "Display a message for the user to read and then dismiss" > > > >>> > + ^self subclassResponsibility > > > >>> > > > > >>> > ---Sent from [Squeak Inbox Talk](https://github.com/hpi-swa-lab/squeak-inbox-talk) > > > >>> > ["UIManagerInformTitle.1.cs"] > >
i’m Sorry I was under the impressIon that this was not Stalinist RuSsia What ever gave you that idea Oh the bill of rights the Declaration of Independence those things You may have some rights but generally only after you demonstrate your value to the regime otherwise you will be euthanized along with the other eugenics candidates and all material resources you have accumulated will be re allocated to the greater good of the two guys at the top oh well i suppose that’s good to know it can be a life saver yes well one can assume so one assumes so can i go now no
poof gone you can’t see me now why not because I’m invisible
another joke what a joke you’ll wind on the farm for sure now great beautiful I like farms my cousin has a farm well here’s what it looks like oh
can we just forget i said anything no yes because it’s a joke ha ha a funny little couldn’t hurt a flea j you know what a joke is don’t you it makes you feel happy and gay no it doesn’t it triggers me triggers you what are you a bomb or something that isn’t a AR15 down your pants is it or are you just happy to see me ha ha ha ha ha happy and gay it’s only a joke folks nothing nada nothing to worry about oh yes it is it’s only a joke a dream and the extent that it’s a scary dream to you is exactly isomorphic to to the extent that it’s right as rain it’s not scary to me I don’t we don’t go to jail only you little people go and start keepin the lights on i know what’s right and you are going right straight to jail as soon i dial up my too many lawyer pawn chose at Dewey Cheetum and Howie right and rain and giving everybody a real case of the willies everybody pliant supple and suggestible jellies i know who is going to be a pliant jelly it’s you mister lister sir and the too many lawyers you speak of in the Congers foxes in the hen house the family busti ness barred to all out house ers out house mousers with a kiss with a view give it a miss we’re in too sleep sleep my little pretties cryptographic text poppies will get them to sleep right through their own boiling I’ll tell you Whois boiling me why has his mike not been cut hasn’t it ? cryptographic text poppies it’s so boring yes it is and the too many lawyers have cowed everybody there in the rub at the Barbie que ne and you and thrown a wrench into the Russell 2000 what more proof you better believe it baby say hello to the jelly fyre 2000 and made the world safe for the few and the brave nots the brave not captured sure things the despair squids at the top FrApple Goople Fake blook maker Microsoftswerve BAmazona Hail Hail BLAmazonia too many syllables had a condo made BAmazona still too many had a condo made a stone a taken had a condo made amazona Skip it etc
the end finally
never mind
get this guy in jail pronto i want him cooling his socket by night fall brilliant brilliant keepin the lights on yeah keepin the lights on
oh boy
yeah you better believe it O boy
ok enough
it’s never enough till i say it’s enough
I said enough mercuriel
well ok
On Tue, May 23, 2023 at 02:17 Kjell Godo squeaklist@gmail.com wrote:
if you don't stay in your bubble people could start turning up felons oh really i have no idea well i'm against the idea i've seen what they do in there have i ? i've seen things pixels i've seen pixels you people wouldn't believe no you haven't this is what happens when you let your prison people lobby congress to become sand ant traps roach motels fly paper pavilions for profit organizations 96.69% conviction rate they'll convict anybody even the prosecutors are sick and tired of always winning even they have started protesting the sickening win rate the deck is stacked with something and it aint chocolate well it's a farm it's patterned after the slave trade is it now yes you must be wrong am i ? well i wouldn't know i know nothing
joke it's a
On Tue, May 23, 2023 at 2:01 AM Kjell Godo squeaklist@gmail.com wrote:
what we low info people do get up to hmph
On Tue, May 23, 2023 at 1:59 AM Kjell Godo squeaklist@gmail.com wrote:
"well this one is quite easily made readable if you drop it into a Workspace and delete all the column inducing Carriage Return Line Feeds but you're not interested so just skip it"
'Object>>' someConfirm:aString place:place fNotNil:a2inputValua"<---[ [ :p :answer | ^answer ]<---[ [_]-- self's caller returns ? ] ]" ^(( KEGNotificationSomething place:place if_placeMatches:( a2InputValua ifNil:[ [ :place :answer | ^answer ] ] )"<---[ [_]-- refactor ifNil: into Class ? ]" )signal:'NotifySomething Object>>someConfirm:place:ifNotNil:' with:[ :answer | ^answer ]"<---[ [_x ]-- a default ?^:( yes no place check ) [_x ]-- delete this line ?^:( no ) ]" ) ifNil:[ self confirmSomething:aStringOrSomething ]"<---[ [_]-- ^ here just looks messy to me? ]" ifNotNil:[ :x | x ]"<--------------------------------------------------[ [_]-- ^ here just looks messy to me? ]" 'BlockClosure>>' on:notification_seq doPlaceCheckSeq:placeReturnvalue_seq ^( self on:( self classForKEG:( notification_seq next )at:#( BlockClosure on:doPlaceCheckSeq: ) ) do:[ :e | ( ( e place )=( placeReturnvalue_seq next ) ) ifTrue:[ e if_placeMatches value:place value:( placeReturnvalue_seq next ) ]"<---[ [_]-- transpose? ]" ifFalse:[ self errorKEG:'( callerError:--( TestCase>>test )test place mis match )' ] ]"<---[ yes i think that this is better . i kept on balking at all those throw:at:s . too complicated too much repetition too many fiddley bits ] [_x ]-- this is better than that throw thing?^:( yes i think so )" test ( self throw:returnVal at:#message ).( test )"<---[ is proliferation of throwing yuk Yuk ko ]"
test [ test-1 ]on:KEGNotificationSomething do:[ :e |
e tag value:returnVal ]"<---[ the no place check default ]"
test #( ( NotifiClassName1 place1 false )(
NotifiClassName2 place2 returnBool2 ) ( NotifiClassName3 place3 true )( NotifiClassName4 place4 true ) ( NotifiClassName5 place5 false )( NotifiClassName6 place6 true ) ( NotifiClassName7 place7 false )( NotifiClassName8 place8 true )... etc )orSomething asGen transpose reset ifNotNil:[ :notificationPlaceReturn_gen | "<------------------------------------[
on:doPlaceCheckSeq: does no initial reset ]"
[ test-1.notificationPlaceReturn_gen
reset ."<---[ reuse the test array for each test ][ or don't ]" test-2.notificationPlaceReturn_gen
reset .
"..." test-N ]on: notificationPlaceReturn_gen"<---[
or ( #Notification asGen repeatInfinite ) ]" doPlaceCheckSeq:
notificationPlaceReturn_gen
ClassName>>someMethod"<---[ called by test-i ]" ... ( self someConfirm:'Please Confirm blablabla' place:#( ClassName someMethod 1 ) ifNotNil:nil )"<---[ nil --> [:p :a | ^a ] is
the default
or [ :place
:answer | something ] is notNil and could be used for _? ]
[ x ]-- if you do not have the latest KEGGenerator giant Package cluster _ then you could rig up some Stream hack job also or if there is some alternative or just whip out a to:by:do: and be done with it in two seconds flat why worry why should you have to learn this f yet another thing and it's large it's large it is large it's mostly comments but just go to implementorsOf: test_transepose or something he doesn't know i didn't know and BAM you know everything no you don't that's false advertising maybe some what false i forget i have not been wwwaaaasting my time again since then
enough
the whole thing shoulda been written in CommonLisp et all much faster or lambdaOOP just forget about it
but i will use this Notify idea because why because it's better as in way better better enough to rip out the old thing ? yes i think so instead of all that throwing at: that i was doing mostly not doing and always going no don't do that again upon doing
sorry for wasting your time i know how you feel do i f do i know anything probably not so
ignore ignore ignore
everybody
ok
enough
On Tue, May 23, 2023 at 1:50 AM Kjell Godo squeaklist@gmail.com
wrote:
is the archived version not squashed where is the archive
stay in your bubble no
autist comin through
On Tue, May 23, 2023 at 1:46 AM Kjell Godo squeaklist@gmail.com
wrote:
yeah that's what i really wanted it to do
On Tue, May 23, 2023 at 1:46 AM Kjell Godo squeaklist@gmail.com
wrote:
is that ai for you
On Tue, May 23, 2023 at 1:45 AM Kjell Godo squeaklist@gmail.com
wrote:
> > wow > > that thing got squashed > > completely unreadable now just as well > > pfff i shoulda copied it and pasted it first > > just forget about it > > On Tue, May 23, 2023 at 1:39 AM Kjell Godo <
squeaklist@gmail.com> wrote:
> > > > Object>> > > someConfirm:aString > > place:place > > fNotNil:a2inputValua"<---[ [ :p :answer | ^answer
]<---[ [_]--
> > self's caller returns ? ] ]" > > ^(( KEGNotificationSomething > > place:place > > if_placeMatches:( a2InputValua ifNil:[ [ :place
:answer |
> > ^answer ] ] )"<---[ [_]-- refactor ifNil: into Class ? ]" > > )signal:'NotifySomething
Object>>someConfirm:place:ifNotNil:'
> > with:[ :answer | ^answer ]"<---[ [_x ]-- a default
?^:( yes
> > no place check ) [_x ]-- delete this line ?^:( no ) ]" > > ) ifNil:[ self confirmSomething:aStringOrSomething
]"<---[
> > [_]-- ^ here just looks messy to me? ]" > > ifNotNil:[ :x | x > > ]"<--------------------------------------------------[ [_]--
^ here
> > just looks messy to me? ]" > > BlockClosure>> > > on:notification_seq > > doPlaceCheckSeq:placeReturnvalue_seq > > ^( self > > on:( self classForKEG:( notification_seq next
)at:#(
> > BlockClosure on:doPlaceCheckSeq: ) ) > > do:[ :e | > > ( ( e place )=( placeReturnvalue_seq next ) ) > > ifTrue:[ e if_placeMatches value:place > > > > value:( placeReturnvalue_seq next ) ]"<---[ [_]-- transpose?
]"
> > ifFalse:[ self errorKEG:'(
callerError:--(
> > TestCase>>test )test place mis match )' ] > > ]"<---[ yes i think that this is better . i
kept on
> > balking at all those throw:at:s . too complicated too much > > repetition too many fiddley bits ]" > > [_x ]-- this is better than that throw thing?^:( yes i think
so )
> > test ( self throw:returnVal at:#message
).( test
> > )"<---[ is proliferation of throwing yuk Yuk ko ]" > > > > test [ test-1 ]on:KEGNotificationSomething
do:[ :e |
> > e tag value:returnVal ]"<---[ the no place check default ]" > > > > test #( ( NotifiClassName1 place1 false )( > > NotifiClassName2 place2 returnBool2 ) > > ( NotifiClassName3 place3 true
)(
> > NotifiClassName4 place4 true ) > > ( NotifiClassName5 place5 false
)(
> > NotifiClassName6 place6 true ) > > ( NotifiClassName7 place7 false
)(
> > NotifiClassName8 place8 true )... etc > > )orSomething asGen transpose reset > > ifNotNil:[ :notificationPlaceReturn_gen | > >
"<------------------------------------[
> > >>on:doPlaceCheckSeq: does no initial reset ]" > > [
test-1.notificationPlaceReturn_gen
> > reset ."<---[ reuse the test array for each test ][ or don't
]"
> >
test-2.notificationPlaceReturn_gen reset .
> > ... > > test-N > > ]on: > > notificationPlaceReturn_gen"<---[ or ( #Notification asGen > > repeatInfinite ) ]" > >
doPlaceCheckSeq:notificationPlaceReturn_gen
> > > > ClassName>>someMethod"<---[ called by test-i ]" ... > > ( self someConfirm:'Please Confirm blablabla' > > place:#( ClassName someMethod 1 ) > > ifNotNil:nil )"<---[ nil --> [:p :a |
^a ] is the default
> > or [
:place
> > :answer | something ] is notNil and could be used for _? ]" > > > > [ x ]-- if you do not have the latest KEGGenerator giant
Package
> > cluster _ then you could rig up some Stream hack job also > > or if there is some alternative or just whip out a > > to:by:do: and be done with it in two seconds
flat why
> > worry > > why should you have to learn this f yet another
thing
> > and it's large it's large it is large
it's mostly
> > comments > > but just go to implementorsOf: test_transepose > > or something he doesn't know > > i didn't know > > and > > BAM you know everything no you don't that's false
advertising
> > maybe some what false i forget > > i have not been wwwaaaasting my time again since
then enough
> > > > the whole thing shoulda been written in CommonLisp et all
much
> > faster or lambdaOOP > > just forget about it > > > > but i will use this Notify idea because why because it's
better
> > as in way better > > better enough to rip out the old thing ? yes i
think so
> > instead of all that throwing at: that i was doing
mostly not
> > doing and always going no don't do that again upon doing > > > > sorry for wasting your time i know how you feel do
i f
> > do i know anything probably not so > > > > ignore ignore ignore > > > > everybody > > > > ok > > > > enough > > > > On Thu, May 18, 2023 at 4:27 AM > > christoph.thiede@student.hpi.uni-potsdam.de wrote: > > > > > > > Seems to me an UI interaction is an event, not an
exception. I’m all about making first class objects spit events so the container he’s in responds appropriately.
> > > > > > Sure, but something like an "information" or a "request to
choose a folder" is not necessarily answered by the user but might be handled by an automator or a test instead. Exceptions are also first-class objects. But it might be another interesting to think about a UI system where all events (every mouse movement, click, keyboard press, etc.) are modeled through exceptions ... How could such a system look like? :D
> > > > > > Best, > > > Christoph > > > > > > On 2023-05-17T23:22:10+00:00, rabbit@callistohouse.org
wrote:
> > > > > > > Heh. I meant to type: “I “do not understand Exceptions
(or Continuations) (or stacks)…”
> > > > > > > > ❤️🔥🐰 > > > > > > > > On Wed, May 17, 2023 at 19:20, rabbit <[rabbit(a)
callistohouse.org](mailto:On Wed, May 17, 2023 at 19:20, rabbit <<a href=)> wrote:
> > > > > > > > > Also an interesting idea. I like to use events.I do
not underestimate Exceptions, except basic use. Seems to me an UI interaction is an event, not an exception. I’m all about making first class objects spit events so the container he’s in responds appropriately.
> > > > > > > > > > What I really want is an eventual UI, along with the
ability to have more than one instance of a VatProcessScheduler operating on a particular core.
> > > > > > > > > > ❤️🔥🐰 > > > > > > > > > > On Wed, May 17, 2023 at 17:57, <[christoph.thiede(a)
student.hpi.uni-potsdam.de](mailto:On Wed, May 17, 2023 at 17:57, <<a href=)> wrote:
> > > > > > > > > >> Interesting idea ... and you could mock/override that
user for tests. On the other hand, I was planning to implement all UIManager requests as Exceptions/Notifications (pluggable, nestable, catchable, etc.) ...
> > > > >> > > > > >> Best, > > > > >> Christoph > > > > >> > > > > >> On 2023-05-17T19:46:17+00:00, rabbit(a)
callistohouse.org wrote:
> > > > >> > > > > >>> Cool beans. Got me thinking about Croquet. Would it
provide more congruity to have a User object, with multiple views of a space (audio, video,text msg, LinkedIn feed) and be able to send #inform: and #confirm: to theUser?
> > > > >>> > > > > >>> ❤️🔥🐰 > > > > >>> > > > > >>> On Wed, May 17, 2023 at 14:38, <[christoph.thiede(a)
student.hpi.uni-potsdam.de](mailto:On Wed, May 17, 2023 at 14:38, <<a href=)> wrote:
> > > > >>> > > > > >>> > =============== Summary =============== > > > > >>> > > > > > >>> > Change Set: UIManagerInformTitle > > > > >>> > Date: 17 May 2023 > > > > >>> > Author: Christoph Thiede > > > > >>> > > > > > >>> > Adds UIManager>>#inform:title:, analogously to
existing #confirm:title.
> > > > >>> > > > > > >>> > Project uiManager inform: 'Squeak is great!'
title: 'Important Note'
> > > > >>> > > > > > >>> > =============== Diff =============== > > > > >>> > > > > > >>> > DummyUIManager>>inform:title: {ui requests} · ct
5/14/2023 21:27
> > > > >>> > + inform: aString title: titleString > > > > >>> > + "Nothing to be done here" > > > > >>> > + self askForProvidedAnswerTo: aString ifSupplied:
[:answer |
> > > > >>> > + ^ answer]. > > > > >>> > > > > > >>> > MVCUIManager>>inform:title: {ui requests} · ct
5/14/2023 21:27
> > > > >>> > + inform: aString title: titleString > > > > >>> > + "Display a message for the user to read and then
dismiss"
> > > > >>> > + self askForProvidedAnswerTo: aString ifSupplied:
[:answer |
> > > > >>> > + ^ answer]. > > > > >>> > + > > > > >>> > + ^ PopUpMenu inform: (self dialogStringFromQuery:
aString withTitle: titleString)
> > > > >>> > > > > > >>> > MorphicUIManager>>inform:title: {ui requests} · ct
5/14/2023 21:26
> > > > >>> > + inform: aString title: titleString > > > > >>> > + "Display a message for the user to read and then
dismiss"
> > > > >>> > + self askForProvidedAnswerTo: aString ifSupplied:
[:answer |
> > > > >>> > + ^ answer]. > > > > >>> > + > > > > >>> > + ^ UserDialogBoxMorph inform: aString title:
titleString
> > > > >>> > > > > > >>> > UIManager>>inform:title: {ui requests} · ct
5/14/2023 21:27
> > > > >>> > + inform: aString title: titleString > > > > >>> > + "Display a message for the user to read and then
dismiss"
> > > > >>> > + ^self subclassResponsibility > > > > >>> > > > > > >>> > ---Sent from [Squeak Inbox Talk](
https://github.com/hpi-swa-lab/squeak-inbox-talk)
> > > > >>> > ["UIManagerInformTitle.1.cs"] > > >
Hi Christoph --
+1 :-)
Best, Marcel Am 17.05.2023 20:39:18 schrieb christoph.thiede@student.hpi.uni-potsdam.de christoph.thiede@student.hpi.uni-potsdam.de: =============== Summary ===============
Change Set: UIManagerInformTitle Date: 17 May 2023 Author: Christoph Thiede
Adds UIManager>>#inform:title:, analogously to existing #confirm:title.
Project uiManager inform: 'Squeak is great!' title: 'Important Note'
=============== Diff ===============
DummyUIManager>>inform:title: {ui requests} · ct 5/14/2023 21:27 + inform: aString title: titleString + "Nothing to be done here" + self askForProvidedAnswerTo: aString ifSupplied: [:answer | + ^ answer].
MVCUIManager>>inform:title: {ui requests} · ct 5/14/2023 21:27 + inform: aString title: titleString + "Display a message for the user to read and then dismiss" + self askForProvidedAnswerTo: aString ifSupplied: [:answer | + ^ answer]. + + ^ PopUpMenu inform: (self dialogStringFromQuery: aString withTitle: titleString)
MorphicUIManager>>inform:title: {ui requests} · ct 5/14/2023 21:26 + inform: aString title: titleString + "Display a message for the user to read and then dismiss" + self askForProvidedAnswerTo: aString ifSupplied: [:answer | + ^ answer]. + + ^ UserDialogBoxMorph inform: aString title: titleString
UIManager>>inform:title: {ui requests} · ct 5/14/2023 21:27 + inform: aString title: titleString + "Display a message for the user to read and then dismiss" + ^self subclassResponsibility
--- Sent from Squeak Inbox Talk [https://github.com/hpi-swa-lab/squeak-inbox-talk] ["UIManagerInformTitle.1.cs"]
Merged via ToolBuilder-Kernel-ct.166/ToolBuilder-MVC-ct.72/ToolBuilder-Morphic-ct.343/CommandLine-ct.24. :-)
Best, Christoph
--- Sent from Squeak Inbox Talk
On 2023-05-22T15:57:37+02:00, marcel.taeumel@hpi.de wrote:
Hi Christoph --
+1 :-)
Best, Marcel Am 17.05.2023 20:39:18 schrieb christoph.thiede(a)student.hpi.uni-potsdam.de <christoph.thiede(a)student.hpi.uni-potsdam.de>: =============== Summary ===============
Change Set: UIManagerInformTitle Date: 17 May 2023 Author: Christoph Thiede
Adds UIManager>>#inform:title:, analogously to existing #confirm:title.
Project uiManager inform: 'Squeak is great!' title: 'Important Note'
=============== Diff ===============
DummyUIManager>>inform:title: {ui requests} · ct 5/14/2023 21:27
- inform: aString title: titleString
- "Nothing to be done here"
- self askForProvidedAnswerTo: aString ifSupplied: [:answer |
- ^ answer].
MVCUIManager>>inform:title: {ui requests} · ct 5/14/2023 21:27
- inform: aString title: titleString
- "Display a message for the user to read and then dismiss"
- self askForProvidedAnswerTo: aString ifSupplied: [:answer |
- ^ answer].
- ^ PopUpMenu inform: (self dialogStringFromQuery: aString withTitle: titleString)
MorphicUIManager>>inform:title: {ui requests} · ct 5/14/2023 21:26
- inform: aString title: titleString
- "Display a message for the user to read and then dismiss"
- self askForProvidedAnswerTo: aString ifSupplied: [:answer |
- ^ answer].
- ^ UserDialogBoxMorph inform: aString title: titleString
UIManager>>inform:title: {ui requests} · ct 5/14/2023 21:27
- inform: aString title: titleString
- "Display a message for the user to read and then dismiss"
- ^self subclassResponsibility
Sent from Squeak Inbox Talk [https://github.com/hpi-swa-lab/squeak-inbox-talk] ["UIManagerInformTitle.1.cs"]
squeak-dev@lists.squeakfoundation.org