Deep Into Pharo

Deep Into Pharo

By Alexandre Bergel, Damien Cassou, Stéphane Ducasse, Jannik Laval
Book Description

"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."--Open Textbook Library.

Table of Contents
  • Preface
  • Libraries
    • Zero Configuration Scripts and Command-Line Handlers
      • Getting the VM and the Image
      • Getting the VM only
      • Handling command line options
      • Anatomy of a handler
      • Using ZeroConf script with Jenkins
      • Chapter summary
    • Files with FileSystem
      • Getting started
      • Navigating a file system
      • Opening read and write Streams
      • Renaming, copying and deleting files and directories
      • The main entry point: FileReference
      • Looking at FileSystem internals
      • Chapter summary
    • Sockets
      • Basic Concepts
      • TCP Client
      • TCP Server
      • SocketStream
      • Tips for Networking Experiments
      • Chapter summary
    • The Settings Framework
      • Settings architecture
      • The Settings Browser
      • Declaring a setting
      • Organizing your settings
      • Providing more precise value domain
      • Launching a script
      • Start-up actions management
      • Extending the Settings Browser
      • Chapter summary
    • Regular Expressions in Pharo
      • Tutorial example—generating a site map
      • Regex syntax
      • Regex API
      • Implementation notes by Vassili Bykov
      • Chapter summary
  • Source Management
    • Versioning Your Code with Monticello
      • Basic usage
      • Exploring Monticello repositories
      • Advanced topics
      • Getting a change set from two versions
      • Kinds of repositories
      • The .mcz file format
      • Chapter summary
    • Gofer: Scripting Package Loading
      • Preamble: Package management system
      • What is Gofer?
      • Using Gofer
      • Gofer actions
      • Some useful scripts
      • Chapter summary
    • Managing Projects with Metacello
      • Introduction
      • One tool for each job
      • Metacello features
      • A simple case study
      • Loading a Metacello Configuration
      • Managing dependencies between packages
      • Baselines
      • Groups
      • Dependencies between projects
      • About dependency granularity
      • Executing code before and after installation
      • Platform specific package
      • Milestoning development: symbolic versions
      • Load types
      • Conditional loading
      • Project version attributes
      • Chapter summary
  • Frameworks
    • Glamour
      • Installation and first browser
      • Presentation, Transmission and Ports
      • Composing and Interaction
      • Chapter summary
    • Agile Visualization with Roassal
      • Installation and first visualization
      • Roassal core model
      • Detailing shapes
      • Edges: linking elements
      • Layouts
      • Events and Callbacks
      • The interaction hierarchy
      • Understanding a View's Camera
      • Beyond Pharo
      • Chapter summary
    • Scripting Visualizations with Mondrian
      • Installation and first visualization
      • Starting with Mondrian
      • Visualizing the Collection framework
      • Reshaping nodes
      • Multiple edges
      • Colored shapes
      • More on colors
      • Popup view
      • Subviews
      • Forwarding events
      • Events
      • Interaction
      • Chapter summary
  • Language
    • Handling Exceptions
      • Introduction
      • Ensuring execution
      • Handling non-local returns
      • Exception handlers
      • Error codes — don't do this!
      • Specifying which exceptions will be handled
      • Signaling an exception
      • Finding handlers
      • Handling exceptions
      • Comparing outer with pass
      • Exceptions and [mathescape=false,backgroundcolor=white,basicstyle=]ensure:/ifCurtailed: interaction
      • Example: Deprecation
      • Example: Halt implementation
      • Specific exceptions
      • When not to use exceptions
      • Exceptions implementation
      • Ensure:'s implementation
      • Chapter summary
    • Blocks: a Detailed Analysis
      • Basics
      • Variables and blocks
      • Variables can outlive their defining method
      • Returning from inside a block
      • Contexts: representing method execution
      • Message execution
      • Chapter conclusion
    • Exploring Little Numbers
      • Power of 2 and Numbers
      • Bit shifting is multiplying by 2 powers
      • Bit manipulation and access
      • Ten's complement of a number
      • Negative numbers
      • Two's complement of a number
      • SmallIntegers in Pharo
      • Hexadecimal
      • Chapter summary
    • Fun with Floats
      • Never test equality on floats
      • Dissecting a Float
      • With floats, printing is inexact
      • Float rounding is also inexact
      • Fun with inexact representations
      • Chapter summary
  • Tools
    • Profiling Applications
      • What does profiling mean?
      • A simple example
      • Code profiling in Pharo
      • Read and interpret the results
      • Illustrative analysis
      • Counting messages
      • Memorized Fibonacci
      • SpaceTally for memory consumption per Class
      • Few advices
      • How MessageTally is implemented?
      • Chapter summary
    • PetitParser: Building Modular Parsers
      • Writing parsers with PetitParser
      • Composite grammars with PetitParser
      • Testing a grammar
      • Case Study: A JSON Parser
      • PetitParser Browser
      • Packrat Parsers
      • Chapter summary
    • Biographies
    No review for this book yet, be the first to review.
      No comment for this book yet, be the first to comment
      You May Also Like
      By Damien Cassou, Stéphane Ducasse, Luc Fabresse, Johan Fabry, Sven van Caekenberghe
      Object-Oriented Reengineering Patterns
      Object-Oriented Reengineering Patterns
      By Serge Demeyer, Stéphane Ducasse, Oscar Nierstrasz
      Pharo by Example 5
      Pharo by Example 5
      By Stéphane Ducasse, Dimitris Chloupis, Nicolai Hess, Dmitri Zagidulin
      Steam, Steel and Electricity
      By James W. Steele
      The Invention of the Sewing Machine
      The Invention of the Sewing Machine
      By Grace Rogers Cooper