Deep into Pharo

by Alexandre Bergel, Damien Cassou, Stéphane Ducasse, Jannik Laval

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.

Description from LibreTexts.

Subjects
Engineering, Computer Science
Licence
CC BY-SA 3.0, as LibreTexts states it
Who can read
Tweens profiles and older, judged from its title and subjects

Contents

LibreTexts writes equations in TeX, and here they show as TeX; the PDF has them typeset.

  1. Front Matter
  2. TitlePage
  3. InfoPage
  4. Preface
  5. Table of Contents
  6. Acknowledgments
  7. Licensing
  8. About the Authors
  9. 1: Zero Configuration Scripts and Command-Line Handlers
  10. 1.1: Getting the VM and the Image
  11. 1.2: Getting the VM Only
  12. 1.3: Handling Command Line Options
  13. 1.4: Anatomy of a Handler
  14. 1.5: Using ZeroConf Script with Jenkins
  15. 1.6: Chapter Summary
  16. 2: Files with FileSystem
  17. 2.1: Getting Started
  18. 2.2: Navigating a File System
  19. 2.3: Opening Read and Write Streams
  20. 2.4: Renaming, Copying and Deleting Files and Directories
  21. 2.5: The Main Entry Point - FileReference
  22. 2.6: Looking at FileSystem Internals
  23. 2.7: Chapter Summary
  24. 3: Sockets
  25. 3.1: Basic Concepts
  26. 3.2: TCP Client
  27. 3.3: TCP Server
  28. 3.4: SocketStream
  29. 3.5: Tips for Networking Experiments
  30. 3.6: Chapter Summary
  31. 4: The Settings Framework
  32. 4.1: Settings Architecture
  33. 4.2: The Settings Browser
  34. 4.3: Declaring a Setting
  35. 4.4: Organizing Your Settings
  36. 4.5: Providing More Precise Value Domain
  37. 4.6: Launching a Script
  38. 4.7: Start-Up Actions Management
  39. 4.8: Extending the Settings Browser
  40. 4.9: Chapter Summary
  41. 5: Regular Expressions in Pharo
  42. 5.1: Regular Expressions in Pharo
  43. 5.2: Tutorial Example - Generating a Site Map
  44. 5.3: Regex Syntax
  45. 5.4: Regex API
  46. 5.5: Implementation Notes by Vassili Bykov
  47. 5.6: Chapter Summary
  48. 6: Versioning Your Code with Monticello
  49. 6.1: Versioning Your Code with Monticello
  50. 6.2: Basic Usage
  51. 6.3: Exploring Monticello Repositories
  52. 6.4: Advanced Topics
  53. 6.5: Getting a Change Set from Two Versions
  54. 6.6: Kinds of Repositories
  55. 6.7: The .mcz File Format
  56. 6.8: Chapter Summary
  57. 7: Gofer — Scripting Package Loading
  58. 7.1: Preamble - Package Management System
  59. 7.2: What is Gofer?
  60. 7.3: Using Gofer
  61. 7.4: Gofer Actions
  62. 7.5: Some Useful Scripts
  63. 7.6: Chapter Summary
  64. 8: Managing Projects with Metacello
  65. 8.1: Introduction
  66. 8.2: One Tool for Each Job
  67. 8.3: Metacello Features
  68. 8.4: A Simple Case Study
  69. 8.5: Loading a Metacello Configuration
  70. 8.6: Managing Dependencies Between Packages
  71. 8.7: Baselines
  72. 8.8: Groups
  73. 8.9: Dependencies Between Projects
  74. 8.10: About Dependency Granularity
  75. 8.11: Executing Code Before and After Installation
  76. 8.12: Platform Specific Package
  77. 8.13: Milestoning Development- Symbolic Versions
  78. 8.14: Load Types
  79. 8.15: Conditional Loading
  80. 8.16: Project Version Attributes
  81. 8.17: Chapter Summary
  82. 9: Glamour
  83. 9.1: Installation and First Browser
  84. 9.2: Presentation, Transmission and Ports
  85. 9.3: Composing and Interaction
  86. 9.4: Chapter Summary
  87. 10: Agile Visualization with Roassal
  88. 10.1: Installation and First Visualization
  89. 10.2: Roassal Core Model
  90. 10.3: Detailing Shapes
  91. 10.4: Edges - Linking Elements
  92. 10.5: Layouts
  93. 10.6: Events and Callbacks
  94. 10.7: The Interaction Hierarchy
  95. 10.8: Understanding a View’s Camera
  96. 10.9: Beyond Pharo
  97. 10.10: Chapter Summary
  98. 11: Scripting Visualizations with Mondrian
  99. 11.1: Installation and First Visualization
  100. 11.2: Starting with Mondrian
  101. 11.3: Visualizing the Collection Framework
  102. 11.4: Reshaping Nodes
  103. 11.5: Multiple Edges
  104. 11.6: Colored Shapes
  105. 11.7: More on Colors
  106. 11.8: Popup View
  107. 11.9: Subviews
  108. 11.10: Forwarding Events
  109. 11.11: Events
  110. 11.12: Interaction
  111. 11.13: Chapter Summary
  112. 12: Handling Exceptions
  113. 12.1: Introduction
  114. 12.2: Ensuring Execution
  115. 12.3: Handling Non-Local Returns
  116. 12.4: Exception Handlers
  117. 12.5: Error Codes — Don't Do This!
  118. 12.6: Specifying Which Exceptions Will Be Handled
  119. 12.7: Signaling an Exception
  120. 12.8: Finding Handlers
  121. 12.9: Handling Exceptions
  122. 12.10: Comparing outer With pass
  123. 12.11: Exceptions and ensure, ifCurtailed Interaction
  124. 12.12: Example — Deprecation
  125. 12.13: Example — Halt Implementation
  126. 12.14: Specific Exceptions
  127. 12.15: When Not to Use Exceptions
  128. 12.16: Exceptions Implementation
  129. 12.17: Ensure's Implementation
  130. 12.18: Chapter Summary
  131. 13: Blocks — A Detailed Analysis
  132. 13.1: Basics
  133. 13.2: Variables and Blocks
  134. 13.3: Variables Can Outlive Their Defining Method
  135. 13.4: Returning from Inside a Block
  136. 13.5: Contexts — Representing Method Execution
  137. 13.6: Message Execution
  138. 13.7: Chapter Conclusion
  139. 14: Exploring Little Numbers
  140. 14.1: Power of 2 and Numbers
  141. 14.2: Bit Shifting Is Multiplying by 2 Powers
  142. 14.3: Bit Manipulation and Access
  143. 14.4: Ten’s Complement of a Number
  144. 14.5: Negative Numbers
  145. 14.6: Two’s Complement of a Number
  146. 14.7: SmallIntegers in Pharo
  147. 14.8: Hexadecimal
  148. 14.9: Chapter Summary
  149. 15: Fun with Floats
  150. 15.1: Never Test Equality on Floats
  151. 15.2: Dissecting a Float
  152. 15.3: With Floats, Printing Is Inexact
  153. 15.4: Float Rounding Is Also Inexact
  154. 15.5: Fun with Inexact Representations
  155. 15.6: Chapter Summary
  156. 16: Profiling Applications
  157. 16.1: What Does Profiling Mean?
  158. 16.2: A Simple Example
  159. 16.3: Code Profiling in Pharo
  160. 16.4: Read and Interpret the Results
  161. 16.5: Illustrative Analysis
  162. 16.6: Counting Messages
  163. 16.7: Memorized Fibonacci
  164. 16.8: SpaceTally for Memory Consumption per Class
  165. 16.9: Few Advices
  166. 16.10: How MessageTally is Implemented?
  167. 16.11: Chapter Summary
  168. 17: PetitParser — Building Modular Parsers
  169. 17.1: Writing Parsers with PetitParser
  170. 17.2: Composite Grammars with PetitParser
  171. 17.3: Testing a Grammar
  172. 17.4: Case Study — A JSON Parser
  173. 17.5: PetitParser Browser
  174. 17.6: Packrat Parsers
  175. 17.7: Chapter Summary
  176. Back Matter
  177. Index
  178. Biographies
  179. Glossary
  180. Detailed Licensing