Deep into Pharo

(0 reviews)

star01star02star03star04star05

Alexandre Bergel, University of Chile
Damien Cassou, University of Lille 1
Stéphane Ducasse, INRIA Lille
Jannik Laval, University of Lyon

Pub Date: 2013

ISBN 13: 978-3-9523341-6-4

Publisher: Independent

Read This Book

Conditions of Use

Attribution-ShareAlike
CC BY-SA

Reviews

  All reviews are licensed under a CC BY-ND license.

Learn more about reviews.

There are no reviews for this book






Table of Contents

1 Preface 1
 
I Libraries
 
2 Zero Configuration Scripts and Command-Line Handlers 7
2.1 Getting the VM and the Image . . . . . . . . . . . . 7
2.2 Getting the VM only . . . . . . . . . . . . . . . . 9
2.3 Handling command line options . . . . . . . . . . . 9
2.4 Anatomy of a handler . . . . . . . . . . . . . . . 12
2.5 Using ZeroConf script with Jenkins . . . . . . . . . . 13
2.6 Chapter summary. . . . . . . . . . . . . . . . . 14
 
3 Files with FileSystem 15
3.1 Getting started . . . . . . . . . . . . . . . . . . 15
3.2 Navigating a file system . . . . . . . . . . . . . . 16
3.3 Opening read and write Streams . . . . . . . . . . . 19
3.4 Renaming, copying and deleting files and directories . . . . 20
3.5 The main entry point: FileReference . . . . . . . . . . 21
3.6 Looking at FileSystem internals . . . . . . . . . . . . 27
3.7 Chapter summary. . . . . . . . . . . . . . . . . 29
 
4 Sockets 31
4.1 Basic Concepts . . . . . . . . . . . . . . . . . . 31
4.2 TCP Client . . . . . . . . . . . . . . . . . . . 33
4.3 TCP Server . . . . . . . . . . . . . . . . . . . 37
4.4 SocketStream . . . . . . . . . . . . . . . . . . 43
4.5 Tips for Networking Experiments . . . . . . . . . . . 48
4.6 Chapter summary. . . . . . . . . . . . . . . . . 49
 
5 The Settings Framework 51
5.1 Settings architecture . . . . . . . . . . . . . . . . 51
5.2 The Settings Browser. . . . . . . . . . . . . . . . 53
5.3 Declaring a setting . . . . . . . . . . . . . . . . 56
5.4 Organizing your settings . . . . . . . . . . . . . . 61
5.5 Providing more precise value domain . . . . . . . . . 65
5.6 Launching a script . . . . . . . . . . . . . . . . 68
5.7 Start-up actions management . . . . . . . . . . . . 69
5.8 Extending the Settings Browser . . . . . . . . . . . . 71
5.9 Chapter summary. . . . . . . . . . . . . . . . . 75
 
6 Regular Expressions in Pharo 77
6.1 Tutorial example—generating a site map . . . . . . . . 78
6.2 Regex syntax . . . . . . . . . . . . . . . . . . 85
6.3 Regex API . . . . . . . . . . . . . . . . . . . 90
6.4 Implementation notes by Vassili Bykov . . . . . . . . . 96
6.5 Chapter summary. . . . . . . . . . . . . . . . . 97
 
II Source Management
 
7 Versioning Your Code with Monticello 101
7.1 Basic usage . . . . . . . . . . . . . . . . . . . 102
7.2 Exploring Monticello repositories . . . . . . . . . . . 113
7.3 Advanced topics . . . . . . . . . . . . . . . . . 115
7.4 Getting a change set from two versions . . . . . . . . . 120
7.5 Kinds of repositories . . . . . . . . . . . . . . . . 121
7.6 The .mcz file format . . . . . . . . . . . . . . . . 124
7.7 Chapter summary. . . . . . . . . . . . . . . . . 126
 
8 Gofer: Scripting Package Loading 129
8.1 Preamble: Package management system. . . . . . . . . 129
8.2 What is Gofer? . . . . . . . . . . . . . . . . . . 132
8.3 Using Gofer . . . . . . . . . . . . . . . . . . . 133
8.4 Gofer actions . . . . . . . . . . . . . . . . . . 135
8.5 Some useful scripts . . . . . . . . . . . . . . . . 141
8.6 Chapter summary. . . . . . . . . . . . . . . . . 144
 
9 Managing Projects with Metacello 147
9.1 Introduction . . . . . . . . . . . . . . . . . . . 147
9.2 One tool for each job . . . . . . . . . . . . . . . . 148
9.3 Metacello features. . . . . . . . . . . . . . . . . 149
9.4 A simple case study . . . . . . . . . . . . . . . . 151
9.5 Loading a Metacello Configuration . . . . . . . . . . 154
9.6 Managing dependencies between packages . . . . . . . 155
9.7 Baselines . . . . . . . . . . . . . . . . . . . . 157
9.8 Groups. . . . . . . . . . . . . . . . . . . . . 160
9.9 Dependencies between projects . . . . . . . . . . . . 163
9.10 About dependency granularity . . . . . . . . . . . . 169
9.11 Executing code before and after installation . . . . . . . 171
9.12 Platform specific package . . . . . . . . . . . . . . 172
9.13 Milestoning development: symbolic versions . . . . . . . 176
9.14 Load types . . . . . . . . . . . . . . . . . . . 181
9.15 Conditional loading . . . . . . . . . . . . . . . . 183
9.16 Project version attributes . . . . . . . . . . . . . . 185
9.17 Chapter summary. . . . . . . . . . . . . . . . . 186
 
III Frameworks
 
10 Glamour 191
10.1 Installation and first browser . . . . . . . . . . . . . 191
10.2 Presentation, Transmission and Ports . . . . . . . . . . 194
10.3 Composing and Interaction . . . . . . . . . . . . . 200
10.4 Chapter summary. . . . . . . . . . . . . . . . . 207
 
11 Agile Visualization with Roassal 209
11.1 Installation and first visualization . . . . . . . . . . . 209
11.2 Roassal core model . . . . . . . . . . . . . . . . 212
11.3 Detailing shapes . . . . . . . . . . . . . . . . . 218
11.4 Edges: linking elements . . . . . . . . . . . . . . 221
11.5 Layouts . . . . . . . . . . . . . . . . . . . . 224
11.6 Events and Callbacks . . . . . . . . . . . . . . . 230
11.7 The interaction hierarchy . . . . . . . . . . . . . . 231
11.8 Understanding a View’s Camera . . . . . . . . . . . 234
11.9 Beyond Pharo . . . . . . . . . . . . . . . . . . 238
11.10 Chapter summary. . . . . . . . . . . . . . . . . 239
 
12 Scripting Visualizations with Mondrian 241
12.1 Installation and first visualization . . . . . . . . . . . 241
12.2 Starting with Mondrian. . . . . . . . . . . . . . . 242
12.3 Visualizing the Collection framework . . . . . . . . . 247
12.4 Reshaping nodes . . . . . . . . . . . . . . . . . 248
12.5 Multiple edges . . . . . . . . . . . . . . . . . . 249
12.6 Colored shapes . . . . . . . . . . . . . . . . . . 251
12.7 More on colors . . . . . . . . . . . . . . . . . . 252
12.8 Popup view . . . . . . . . . . . . . . . . . . . 253
12.9 Subviews . . . . . . . . . . . . . . . . . . . . 255
12.10 Forwarding events . . . . . . . . . . . . . . . . 256
12.11 Events . . . . . . . . . . . . . . . . . . . . . 257
12.12 Interaction . . . . . . . . . . . . . . . . . . . 257
12.13 Chapter summary. . . . . . . . . . . . . . . . . 259
 
IV Language
13 Handling Exceptions 263
13.1 Introduction . . . . . . . . . . . . . . . . . . . 263
13.2 Ensuring execution . . . . . . . . . . . . . . . . 264
13.

About the Book

Pharo is a clean, innovative, open-source, live-programming environment.

Deep into Pharo is the second volume of a series of books covering Pharo. Whereas the first volume is intended for newcomers, this second volume covers deeper topics.You will learn about Pharo frameworks and libraries such as Glamour, PetitParser, Roassal, FileSystem, Regex, and Socket.

You will explore the language with chapters on exceptions, blocks, small integers, and floats.

You will discover tools such as profilers, Metacello and Gofer.

About the Contributors

Author(s)

Alexandre Bergel, assistant professor at the University of Chile, member of the Pleiad research laboratory.

Damien Cassou, associate professor (maître de conférences) at the University of Lille 1, France, and a member of the RMod research group (Inria, LIFL),

Stéphane Ducasse is the research director at INRIA Lille leading the RMoD Team. 

Jannik Laval, assistant professor position at University of Lyon in software engineering for information systems. Develops software tools to help engineers to maintain software applications; research is applied to Object-Oriented Software Architecture for Information Systems.