[etoys-dev] Etoys Inbox: Skeleton-Richo.1.mcz

Bert Freudenberg bert at freudenbergs.de
Mon Oct 17 07:03:49 EDT 2011


On 14.10.2011, at 22:52, commits at source.squeak.org wrote:

> Spam detection software, running on the system "europa.mgmt.inetu.net", has
> identified this incoming email as possible spam.  

Err, sometimes spam detectors are stupid ;)

Something is suspicious though. E.g., I think we can remove this:


> ----- Method: SkeletonBaseInfo class>>addPseudoMethodForBabel (in category 'class initialization') -----
> addPseudoMethodForBabel
> 	"This method supports both 3.6 and 3.7"
> 	"self addPseudoMethodForBabel"
> 	| addMethodBlock |
> 	addMethodBlock _ [:class | class compileInobtrusively:
> 'translated
> 	^ self'
> 	classified: 'forward compatibility'].
> 	['Can you translate?' translated]
> 		on: MessageNotUnderstood
> 		do: [:ex | addMethodBlock
> 				value: (Smalltalk
> 						at: #AbstractString
> 						ifAbsent: [^ addMethodBlock value: String])]!


And do we really want to add all those sounds? They will make the sound drop-down longer.


> ----- Method: SkeletonBaseInfo class>>arrow (in category 'sound library') -----
> arrow
> SampledSound
> 	addLibrarySoundNamed: 'arrow'
> 	samples: (self mimeStringToBuffer:
> '/WD9a/0g/N78nvx0/Kv9Rv39/qz/gACQAYsCGAIjAfIB9AJeAxgD2AREBGsElgTABOoFHAU9
> BU4FPwTpBIMEOwP+A+gEGQRSBDQDrQMcAr4CWwHeAXIBKwEjAUgBRwEFAKQASwAF/6P/C/50

...

> ----- Method: SkeletonBaseInfo class>>cassete (in category 'sound library') -----
> cassete
> SampledSound
> 	addLibrarySoundNamed: 'cassete'
> 	samples: (self mimeStringToBuffer:
> 'AQD/AP4A/wD+AAAAAAD+AP8AAAD/AP0AAAAAAP8AAAABAAIA/AD/AP0A/wAAAAEA/QADAAAA
> AAD+AP8AAQACAP8A/wD+AP8AAgD9AAQA/AD/AP8AAAACAP0AAAD6AAgACgD4APkA9gAGABIA
...
> ----- Method: SkeletonBaseInfo class>>cork (in category 'sound library') -----
> cork
> SampledSound
> 	addLibrarySoundNamed: 'cork'
> 	samples: (self mimeStringToBuffer:
> 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
> AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
...

> ----- Method: SkeletonBaseInfo class>>mochi (in category 'sound library') -----
> mochi
> SampledSound
> 	addLibrarySoundNamed: 'mochi'
> 	samples: (self mimeStringToBuffer:
> '8gDsAOIA3gDvAC4AUQBDAA8AAAAxACsAHQAtABIA4wDEAMEA6gDbAPYAOQAqAAwAEADzALkA
> xAAGAOgAzgABADAAMwAgADEAGQAEAAQAxgDgAPQA7QDUAN4A+gDtAPQABwD9ANoAxQDNANoA
...
> ----- Method: SkeletonBaseInfo class>>rice (in category 'sound library') -----
> rice
> SampledSound
> 	addLibrarySoundNamed: 'rice'
> 	samples: (self mimeStringToBuffer:
> 'CgAGAPQADAAAAAgA/gAIAPoABAAEAO4AAAAAAPoA9AAGAAIA+gAIAPIACgD6AAoA+gACAA4A
...
> ----- Method: SkeletonBaseInfo class>>unstick (in category 'sound library') -----
> unstick
> SampledSound
> 	addLibrarySoundNamed: 'unstick'
> 	samples: (self mimeStringToBuffer:
> 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
...


How about this?

> PackageInfo subclass: #SkeletonInfo
> 	instanceVariableNames: ''
> 	classVariableNames: ''
> 	poolDictionaries: ''
> 	category: 'Skeleton-Base'!
> 
> !SkeletonInfo commentStamp: 'tak 3/30/2004 21:40' prior: 0!
> I am a full Skeleton package information.!
> 
> ----- Method: SkeletonInfo>>packageName (in category 'naming') -----
> packageName
> 	^ 'Skeleton'!

And there are some method flagged TODO.

> ----- Method: Point>>direction2:distance: (in category '*skeleton-base-sheet') -----
> direction2: freePoint distance: distance 
> 	"Ask Point by extention of self - freePoint with distance.  
> 	(100 at 100 direction: 400 at 100 distance: 100) =  
> 	(200 at 100)"
> 	"IT SHOULD BE REMOVED!!!!!! use #direction:distance:"
> 	self flag: #TODO.
> 	^ self = freePoint
> 		ifTrue: [self]
> 		ifFalse: [self + (freePoint - self * distance / (freePoint - self) r)]!


This here uses fork without synchronizing with the Morphic UI process:

> ----- Method: Morph>>showPointArrowFrom:to:label: (in category '*skeleton-base-arrow') -----
> showPointArrowFrom: morph1 to: morph2 label: aString 
> 	"Morph new showPointArrowFrom: (Morph new position: 0 at 0) to: (Morph  
> 	new position: 200 at 200) label: 'test'"
> 	| p1 p2 arrow label connector |
> 	p1 := morph1 center.
> 	p2 := morph2 center.
> 	arrow := PolygonMorph arrowPrototype.
> 	arrow
> 		borderColor: (TranslucentColor
> 				r: 1.0
> 				g: 0.3
> 				b: 0.0
> 				alpha: 0.6).
> 	arrow
> 		setVertices: (Array with: p1 with: p2).
> 	arrow dashedBorder: {30. 30. Color transparent. 0. -10};
> 		 startStepping.
> 	(Smalltalk
> 		at: #NCConnectorMorph
> 		ifAbsent: [])
> 		ifNotNil: [connector := NCConnectorMorph fromMorph: morph1 toMorph: morph2.
> 			connector line: arrow.
> 			connector lock.
> 			label := NCLabelMorph new string: aString.
> 			label input: morph1.
> 			label color: Color red.
> 			label openInWorld.
> 			arrow := connector].
> 	[arrow openInWorld.
> 	(Delay forMilliseconds: 500) wait.
> 	arrow delete.
> 	label
> 		ifNotNilDo: [:obj | obj delete]] fork!

It should be at least something like

	arrow openInWorld.
	[
		(Delay forMilliseconds: 500) wait.
		WorldState addDeferredUIMessage: [
			arrow delete.
			label ifNotNilDo: [:obj | obj delete]].
	] fork

Or even better schedule an alarm instead of forking, e.g.

	arrow openInWorld.
	arrow addAlarm: #delete after: 500.
	label ifNotNil: [label addAlarm: #delete after: 500.

- Bert -

-------------- n?chster Teil --------------
Ein Dateianhang mit HTML-Daten wurde abgetrennt...
URL: <http://lists.squeakland.org/pipermail/etoys-dev/attachments/20111017/83e605d6/attachment-0001.html>


More information about the etoys-dev mailing list