Pharo by Example (vol 1) is a practical introduction for Pharo, a Smalltalk-inspired programming language, IDE and live coding enviroment. This book is an updated version of Pharo By Example for Pharo 1.4.
This version focuses on the latest stable version of Pharo (Pharo 5.0, at the time of writing).
You can find more info and documentation about Pharo at Pharo.org.
The latest versions of Updated Pharo by Example can be found at the following sites:
- Jenkins Latest PDF: UpdatedPharoByExample.pdf. All Chapters: UpdatedPharoByExample build artifacts
- Travis (https://travis-ci.org/SquareBracketAssociates/UpdatedPharoByExample)
- Individual chapters can also be viewed online or be downloaded in pdf format in the following section:
|1 - Preface||Revised, copyedited||html pdf|
|2 - Pharo Tour||Revised, copyedited||html pdf||
|3 - A First Application||Revised, copyedited||html pdf||
|4- Syntax in a Nutshell||Revised, copyedited||html pdf||
|5 - Understanding Messages||Revised, copyedited||html pdf||
|6 - The Pharo Object Model||Revised, copyedited||html pdf||
|7 - Environment||Revised, copyedited||html pdf||
|8 - Sharing Code and Source Control||Revised, copyedited||html pdf||
|9 - SUnit||Revised, copyedited||html pdf||
|10 - Basic Classes||Revised, copyedited||html pdf||
|11 - Collections||Revised, copyedited||html pdf||
|12 - Streams||Revised, copyedited||html pdf||
|13 - Morphic||Revised, copyedited||html pdf||
|14 - Seaside By Example||Needs revision||html pdf||
|15 - Classes and Metaclasses||Revised, copyedited||html pdf||
|16 - Reflection||Needs revision||html pdf||
|17 - Regular Expressions in Pharo||Needs revision||html pdf||
Contributing to Updated Pharo By Example (vol 1)
This book follows the fork-and-pull GitHub workflow for contributions:
Fork the repository
For each modification, create a quick topic branch named in the form of...
git checkout -b dz_PharoTour_update_screen_snapshots
Make commits to that branch. When you're ready, make a Pull Request
The request will receive comments/corrections, and will be merged into the main repo.
More info about contributing to this book (including Pillar syntax, setting up LaTeX, etc) can be found in the CONTRIBUTING.md file.
This book is written in Pillar markup. If you are not familiar with it please check the pillar-documentation. See also:
- Documenting your Project with Pillar chapter of Enterprise Pharo
- Pillar Syntax Cheat Sheet
Images (screenshots and diagrams) use Pillar image syntax:
+A stream positioned at its beginning.>file://figures/abcde.png|width=100|label=fig:abcde+
widthparameter is required (percentage of the screen).
- Place the files in the
figuresdirectory of the chapter they are in.
- The label should begin with
- When taking screenshots (PNG format), please compress them (you can use TinyPNG for easy and lossless compression)
To reference an image:
Figure *@fig:abcde* (renders to Figure 3.8, for
Scripts and Code Blocks
For scripts, method definitions and other code blocks:
[[[language=smalltalk|caption=Hello World in a Transcript|label=src:helloWorld Transcript show: 'hello world'; cr. ]]]
Note that the label starts with
To reference code blocks, use
Script *@scr:helloWorld* (similar to Figures).
Chapter and Section Reference Links
Whenever you refer to other chapters of the book, please use the Pillar internal
link syntax and the chapter name. (The
cha: in the id is to denote that it's
a chapter, to differentiate from a section id.) For example:
Chapter *: A Quick Tour of Pharo>../PharoTour/PharoTour.pillar@cha:tour*
A list of chapter ref link code is provided, to easily copy and paste, in the Chapter Progress / table of contents above.
General Style Guidelines
Please keep in mind the following:
- When possible, hard-wrap lines at 80 characters (e.g.
Cmd-Alt-Qin Atom). This is a common open-source documentation convention, and helps with viewing GitHub-generated diffs. However, due to Pillar limitations, ordered and unordered list elements must be on a single line to be correctly parsed. Those can be left un-wrapped.
- Only one space between sentences.
- Avoid periods in section titles. (For example, this section is titled "Style Guide" and not "Style Guide.")
- All inline code mentions (objects, messages, variables, packages) should use the
Pillar monospace notation:
This book is licensed under a Creative Commons Attribution-ShareAlike 3.0 license.
Deep Into Pharo (Pharo By Example vol 2)
Enterprise Pharo: A Web Perspective
Enterprise Pharo: A Web Perspective (latest PDF, source code) is the third volume of the series. It covers enterprise libraries and frameworks, and in particular those useful for doing web development.