StartupLoader default executeAtomicItems: { StartupAction name: 'EpiceaStudy' code: [ | button total shouldLoad | "If it isn't already installed and if it's Pharo 3" ((Smalltalk globals includesKey: #EpMonitor) not and: [ Smalltalk version = 'Pharo3.0' ]) ifTrue: [ "Give a change to cancel load..." total := 3. shouldLoad := true. button := ButtonModel new. (button label: 'Cancel'; extent: 500@100; action: [ shouldLoad := false. button window close ]; openWithSpec) centered. 0 to: total do: [ :n | [ button window title: 'Epicea: Load starting in ', ((total - n) asString, ' seconds') ] valueAfterWaiting: n seconds ]. [ button window isClosed ifFalse: [ button window close ]. "Finally, start load." shouldLoad ifTrue: [ | loadingTime | self inform: 'Epicea: Starting load'. loadingTime := [ [ Gofer it smalltalkhubUser: 'MartinDias' project: 'Epicea'; configuration; loadStable ] asJob title: 'Epicea: Loading'; run. ] timeToRun. self inform: 'Epicea: Load finished (', loadingTime asSeconds asString, ' seconds)'. self inform: 'Epicea: Recording'. ] ] valueAfterWaiting: total seconds ] ] runOnce: true. }.