Chris Cunningham uploaded a new version of Morphic to project The Trunk:
http://source.squeak.org/trunk/Morphic-cbc.1452.mcz
==================== Summary ====================
Name: Morphic-cbc.1452
Author: cbc
Time: 13 June 2018, 7:45:19.342537 pm
UUID: 16e46d7e-75d2-9047-a872-6f069d65920f
Ancestors: Morphic-cbc.1451
Recategorized #referencePositionInWorld (and setter) to be with related methods.
Fixed #adjustAfter: to once again allow halo rotation of morphs to actually rotate around the rotationCenter (instead of center of the morph).
=============== Diff against Morphic-cbc.1451 ===============
Item was added:
+ ----- Method: Morph>>referencePositionInWorld (in category 'rotate scale and flex') -----
+ referencePositionInWorld
+
+ ^ self pointInWorld: self referencePosition
+ !
Item was added:
+ ----- Method: Morph>>referencePositionInWorld: (in category 'rotate scale and flex') -----
+ referencePositionInWorld: aPoint
+ | localPosition |
+ localPosition := owner
+ ifNil: [aPoint]
+ ifNotNil: [(owner transformFrom: self world) globalPointToLocal: aPoint].
+
+ self referencePosition: localPosition
+ !
Item was changed:
----- Method: TransformationMorph>>adjustAfter: (in category 'private') -----
adjustAfter: changeBlock
"Cause this morph to remain cetered where it was before, and
choose appropriate smoothing, after a change of scale or rotation."
| oldRefPos |
oldRefPos := self referencePosition.
changeBlock value.
self chooseSmoothing.
+ self penUpWhile: [self position: self position + (oldRefPos - self referencePosition)].
- self actorStateOrNil ifNotNil:[
- self penUpWhile: [self position: self position + (oldRefPos - self referencePosition)].
- ].
self layoutChanged.
owner ifNotNil: [owner invalidRect: bounds]
!
Not seen this before; it caught my eye on G+ for reasons Eliot will immediately notice :-)
Looks like a very basic implementation but interesting.
https://store.smalltalk.express
and plain 'smalltalk.express' gets an in-browser demo
tim
--
tim Rowledge; tim(a)rowledge.org; http://www.rowledge.org/tim
The hardness of the butter is proportional to the softness of the bread.
========================================================================
Call for Papers
3rd Workshop on Meta-Programming Techniques and Reflection (Meta’18)
Co-located with SPLASH 2018
November 6, 2018, Boston, USA
https://2018.splashcon.org/track/meta-2018
Follow us on twitter @MetaAtSPLASH
========================================================================
The Meta’18 workshop aims to bring together researchers working on
metaprogramming and reflection, as well as users building
applications, language extensions, or software tools using them.
The changing hardware and software landscape, and the increased
heterogeneity of systems make metaprogramming once more an important
research topic to handle the associate complexity.
The challenges which metaprogramming faces are manifold. They start
with typing of reflective programs, continue with performance and
tooling, and reach into the empirical field to understand how
metaprogramming is used and how it affects software maintainability.
While industry accepted metaprogramming on a wide scale with Ruby,
Scala, JavaScript and others, academia still needs to bring it to
the same level of convenience, tooling, and understanding as for
direct programming styles.
Contributions to the workshop are welcome on a wide range of topics
related to the design, implementation, and application of
metaprogramming techniques, as well as empirical studies on typing
models for such systems and languages.
### Topics of Interest
The workshop is a venue for all approaches that embrace
metaprogramming, from static to dynamic techniques:
- reflection, meta-level architectures, staging,
open language runtimes applications to middleware,
frameworks, and DSLs
- optimization techniques
- contract systems, or typing of reflective programs
- reflection and metaobject protocols to enable tooling
- case studies and evaluation of such techniques, e.g.,
to build applications, language extensions, or tools
- empirical evaluation of metaprogramming solutions
- security in reflective systems and capability-based designs
- meta-level architectures and reflective middleware for
modern runtime platforms (e.g. IoT, cyber-physical systems,
mobile/cloud/grid computing, etc)
- surveys, conceptualization, and taxonomization of existing approaches
In short, we invite contributions to the workshop on a wide range of
topics related to design, implementation, and application of
reflective APIs and meta-programming techniques, as well as
empirical studies and typing for such systems and languages.
### Workshop Format and Submissions
This workshop welcomes the presentation of new ideas and emerging
problems as well as mature work as part of a mini-conference format.
Furthermore, we plan interactive brainstorming and demonstration
sessions between the formal presentations to enable an active
exchange of ideas.
Papers submitted by the first deadline will be considered for
publication in the ACM DL, if not requested otherwise by the authors.
Thus, they will be part of SPLASH workshop proceedings.
For all papers, use of the SIGPLAN acmart style is mandatory:
http://www.sigplan.org/Resources/Author/.
Please use the provided double-column templates for Latex or Word.
technical paper: max. 8 pages, excluding references
position and work-in-progress paper: 1-4 pages, excluding references
technology demos or a posters: 1-page abstract
Demos, posters, position and work-in-progress papers can be submitted
on a second, later deadline to discuss the latest results and current
work, but will not be considered for publication in the ACM DL.
For the submission, please use the submission system at:
https://meta18.hotcrp.com/
### Important Dates
7 Aug 2018 - Abstract Submission
17 Aug 2018 - Paper Submission (considered for ACM DL)
14 Sep 2018 - Notification
7 Sep 2018 - Demo, position or work-in-progress paper submission
30 Sep 2018 - Demo, position or work-in-progress paper notification
6 Nov 2018 - Workshop
### Organizing Committee
Guido Chari, Czech Technical University
Elisa Gonzalez Boix, Vrije Universiteit Brussel
Stefan Marr, University of Kent
### Program Committee
Anya Helene Bagge, University of Bergen, Norway
Camilo Bruni, Google, Germany
Walter Cazzola, Università degli Studi di Milano, Italy
Pascal Costanza, imec
Marcus Denker, INRIA, Lille
Matthew Flatt, University of Utah, United States
Diego Garbervetsky, University of Buenos Aires, Argentina
Eduardo Guerra, INPE, National Institute for Space Research
Pablo Inostroza, CWI, Netherlands
Hidehiko Masuhara, Tokyo Institute of Technology ,Japan
Tom Van Cutsem, Nokia Bell Labs, Belgium
Levente Uzonyi uploaded a new version of MorphicExtras to project The Trunk:
http://source.squeak.org/trunk/MorphicExtras-ul.240.mcz
==================== Summary ====================
Name: MorphicExtras-ul.240
Author: ul
Time: 13 June 2018, 1:27:39.374351 pm
UUID: 1f754fe4-0f18-4d99-aeb5-01f6a3c095f9
Ancestors: MorphicExtras-pre.239
- set AuthorName during EPSCanvasTest to avoid nagging users about it
=============== Diff against MorphicExtras-pre.239 ===============
Item was added:
+ ----- Method: EPSCanvasTest>>performTest (in category 'private') -----
+ performTest
+
+ Utilities
+ useAuthorName: self className
+ during: [ super performTest ]!
Levente Uzonyi uploaded a new version of System to project The Trunk:
http://source.squeak.org/trunk/System-ul.1034.mcz
==================== Summary ====================
Name: System-ul.1034
Author: ul
Time: 13 June 2018, 1:24:43.197886 pm
UUID: b5a05a72-7c75-4bdb-95bc-b7d1b31eb83b
Ancestors: System-nice.1033
- added Utilities class >> #useAuthorName:during:, which works just like #useAuthorInitials:during: but with AuthorName instead of AuthorInitials
=============== Diff against System-nice.1033 ===============
Item was added:
+ ----- Method: Utilities class>>useAuthorName:during: (in category 'identification') -----
+ useAuthorName: temporaryAuthorName during: aBlock
+
+ | originalAuthorName |
+ originalAuthorName := AuthorName.
+ [
+ AuthorName := temporaryAuthorName.
+ aBlock value ]
+ ensure: [ AuthorName := originalAuthorName ]
+ !
A new version of EToys was added to project The Inbox:
http://source.squeak.org/inbox/EToys-hjh.333.mcz
==================== Summary ====================
Name: EToys-hjh.333
Author: hjh
Time: 11 June 2018, 7:47:07.644259 am
UUID: 1872ec0f-374c-4d8a-a701-f118fb19ae40
Ancestors: EToys-nice.332
Move methods
Morph rotationCenter and rotationCenter:
from 'Etoys-geometry' to 'geometry'
=============== Diff against EToys-nice.332 ===============
Item was removed:
- ----- Method: Morph>>rotationCenter (in category '*Etoys-geometry') -----
- rotationCenter
- "Return the rotation center of the receiver. The rotation center defines the relative offset inside the receiver's bounds for locating the reference position."
- ^self valueOfProperty: #rotationCenter ifAbsent:[0.5@0.5]
- !
Item was removed:
- ----- Method: Morph>>rotationCenter: (in category '*Etoys-geometry') -----
- rotationCenter: aPointOrNil
- "Set the new rotation center of the receiver. The rotation center defines the relative offset inside the receiver's bounds for locating the reference position."
- aPointOrNil isNil
- ifTrue:[self removeProperty: #rotationCenter]
- ifFalse:[self setProperty: #rotationCenter toValue: aPointOrNil]
- !
Chris Cunningham uploaded a new version of Morphic to project The Trunk:
http://source.squeak.org/trunk/Morphic-cbc.1451.mcz
==================== Summary ====================
Name: Morphic-cbc.1451
Author: cbc
Time: 12 June 2018, 10:20:33.204594 pm
UUID: eeba2c6d-1d3b-8c4f-9798-2d5f590eb318
Ancestors: Morphic-cbc.1450
Fix so that Projects>Jump To Project submenu is readable in dark color themes (by commenting out setting of the color - default works much better).
=============== Diff against Morphic-cbc.1450 ===============
Item was changed:
----- Method: MorphicProject>>addItem:toMenu:selection:color:thumbnail: (in category 'utilities') -----
addItem: item toMenu: menu selection: action color: aColor thumbnail: aForm
"Add menu item representing the sender to a menu"
+ "Removed setting the color - it wasn't working well with dark color themes."
menu
add: item
selector: #jumpToSelection:
argument: action.
- menu lastItem color: aColor.
aForm isNil
ifFalse: [menu lastItem
icon: (aForm
scaledIntoFormOfSize: (Preferences tinyDisplay
ifTrue: [16]
ifFalse: [28]))]!