This is a really nice solution for STON, thank you! But in general terms, imagine I have some task and it’s not the trivial to add a progress bar. I could spawn a string morph and make circle the digits with some interval, but maybe there is something easier. For example Kommiter had a spinner morph that you could just open and it would be spinning. So when you run a task you can easily see that the task is still running
Uko > On 5 Feb 2017, at 20:01, Sven Van Caekenberghe <[email protected]> wrote: > > A bit off topic, but I would do the STON writing as follows: > > [ > (FileLocator temp / 'file.ston') writeStreamDo: [ :out | > (STON writer on: out) in: [ :stonWriter | > 30 timesRepeat: [ > stonWriter nextPut: Smalltalk allClasses ] ] ]. > ] timeToRun. "0:00:00:02.176" > > But in light of alternative streams and some optimisation, this works too: > > [ > | file | > file := (File named: '/tmp/file.ston') openForWrite. > [ > ZnBufferedWriteStream on: (ZnCharacterWriteStream on: file) do: [ :out | > (STON writer on: out) in: [ :stonWriter | > 30 timesRepeat: [ > stonWriter nextPut: Smalltalk allClasses ] ] ] > ] ensure: [ file close ]. > ] timeToRun. "0:00:00:00.385" > > Which is faster. > > Total file size is ~1.2MB. > > BTW, we need #readStreamDo: and #writeStreamDo: on File I think, as it > encourages proper resource management. > >> On 5 Feb 2017, at 19:16, Henrik Nergaard <[email protected]> wrote: >> >> http://smalltalkhub.com/#!/~Latsabben/GafletFremgangFremviser >> >> --------------------- >> | ston file| >> >> ston := (1 to: 30) flatCollect: [:ix |STON toStringPretty: Smalltalk >> allClasses]. >> file := (FileStream fileNamed: 'file.ston'). >> >> ston whileDisplayingProgress >> action: [ :stream | file nextPutAll: stream ] whenDone: [ file close ]; >> open; >> fillOwner >> --------------------- >> >> Best regards, >> Henrik >> >> -----Opprinnelig melding----- >> Fra: Pharo-dev [mailto:[email protected]] På vegne av Yuriy >> Tymchuk >> Sendt: 05 February 2017 16:56 >> Til: Pharo Development List <[email protected]> >> Emne: [Pharo-dev] How can I create a trivial "spinner" etc, to see if image >> is busy? >> >> Hi all, >> >> is there an easy was to do some thing that is constantly changing? so if my >> image freezes (to export a 1gb ston file for example) I can see when it’s >> done. Or maybe there is a way to send a mac notification from Pharo? >> >> Cheers. >> Uko > >
