Discussion:
[ANN] Pharo wiki , is here
(too old to reply)
Dimitris Chloupis
2017-08-19 20:54:53 UTC
Permalink
Many seemed to like the idea of a Pharo wiki , I like it too. I created
one, can be found here and super easy to contribute to.

https://github.com/SquareBracketAssociates/PharoWiki

Will keep this thread for alerting for important updates to wiki. Have fun
:)
Dimitris Chloupis
2017-08-19 21:20:57 UTC
Permalink
I also turned it to be published as a webpage, its can be viewed from this
link

https://squarebracketassociates.github.io/PharoWiki/
Post by Dimitris Chloupis
Many seemed to like the idea of a Pharo wiki , I like it too. I created
one, can be found here and super easy to contribute to.
https://github.com/SquareBracketAssociates/PharoWiki
Will keep this thread for alerting for important updates to wiki. Have fun
:)
Stephane Ducasse
2017-08-20 09:24:26 UTC
Permalink
I added some links to books and blogs.


On Sat, Aug 19, 2017 at 11:20 PM, Dimitris Chloupis
Post by Dimitris Chloupis
I also turned it to be published as a webpage, its can be viewed from this
link
https://squarebracketassociates.github.io/PharoWiki/
Post by Dimitris Chloupis
Many seemed to like the idea of a Pharo wiki , I like it too. I created
one, can be found here and super easy to contribute to.
https://github.com/SquareBracketAssociates/PharoWiki
Will keep this thread for alerting for important updates to wiki. Have fun
:)
Dimitris Chloupis
2017-08-20 11:07:47 UTC
Permalink
Thanks mate :)

I really appreciate it
Post by Stephane Ducasse
I added some links to books and blogs.
On Sat, Aug 19, 2017 at 11:20 PM, Dimitris Chloupis
Post by Dimitris Chloupis
I also turned it to be published as a webpage, its can be viewed from
this
Post by Dimitris Chloupis
link
https://squarebracketassociates.github.io/PharoWiki/
On Sat, Aug 19, 2017 at 11:54 PM Dimitris Chloupis <
Post by Dimitris Chloupis
Many seemed to like the idea of a Pharo wiki , I like it too. I created
one, can be found here and super easy to contribute to.
https://github.com/SquareBracketAssociates/PharoWiki
Will keep this thread for alerting for important updates to wiki. Have
fun
Post by Dimitris Chloupis
Post by Dimitris Chloupis
:)
Herby Vojčík
2017-08-20 13:46:36 UTC
Permalink
Post by Stephane Ducasse
I added some links to books and blogs.
On Sat, Aug 19, 2017 at 11:20 PM, Dimitris Chloupis
Post by Dimitris Chloupis
I also turned it to be published as a webpage, its can be viewed from this
link
https://squarebracketassociates.github.io/PharoWiki/
Seems like another github-account-only solution, is it?
Post by Stephane Ducasse
Post by Dimitris Chloupis
Post by Dimitris Chloupis
Many seemed to like the idea of a Pharo wiki , I like it too. I created
one, can be found here and super easy to contribute to.
https://github.com/SquareBracketAssociates/PharoWiki
Will keep this thread for alerting for important updates to wiki. Have fun
:)
Dimitris Chloupis
2017-08-20 13:57:48 UTC
Permalink
yeap its github only, though none stops your from forking it and sending me
pull request from whatever source you want
Post by Herby Vojčík
Post by Stephane Ducasse
I added some links to books and blogs.
On Sat, Aug 19, 2017 at 11:20 PM, Dimitris Chloupis
Post by Dimitris Chloupis
I also turned it to be published as a webpage, its can be viewed from
this
Post by Stephane Ducasse
Post by Dimitris Chloupis
link
https://squarebracketassociates.github.io/PharoWiki/
Seems like another github-account-only solution, is it?
Post by Stephane Ducasse
Post by Dimitris Chloupis
On Sat, Aug 19, 2017 at 11:54 PM Dimitris Chloupis<
Post by Dimitris Chloupis
Many seemed to like the idea of a Pharo wiki , I like it too. I created
one, can be found here and super easy to contribute to.
https://github.com/SquareBracketAssociates/PharoWiki
Will keep this thread for alerting for important updates to wiki. Have
fun
Post by Stephane Ducasse
Post by Dimitris Chloupis
Post by Dimitris Chloupis
:)
Dimitris Chloupis
2017-08-20 14:00:38 UTC
Permalink
Oh thanks for reminding me, there is no make a github account for those not
familair with github / git

you make any submission you want here in this thread and I will port it to
wiki with copy paste and a bit of structuring :)

As I said this wiki is very unofficial so anything will be accepted as long
as of course its related to Pharo
Post by Dimitris Chloupis
yeap its github only, though none stops your from forking it and sending
me pull request from whatever source you want
Post by Herby Vojčík
Post by Stephane Ducasse
I added some links to books and blogs.
On Sat, Aug 19, 2017 at 11:20 PM, Dimitris Chloupis
Post by Dimitris Chloupis
I also turned it to be published as a webpage, its can be viewed from
this
Post by Stephane Ducasse
Post by Dimitris Chloupis
link
https://squarebracketassociates.github.io/PharoWiki/
Seems like another github-account-only solution, is it?
Post by Stephane Ducasse
Post by Dimitris Chloupis
On Sat, Aug 19, 2017 at 11:54 PM Dimitris Chloupis<
Post by Dimitris Chloupis
Many seemed to like the idea of a Pharo wiki , I like it too. I
created
Post by Stephane Ducasse
Post by Dimitris Chloupis
Post by Dimitris Chloupis
one, can be found here and super easy to contribute to.
https://github.com/SquareBracketAssociates/PharoWiki
Will keep this thread for alerting for important updates to wiki.
Have fun
Post by Stephane Ducasse
Post by Dimitris Chloupis
Post by Dimitris Chloupis
:)
H. Hirzel
2017-08-21 05:50:15 UTC
Permalink
On 8/20/17, Dimitris Chloupis <***@gmail.com> wrote:
......
Post by Dimitris Chloupis
you make any submission you want here in this thread and I will port it to
wiki with copy paste and a bit of structuring :)
Dimitris,

Could you please do add a link in
https://github.com/SquareBracketAssociates/PharoWiki

to Torsten's wiki

http://wiki.astares.com/pharo

It has over 500 pages with good content I was not aware of....


Thanks,
Hannes
H. Hirzel
2017-08-21 06:14:52 UTC
Permalink
And add the overview to Grafoscopio

Aug 20, 2017
[Pharo-users] [Ann] [Grafoscopio] New release with major improvements
Post by H. Hirzel
......
Post by Dimitris Chloupis
you make any submission you want here in this thread and I will port it to
wiki with copy paste and a bit of structuring :)
Dimitris,
Could you please do add a link in
https://github.com/SquareBracketAssociates/PharoWiki
to Torsten's wiki
http://wiki.astares.com/pharo
It has over 500 pages with good content I was not aware of....
Thanks,
Hannes
Dimitris Chloupis
2017-08-21 07:32:05 UTC
Permalink
absolutely , I will add Torsten's wonderful wiki and Grafoscopio details,
keep them coming :)

Anything I miss, please alert me as Hizrel just did , I want to link to
anything Pharo related ,lets bring everything under one roof ;)
Post by H. Hirzel
And add the overview to Grafoscopio
Aug 20, 2017
[Pharo-users] [Ann] [Grafoscopio] New release with major improvements
Post by H. Hirzel
......
Post by Dimitris Chloupis
you make any submission you want here in this thread and I will port it to
wiki with copy paste and a bit of structuring :)
Dimitris,
Could you please do add a link in
https://github.com/SquareBracketAssociates/PharoWiki
to Torsten's wiki
http://wiki.astares.com/pharo
It has over 500 pages with good content I was not aware of....
Thanks,
Hannes
H. Hirzel
2017-08-21 13:01:25 UTC
Permalink
This code snippet below gives a list of all Pharo 6.0 catalog entries


CatalogProvider default retrieveProjects select: [ :x |
(x at: 'repositoryUrl') =
'http://smalltalkhub.com/mc/Pharo/MetaRepoForPharo60/main' ].
Post by Dimitris Chloupis
absolutely , I will add Torsten's wonderful wiki and Grafoscopio details,
keep them coming :)
Anything I miss, please alert me as Hizrel just did , I want to link to
anything Pharo related ,lets bring everything under one roof ;)
Post by H. Hirzel
And add the overview to Grafoscopio
Aug 20, 2017
[Pharo-users] [Ann] [Grafoscopio] New release with major improvements
Post by H. Hirzel
......
Post by Dimitris Chloupis
you make any submission you want here in this thread and I will port
it
to
wiki with copy paste and a bit of structuring :)
Dimitris,
Could you please do add a link in
https://github.com/SquareBracketAssociates/PharoWiki
to Torsten's wiki
http://wiki.astares.com/pharo
It has over 500 pages with good content I was not aware of....
Thanks,
Hannes
H. Hirzel
2017-08-21 14:02:47 UTC
Permalink
And this one produces a catalog list in markdown format

"Produce a list of Pharo 6 catalog entries (tag: 'Pharo 6.0')"
| catalog |
catalog := CatalogProvider default retrieveProjects select: [ :x |
(x at: 'repositoryUrl') =
'http://smalltalkhub.com/mc/Pharo/MetaRepoForPharo60/main' ].

Transcript show: '# Pharo 6 catalog list'; cr.

(catalog asSortedCollection: [ :a :b | (a at: 'name') < (b at: 'name')
]) do: [ :entry | Transcript show: '## ', (entry at: 'name') ; cr;
show: (entry at: 'description'); cr;cr.
Transcript show: 'keywords: '.
(entry at: 'keywords') sorted do: [ :keyword | Transcript show:
keyword; space ].
Transcript cr; cr].

Transcript show: '# Pharo 6 catalog list - description is missing'; cr.

(catalog asSortedCollection: [ :a :b | (a at: 'name') < (b at: 'name') ])
do: [:entry | (entry at: 'description') ifNil: [ Transcript show: '-
', (entry at: 'name'); cr ]
].


................................................................................................


# Pharo 6 catalog list
## Animation
Adds a delay operator turning any message send into a smooth transition.

keywords: animation fun time

## Artefact
Artefact is a library to generate PDF documents. It provides a
document model and support the generation of PDF

keywords: PDF document layout

## AstaresDistribution
Several Pharo goodies like Pomodoro, DesktopManager, QuickAccess,
HubCap, ScriptManager, ... written by Torsten Bergmann (astares.com)
bundled for easy installation

keywords: custom distribution goodies pharo

## Atlas
A Python bridge (IPC - stream sockets) for Pharo, allowing Pharo to
use Python libraries , mix with Python code and vice versa

keywords: Atlas IPC atlas pharo python sockets

## BitmapCharacterSet
BitmapCharacterSet is a set for characters that uses a bitmap for
storing wide characters and an array of truth values for byte
characters. Used by XMLParser.

keywords: character collection set unicode

## Bootstrap
"Bootstrap for Seaside" is a project combining Seaside and Twitter
Bootstrap and easily use them to write professional looking web
applications.

keywords: Bootstrap HTML Seaside query web

## Bugzilla
Pharo wrapper for Bugzilla REST API

keywords: api bugzilla rest

## CPPBridge
CPP is a library that allows Pharo to share memory with a C++
application. This means that both can share the exact same data and
modify it. This also can allow Pharo and C++ to exacute one another
library and code. Example provided

keywords: ++ ++ C IPC bridge c cpp file mapped memory shared

## Calypso
Calypso is a new system browser based on new navigation model

keywords: IDE systemBrowser

## CheatSheet

Pharo Cheat Sheet.

Project main page: *http://www.smalltalkhub.com/#!/~PharoExtras/CheatSheet*

keywords: examples syntax

## ChronosManager
ChronosManager is a time managment tool based on the pomodoro
technique offering a stopwatch and timer for keeping track of time
with tasks and goals

keywords: ChronosManager managment pomodoro time

## Citezen
Citezen is a library to parse, query and manage bibtex scientific citations.

keywords: bibtex latex parser printer query

## CommandShell
nil

keywords:

## Commander
Commander models application actions as first class objects.

Every action is implemented as separate command class (subclass of
CmdCommand) with #execute method and all state required for execution.

Commands are reusable objects and applications provide various ways to
access them. Such information is attached to command classes as
activator objects. Currently there are three types of activators:
- CmdShortcutCommandActivator
- CmdContextMenuCommandActivator
- CmdDragAndDropCommandActivator

Activators are declared in command class side methods marked with
pragma #commandActivator. For example following method will allow
RenamePackageCommand to be executed by shortcut in possible system
browser:
RenamePackageCommand class>>packageBrowserShortcutActivator
<commandActivator>
^CmdShortcutCommandActivator by: $r meta for: PackageBrowserContext
And for context menu:
RenamePackageCommand class>>packageBrowserMenuActivator
<commandActivator>
^CmdContextMenuCommandActivator byRootGroupItemFor: PackageBrowserContext
Activators are always declared with application context where they can
be applied (PackageBrowserContext in example). Application should
provide such contexts as subclasses of CmdToolContext with information
about application state. Every widget can bring own context to
interact with application as separate tool. For example system browser
shows multiple panes which provide package context, class context and
method context. And depending on context browser shows different menu
and provides different shortcuts

keywords: command command pattern tools

## Community
Community is a project to add some world menues to easily access some
community pages

keywords: community pharo

## Complex
Math-Complex brings back to Pharo the complex numbers like (1+2i)
which used to be in Squeak Kernel.

keywords: complex math number

## DacapoEnergyConsumption
This project run the Dacapo benchmarks, and monitor the energy
consumption of the CPU. It is for research purposes.

keywords: consumption energy java

## DarkMetalTheme
An alternative to DarkTheme, DarkMetalTheme offers "metalic" tonalities :)

keywords: theme ui

## DebuggerCritiques
Add inlined critiques into Pharo debugger

keywords: critiques debugger smallLint

## DesktopManager
A goodie to be able to manage multiple desktops in Pharo.

keywords: desktop goodie pharo tools

## DiscordSt
DiscordSt is a library for Discord service, see https://discordapp.com
for basic information about Discord and
https://discordapp.com/developers/docs/intro for developer
information.

The stable version supports Discord Webhooks. See
https://github.com/JurajKubelka/DiscordSt for examples.

keywords: api chat client discord rest web webhook

## EventRecorder
Record and replay screen events.

keywords: recording screen

## FamixDiff
nil

keywords:

## FlatQA
Hi, I'm your personal quality assistant. I run Smalllint rules on the
code that you modify, and notify you about quality changes.
https://github.com/Uko/QualityAssistant#qualityassistant

keywords: automatic critics quality smallint validation

## FogBugz
Access to FogBugz from within Pharo environment.

keywords: fun web

## Garage
Garage is the relational database driver for Pharo. Garage provides a
common API to connect with several database servers in a coherent way
(JDBC like). Along with Garage, we provide implementations of several
database drivers.

keywords: api database drivers

## GarageGlorp
This configuration loads the Garage database drivers along with the
Glorp Object-Relational Mapper. It is a convenience configuration used
to load both projects using a single config.

keywords: database driver orm persistence

## Gettext
Gettext is an implementaion of https://www.gnu.org/software/gettext,
the standard l17n package.

keywords: gettext i18n internationalization l10n localization

## Ghost
nil

keywords:

## GitFileTree
GitFileTree is an integration of Git commands below Monticello,
allowing a very simple and powerfull integration with a git repository
for tracking Monticello packages, allowing for example one to work
from github.com (including with configurations support) without any
use of the command line and with perfect support of whatever is the
structure of the project under git.

Works with any possible organisation of the git repository related to
the package (single language, multi language, single package, multiple
packages, single remote repo, multiple remote repositories, branches,
you name it).

GitFileTree: is integrated into FileTree, but not easily available.
This configuration allow for a one step loading with the dependencies.

keywords: FileTree Monticello OSProcess OSSubprocess Packages Pharo5 Pharo6 git

## GitHubAPI
A GitHub API Wrapper for Pharo to easily access informations from
GitHub right from your Pharo image.

keywords: api git github

## GitHubcello
Have it happened to you that you have your project on GitHub and it
has a baseline but now you have to write down the Metacello script to
load it? Not any more! Simply paste your repo URI into GTSpotter, wait
a bit, select the baseline you want to load, and you're done!
https://github.com/Uko/GitHubcello#githubcello-

keywords: github metacello spotter

## GlorpSQLite
GlorpSQLite is the integration of Glorp with SQLite. This
configuration loads UDBC, which contains SQLite, then loads Glorp.
Once GlorpSQLite is loaded, provided Pharo can find the SQLite
so/dylib/dll file on your system, start Test Runner and run the tests.

keywords: database orm persistence relational

## Grafoscopio
Grafoscopio is a tool to create interactive notebooks and
documentation for computer narratives and data visualization.
They are structured as outlines/trees containing textual and code
nodes that can be exported to several formats: LaTeX, HTML
and pdf (via pandoc).
It can be used in several endeavors like: reproductible open research
and science, data journalism, data activism among others

keywords: data-activism data-journalism data-science
data-visualization documentation interactive-notebook markdown markup
open-data open-research open-science reproducible-research

## Grease
The Grease Portability Library

keywords: framework portability

## Grid
This package provides a grid (2D array) implementation.

keywords: 2D-array collection container matrix

## Hashids
Hashids allow you to create URL friendly ids from sequential integer
ids. NB it is should not be considered as encryption but it does
provide a lightweight obfuscation of the underlying id.
https://github.com/alacap/hashids-pharo

keywords: hashing

## Hubcap
nil

keywords:

## INIFile
A Parser for .INI files (as usually used on Windows)

keywords: configurations ini settings windows

## Iceberg
Iceberg is a set of tools that allow one to handle git repositories
directly from a Pharo image.

keywords: git vcs version control

## LightPhaser
nil

keywords:

## MacroRecorder
MacroRecorder is a tool that allows the developer to
(i) record a sequence of transformations while they are applied a
first time, either manually or with the assistance of refactoring
tools;
(ii) store and parameterize the transformations to allow their
generalization; and
(iii) apply automatically the sequence of transformations afterwards
on different code locations.

For the last step, the developer could explicitly point to the
entities to transform.

keywords: code change code manipulation programming by demonstration
source code transformations

## MatchTool
MatchTool is a simple UI for experimenting with the matching
functionality of pattern code.
MatchTool can be open from the World Menu > Tools category. More
information can be read from within the tool by pressing help button.

keywords: code inspect match pattern rewrite rules

## MessageFlowBrowser
A message flow browse to browser senders, implementors and messages of
methods in a single window and folow the message flow

keywords: browser messageflow methods tools

## Mocketry
Mocketry is mock objects framework. It provides simplest way to stub
any message to any object and to verify any occurred behaviour.

mock := Mock new.
mock stub someMessage willReturn: 1000.

mock someMessage should be: 1000.
mock should receive someMessage.

rect := ***@0 corner: ***@3.
rect stub width willReturn: 1000.

rect area should be: 3000 "area = width * height".
rect should receive width.

keywords: BDD SUnit TDD framework mocks

## MooseProject
MooseProject is a library to store many differents versions for a
project. It will persist everything on the disk and allow you easily
to recover the model associated to the desired version

keywords: Moose project version

## Mustache
nil

keywords:

## NPMJS
Spotter search of NPM packages

keywords: javascript nodejs

## Neo4reSt
Neo4reSt is a rest client of Neo4j graph database. (http://neo4j.org/)

Neo4reSt will provide:

- Raw rest client
- Wrapper client which handles JSON well
- Object level wrapper classes (Node, Relationship, Property)


keywords: Neo4j database graph persistence

## NeoCSV
CSV (Comma Separated Values) is a popular data-interchange format.
NeoCSV is an elegant and efficient standalone framework to read and
write CSV converting to or from Smalltalk objects.

keywords: ascii comma-separated-values csv fields format input output
records rfc-4180 tab-separated-values tabular-data text tsv

## NeoJSON
JSON (JavaScript Object Notation) is a popular data-interchange
format. NeoJSON is an elegant and efficient standalone Smalltalk
framework to read and write JSON converting to or from Smalltalk
objects.

keywords: encoding format input javascript json output serialization text

## Nginx
Utility project to work with nginx from Pharo image (Windows only so far)

keywords: nginx server web windows

## OSLinuxCentOS
A part of the OS-XXX series to easier work with native operating
system platforms. Here for using CentOS Linux environments in Pharo.

keywords: centos linux native os unix

## OSLinuxUbuntu
A part of the OS-XXX series to easier work with native operating
system platforms. Here for using Ubuntu Linux environments in Pharo.

keywords: linux native os ubuntu unix

## OSOSX
nil

keywords:

## OSProcess
nil

keywords:

## OSRaspbian
A part of the OS-XXX series to easier work with native operating
system platforms. Here for using Raspbian environments in Pharo.

keywords: linux native os raspbian unix

## OSUnix
A part of the OS-XXX series to easier work with native operating
system platforms. Here for using Unix environments in Pharo.

keywords: native os unix

## OSWindows
API wrappers and tools for the Windows operating system

keywords: api native win32 windows

## ObjectStatistics
ObjectStatistics is tool to analyse set of objects by computing
different kind of metrics and look at them from different angles.
Imaging that we have collection of message sends and we want to know
number of message sends in dimension of receiver, receiver class and
message selector. We have different angles to look at this data: from
receiver class to selector and receiver or from selector to receiver
class and receiver or any other combination.
We also could analyze different kind of metrics which could be
computed on given objects. It could be number of unique receivers,
execution time, executed lines of code, etc.
This package implements computation of object statistics over declared
metrics and dimensions space.
Described example could be look like:

stat := ObjectStatistics.
stat
countAllAs: 'sends';
countDifferent: [ :message | message receiver ] as: 'instances'.
stat
dimension: [ :message | message receiver class ] named: 'classes';
with: [
stat dimension: [ :message | message selector ] named: 'msgs';
with: [
stat
dimension: [ :r | r ] named: 'receivers';
ignoreMetrics: #('instances')]];
dimension: [ :message | message selector ] named: 'msgs';
with: [
stat dimension: [ :message | message receiver class ] named: 'classes';
with: [
stat
dimension: [ :r | r ] named: 'receivers']].

stat accumulateAll: messageSends.



keywords: analysis framework

## ObjectTravel
ObjectTravel implements traversal of full object graph. It enumerates
each reference in breadth-first direction and visit every reference
only once.

traveler := ObjectTraveler on: ***@30.
traveler moveToNextReference. "true".
traveler currentReference. "10"
traveler nextReference. "30"

traveler := ObjectTraveler on: #(10 20 30).
traveler nextReference "10"
traveler nextReference "20"

Also ObjectTravel can replace references with new values:

traveler replaceCurrentReferenceWith: #newReference.


keywords: objectsTraversal stream tool

## Octopus
A pharo tool that utilises Pillar library to process pillar text
copied to the clipboard and convert it to HTML

keywords: HTML markdown pillar

## OrderPreservingDictionary
This package has two ordered dictionary classes that behave like
OrderedDictionary and OrderedIdentityDictionary in Pharo but are
portable to Squeak and Gemstone, and other ordered dictionary classes
needed by XMLParser.

keywords: collection dictionary order-preserving ordered

## Orion
Orion is an interactive prototyping tool for reengineering, to
simulate changes and compare their impact on multiple versions of
software source code models.

keywords: Moose delta model versioning

## Pastell
Pastell is an add-on for XMLParser which adds some methods that make
navigation of an XML DOM tree much easier, it is a XMLPath-like
library.

keywords: xml xpath

## PharoSprint
The Pharo community regularly organize Pharo Sprint events. The Pharo
Sprint is a regular (monthly) event when developers and users meet
together to fix bugs. This usually takes place in a physical location,
but people are welcomed to participate from any place. This is a great
opportunity for novices to get involved and learn from experts!

For more information: http://bit.ly/SprintWeb and
http://pharo.org/contribute-events

keywords: Bug Discord FogBugz PharoSprint Sprint SprintDay

## Pillar
Pillar is a wiki-like syntax, its document model, a parser for it, and
a set of exporters (e.g., HTML, LaTeX, Markdown...). Pillar is
primarily used as the wiki syntax behind the *Pier
CMS>http://piercms.com*. Pillar is also being used to write books:
e.g., *the Enterprise Pharo book>http://books.pharo.org/*.

keywords: book document html latex markdown pier wiki

## PlotMorph
PlotMorph is a nice plotting system. It can plot multiple series with
different graphical attributes.

keywords: Morph UI graph plotting point series

## PolyMath
Tools for scientific computation in Smalltalk

keywords: ODE mathematics science

## Pomodoro
A pomodoro timer

keywords: GTD morphic pomodoro

## PunQLite
UnQLite binding for Pharo Smalltalk. UnQLite is a fast, lightweight,
portable, embedded KVS with a simple scripting engine (Jx9). By using
PunQLite, you can store/load lots of data as if just using a normal
Dictionary.

PunQLite uses UnQLite shared library. If you have no time to compile,
just get pre-built binary from the github project page
(https://github.com/mumez/PunQLite).



keywords: KVS NoSQL UFFI UnQLite database persistence

## QualityAssistant
Hi, I'm your personal quality assistant. I run Smalllint rules on the
code that you modify, and notify you about quality changes.
https://github.com/Uko/QualityAssistant#qualityassistant

keywords: automatic critics quality smallint validation

## QuickAccess
A manager for scripts with Quick access.

keywords: fun web

## RProjectConnector
nil

keywords:

## RediStick
RediStick is a redis client which supports auto-reconnecting.

Other features:
- Minimum dependencies (runs on Pharo without other libraries)
- Supports unicode strings


keywords: KVS NoSQL Redis database persistence

## ReferenceFinder
Finds reference paths between objects to help find memory leaks.

keywords: memory objects references tracing

## RegexTools
A tool to test and verify regular expressions

keywords: regex utilities

## Roassal2
Roassal is an agile visualization engine. Roassal graphically renders
objects using short and expressive Smalltalk expressions. A large set
of interaction facilities are provided for a better user experience.
Painting, brushing, interconnecting, zooming, drag and dropping will
just make you more intimate with any arbitrary object model.

keywords: charting data visualization

## SRT2VTT
This package convert SRT to VTT (subtitles for videos plugins)

keywords: browser plugin srt videos vtt web

## ScriptManager
A simple tool to manage scripts. Still based on Morphic. We would
recommend users to switch to QuickAccess which is a better script
manager than this tool.

keywords: fun script

## Seaside3
The framework for developing sophisticated web applications in
Smalltalk. See http://www.seaside.st

keywords: framework seaside web

## SimilarityFlooding
This project is an implementation of a FAMIX model difference
algorithm based on Similarity Flooding algorithm as defined by Sergey
Melnik, Hector Garcia-Molina, and Erhard Rahm in 'Similarity flooding:
A versatile graph matching algorithm and its application to schema
matching' and in the technical report associated.
Check the github repository for documentation
[https://github.com/juliendelplanque/SFDiff].

keywords: FAMIX SFDiff difference model similarity similarity flooding

## Spy2
Spy2 is a profiling framework. You can easily create profilers. You
can have a look at a description
http://bergel.eu/download/papers/Berg10f-Spy.pdf

The Hapao test coverage tool is included.

keywords: Hapao Memory Performance Profiling Roassal Spy

## Stamp
Stamp is an implementation of STOMP 1.2, a protocol to access message
oriented middleware like RabbitMQ.

keywords: client format messaging middleware queueing rabbitmq stomp

## StateSpecs
StateSpecs is object state specification framework. It describes
particular object states by first class specifications. For example
there are SpecOfCollectionItem, SpecOfObjectClass and
SpecOfObjectSuperclass. They can match and validate given objects. In
case when object is not satisfied specification you will get failure
result with detailed information about problem.

spec matches: anObject.
spec validate: anObject. "it returns validation result which can be
success or particular failure"

To easily create specifications and validate objects by them
StateSpecs provides two kind DSL: should expressions and "word"
classes.
First allows you to write "assertions":

1 should be: 2
1 should equal: 10

And second allows you to instantiate specs by natural readable words:

Kind of: Number
Instance of: String
Equal to: 'test'

keywords: BDD SUnit TDD framework validation

## Ston
Smalltalk Object Notation (STON) is a lightweight, text-based,
human-readable data interchange format for class-based object-oriented
languages like Smalltalk. It can be used to serialize domain level
objects, either for persistency or network transport. As its name
suggests, it is based on JSON (Javascript Object Notation). It adds
symbols as a primitive value, class tags for object values and
references.

keywords: encoding format input json output serialization ston text

## SublimishTheme

A dark theme for Pharo. If you like Sublime then you'll like Sublimish theme.
Project main page: *https://github.com/sebastianconcept/SublimishTheme*

keywords: GUI IDE

## Tarantalk
Tarantalk is a Tarantool (Lua with DBMS) connector.

You can:
- Store/load tuples.
- Find tuples by multiple indices
- Evaluate Lua programs


keywords: KVS Lua NoSQL Tarantool Tuple database persistence

## Tarantube
Tarantool message queue wrapper based on Tarantalk.

- Supporting FIFO queue with priority, TTL, TTR, delay and sub queues.
- Need to install Tarantool + Tarantool queue module
(https://github.com/tarantool/queue)



keywords: Lua MQ NoSQL Tarantalk Tarantool queue

## Tealight
Tealight is a project defining a few extensions to the Teapot
framework to make the (tea) time you spend with the Pharo Teapot
system even easier..

keywords: api git github

## Teapot
Teapot is micro web framework on top of the Zinc HTTP components, that
focuses on simplicity and ease of use.

keywords: framework http micro sinatra web

## TestsUsageAnalyser
nil

keywords:

## Trie
This package provides a trie implementation (as developed by Benoit
St-Jean. See https://en.wikipedia.org/wiki/Trie

keywords: collection containers retrieval trie

## Units
Units is a simple and powerful library to manage different units.

keywords: Comparison Meter Points Units

## VMProfiler
VMProfiler is a sampling profiler tracking down where the time is
spent in the VM when executing a specific portion of code. It computes
where the time is spent in the compiled C code of the VM, in the VM
plugins and in the native functions.
The results are available as a statistical report.

keywords: cog jit profiling virtual machine

## VerStix
A Vert.x TCP EventBus client for Pharo Smalltalk.

You can:
- interact with various Vert.x components (Web, Auth, DB, MQ, etc).
- interact with other Smalltalk images
- interact with various languages which support Vert.x EventBus


keywords: microservices network vertx

## VistaCursors
Provide a better looking cursor (similar to Windows Vista).

keywords: cursor theming ui windows

## VoyageMongo
Voyage-Mongo is an object persistence layer made for easy the work
with *MongoDB>http://www.mongodb.org*. It is an "ODM" (Object-Document
Mapper), in the same spirit of the ORMs for relational approaches.

keywords: database mongodb nosql persistence

## VoyageUnqlite
Voyage-UnQLite is an object persistence layer made for easy the work
with *UnQLite>https://unqlite.org*. It is an "ODM" (Object-Document
Mapper), in the same spirit of the ORMs for relational approaches.

keywords: database nosql persistence unqlite

## WKHTML2PDF
Render HTML into PDF and various image formats using the (external) Qt
WebKit rendering engine directly from Pharo.

keywords: html pdf reporting

## WebBrowser
General and platform independent WebBrowser access for Pharo 4.0
onwards based on NativeBoost, for Pharo 5.0 onwards based on UFFI

keywords: internet platform url utility web webbrowser

## XMI
A XMI wrapper for Pharo to easily access XML Metadata informations.

keywords: omg uml xmi xml

## XMLParser
XMLParser provides validating SAX and DOM parsers for well-formed XML
documents on Pharo, Squeak, and Gemstone. It also provides a DOM API
for manipulating documents, namespace support, and an optional
XMLWriter for writing documents. Validation and namespace checking are
enabled by default, but not resolution of external entities.

Implements:
http://www.w3.org/TR/REC-xml/
http://www.w3.org/TR/REC-xml-names/
http://www.w3.org/TR/xml-id/
http://www.w3.org/TR/xmlbase/
https://www.w3.org/TR/xml-c14n


keywords: DOM DTD HTML SAX XHTML XML document markup parser validation web

## XMLParserHTML
XMLParserHTML provides SAX and DOM parsers for HTML that convert
possibly malformed HTML into well-formed XML.

keywords: DOM HTML SAX document markup parser web

## XMLParserStAX
XMLParserStAX is a pull parser for XMLParser that provides a streaming
interface for "pulling" XML events and also supports pull-style DOM
parsing for dynamically converting events into DOM nodes.

keywords: DOM DTD HTML StAX XHTML XML XMLPullParser document markup
parser pull pull-parser validation web

## XMLWriter
XMLWriter allows you to generate well-formed XML documents using an
API based on Seaside's canvas and tag brushes so all tags will be
nested properly and not left unclosed.

keywords: HTML XHTML XML document markup web writer

## XPath
An XPath library for Pharo, Squeak, and Gemstone leveraging the XML
parsing capabilities of XMLParser. Supports XPath 1.0 syntax with
extensions.

keywords: DOM HTML XHTML XML XPath document markup parser query web

## ZTimestamp
The ZTimestamp project groups a number of classes that form an
addition/alternative to DateAndTime/Timestamp. The core ZTimestamp
class represents a point in time, with second precision and always in
the UTC/GTM/Zulu timezone. It is faster and smaller. ZTimestampFormat
is a formatter and parser that is example based. ZTimezone uses the
standard Olsone timezone database to compute the offset for local time
at specific points in time for a specified timezone.
ZTimestampSNTPClient is an SNTP client to check the local clock
against network time servers. This project is small and has no further
dependencies. It runs in Pharo 2 and 3.

keywords: chronology date formatting parsing sntp time timestamp timezone

## ZincHTTPComponents
Zinc HTTP Components is an open source Smalltalk framework to deal
with HTTP. It models most concepts of HTTP and its related standards
and offers both client and server functionality. One of its key goals
is to offer understandability (Smalltalk’s design principle number
one). Anyone with a basic understanding of Smalltalk and the HTTP
principles should be able to understand what is going on and learn, by
looking at the implementation.

keywords: character-encoding client http internet mime-type networking
request response server url

# Pharo 6 catalog list - description is missing
- CommandShell
- FamixDiff
- Ghost
- Hubcap
- LightPhaser
- Mustache
- OSOSX
- OSProcess
- RProjectConnector
- TestsUsageAnalyser
Post by H. Hirzel
This code snippet below gives a list of all Pharo 6.0 catalog entries
CatalogProvider default retrieveProjects select: [ :x |
(x at: 'repositoryUrl') =
'http://smalltalkhub.com/mc/Pharo/MetaRepoForPharo60/main' ].
Post by Dimitris Chloupis
absolutely , I will add Torsten's wonderful wiki and Grafoscopio details,
keep them coming :)
Anything I miss, please alert me as Hizrel just did , I want to link to
anything Pharo related ,lets bring everything under one roof ;)
Post by H. Hirzel
And add the overview to Grafoscopio
Aug 20, 2017
[Pharo-users] [Ann] [Grafoscopio] New release with major improvements
Post by H. Hirzel
......
Post by Dimitris Chloupis
you make any submission you want here in this thread and I will port
it
to
wiki with copy paste and a bit of structuring :)
Dimitris,
Could you please do add a link in
https://github.com/SquareBracketAssociates/PharoWiki
to Torsten's wiki
http://wiki.astares.com/pharo
It has over 500 pages with good content I was not aware of....
Thanks,
Hannes
H. Hirzel
2017-08-21 16:19:01 UTC
Permalink
Please add the reference to the PetitParser2 book

https://kursjan.github.io/petitparser2/pillar-book/build/book.html
Post by H. Hirzel
And this one produces a catalog list in markdown format
"Produce a list of Pharo 6 catalog entries (tag: 'Pharo 6.0')"
| catalog |
catalog := CatalogProvider default retrieveProjects select: [ :x |
(x at: 'repositoryUrl') =
'http://smalltalkhub.com/mc/Pharo/MetaRepoForPharo60/main' ].
Transcript show: '# Pharo 6 catalog list'; cr.
(catalog asSortedCollection: [ :a :b | (a at: 'name') < (b at: 'name')
]) do: [ :entry | Transcript show: '## ', (entry at: 'name') ; cr;
show: (entry at: 'description'); cr;cr.
Transcript show: 'keywords: '.
keyword; space ].
Transcript cr; cr].
Transcript show: '# Pharo 6 catalog list - description is missing'; cr.
(catalog asSortedCollection: [ :a :b | (a at: 'name') < (b at: 'name') ])
do: [:entry | (entry at: 'description') ifNil: [ Transcript show: '-
', (entry at: 'name'); cr ]
].
................................................................................................
# Pharo 6 catalog list
## Animation
Adds a delay operator turning any message send into a smooth transition.
keywords: animation fun time
## Artefact
Artefact is a library to generate PDF documents. It provides a
document model and support the generation of PDF
keywords: PDF document layout
## AstaresDistribution
Several Pharo goodies like Pomodoro, DesktopManager, QuickAccess,
HubCap, ScriptManager, ... written by Torsten Bergmann (astares.com)
bundled for easy installation
keywords: custom distribution goodies pharo
## Atlas
A Python bridge (IPC - stream sockets) for Pharo, allowing Pharo to
use Python libraries , mix with Python code and vice versa
keywords: Atlas IPC atlas pharo python sockets
## BitmapCharacterSet
BitmapCharacterSet is a set for characters that uses a bitmap for
storing wide characters and an array of truth values for byte
characters. Used by XMLParser.
keywords: character collection set unicode
## Bootstrap
"Bootstrap for Seaside" is a project combining Seaside and Twitter
Bootstrap and easily use them to write professional looking web
applications.
keywords: Bootstrap HTML Seaside query web
## Bugzilla
Pharo wrapper for Bugzilla REST API
keywords: api bugzilla rest
## CPPBridge
CPP is a library that allows Pharo to share memory with a C++
application. This means that both can share the exact same data and
modify it. This also can allow Pharo and C++ to exacute one another
library and code. Example provided
keywords: ++ ++ C IPC bridge c cpp file mapped memory shared
## Calypso
Calypso is a new system browser based on new navigation model
keywords: IDE systemBrowser
## CheatSheet
Pharo Cheat Sheet.
Project main page: *http://www.smalltalkhub.com/#!/~PharoExtras/CheatSheet*
keywords: examples syntax
## ChronosManager
ChronosManager is a time managment tool based on the pomodoro
technique offering a stopwatch and timer for keeping track of time
with tasks and goals
keywords: ChronosManager managment pomodoro time
## Citezen
Citezen is a library to parse, query and manage bibtex scientific citations.
keywords: bibtex latex parser printer query
## CommandShell
nil
## Commander
Commander models application actions as first class objects.
Every action is implemented as separate command class (subclass of
CmdCommand) with #execute method and all state required for execution.
Commands are reusable objects and applications provide various ways to
access them. Such information is attached to command classes as
- CmdShortcutCommandActivator
- CmdContextMenuCommandActivator
- CmdDragAndDropCommandActivator
Activators are declared in command class side methods marked with
pragma #commandActivator. For example following method will allow
RenamePackageCommand to be executed by shortcut in possible system
RenamePackageCommand class>>packageBrowserShortcutActivator
<commandActivator>
^CmdShortcutCommandActivator by: $r meta for: PackageBrowserContext
RenamePackageCommand class>>packageBrowserMenuActivator
<commandActivator>
PackageBrowserContext
Activators are always declared with application context where they can
be applied (PackageBrowserContext in example). Application should
provide such contexts as subclasses of CmdToolContext with information
about application state. Every widget can bring own context to
interact with application as separate tool. For example system browser
shows multiple panes which provide package context, class context and
method context. And depending on context browser shows different menu
and provides different shortcuts
keywords: command command pattern tools
## Community
Community is a project to add some world menues to easily access some
community pages
keywords: community pharo
## Complex
Math-Complex brings back to Pharo the complex numbers like (1+2i)
which used to be in Squeak Kernel.
keywords: complex math number
## DacapoEnergyConsumption
This project run the Dacapo benchmarks, and monitor the energy
consumption of the CPU. It is for research purposes.
keywords: consumption energy java
## DarkMetalTheme
An alternative to DarkTheme, DarkMetalTheme offers "metalic" tonalities :)
keywords: theme ui
## DebuggerCritiques
Add inlined critiques into Pharo debugger
keywords: critiques debugger smallLint
## DesktopManager
A goodie to be able to manage multiple desktops in Pharo.
keywords: desktop goodie pharo tools
## DiscordSt
DiscordSt is a library for Discord service, see https://discordapp.com
for basic information about Discord and
https://discordapp.com/developers/docs/intro for developer
information.
The stable version supports Discord Webhooks. See
https://github.com/JurajKubelka/DiscordSt for examples.
keywords: api chat client discord rest web webhook
## EventRecorder
Record and replay screen events.
keywords: recording screen
## FamixDiff
nil
## FlatQA
Hi, I'm your personal quality assistant. I run Smalllint rules on the
code that you modify, and notify you about quality changes.
https://github.com/Uko/QualityAssistant#qualityassistant
keywords: automatic critics quality smallint validation
## FogBugz
Access to FogBugz from within Pharo environment.
keywords: fun web
## Garage
Garage is the relational database driver for Pharo. Garage provides a
common API to connect with several database servers in a coherent way
(JDBC like). Along with Garage, we provide implementations of several
database drivers.
keywords: api database drivers
## GarageGlorp
This configuration loads the Garage database drivers along with the
Glorp Object-Relational Mapper. It is a convenience configuration used
to load both projects using a single config.
keywords: database driver orm persistence
## Gettext
Gettext is an implementaion of https://www.gnu.org/software/gettext,
the standard l17n package.
keywords: gettext i18n internationalization l10n localization
## Ghost
nil
## GitFileTree
GitFileTree is an integration of Git commands below Monticello,
allowing a very simple and powerfull integration with a git repository
for tracking Monticello packages, allowing for example one to work
from github.com (including with configurations support) without any
use of the command line and with perfect support of whatever is the
structure of the project under git.
Works with any possible organisation of the git repository related to
the package (single language, multi language, single package, multiple
packages, single remote repo, multiple remote repositories, branches,
you name it).
GitFileTree: is integrated into FileTree, but not easily available.
This configuration allow for a one step loading with the dependencies.
keywords: FileTree Monticello OSProcess OSSubprocess Packages Pharo5 Pharo6 git
## GitHubAPI
A GitHub API Wrapper for Pharo to easily access informations from
GitHub right from your Pharo image.
keywords: api git github
## GitHubcello
Have it happened to you that you have your project on GitHub and it
has a baseline but now you have to write down the Metacello script to
load it? Not any more! Simply paste your repo URI into GTSpotter, wait
a bit, select the baseline you want to load, and you're done!
https://github.com/Uko/GitHubcello#githubcello-
keywords: github metacello spotter
## GlorpSQLite
GlorpSQLite is the integration of Glorp with SQLite. This
configuration loads UDBC, which contains SQLite, then loads Glorp.
Once GlorpSQLite is loaded, provided Pharo can find the SQLite
so/dylib/dll file on your system, start Test Runner and run the tests.
keywords: database orm persistence relational
## Grafoscopio
Grafoscopio is a tool to create interactive notebooks and
documentation for computer narratives and data visualization.
They are structured as outlines/trees containing textual and code
nodes that can be exported to several formats: LaTeX, HTML
and pdf (via pandoc).
It can be used in several endeavors like: reproductible open research
and science, data journalism, data activism among others
keywords: data-activism data-journalism data-science
data-visualization documentation interactive-notebook markdown markup
open-data open-research open-science reproducible-research
## Grease
The Grease Portability Library
keywords: framework portability
## Grid
This package provides a grid (2D array) implementation.
keywords: 2D-array collection container matrix
## Hashids
Hashids allow you to create URL friendly ids from sequential integer
ids. NB it is should not be considered as encryption but it does
provide a lightweight obfuscation of the underlying id.
https://github.com/alacap/hashids-pharo
keywords: hashing
## Hubcap
nil
## INIFile
A Parser for .INI files (as usually used on Windows)
keywords: configurations ini settings windows
## Iceberg
Iceberg is a set of tools that allow one to handle git repositories
directly from a Pharo image.
keywords: git vcs version control
## LightPhaser
nil
## MacroRecorder
MacroRecorder is a tool that allows the developer to
(i) record a sequence of transformations while they are applied a
first time, either manually or with the assistance of refactoring
tools;
(ii) store and parameterize the transformations to allow their
generalization; and
(iii) apply automatically the sequence of transformations afterwards
on different code locations.
For the last step, the developer could explicitly point to the
entities to transform.
keywords: code change code manipulation programming by demonstration
source code transformations
## MatchTool
MatchTool is a simple UI for experimenting with the matching
functionality of pattern code.
MatchTool can be open from the World Menu > Tools category. More
information can be read from within the tool by pressing help button.
keywords: code inspect match pattern rewrite rules
## MessageFlowBrowser
A message flow browse to browser senders, implementors and messages of
methods in a single window and folow the message flow
keywords: browser messageflow methods tools
## Mocketry
Mocketry is mock objects framework. It provides simplest way to stub
any message to any object and to verify any occurred behaviour.
mock := Mock new.
mock stub someMessage willReturn: 1000.
mock someMessage should be: 1000.
mock should receive someMessage.
rect stub width willReturn: 1000.
rect area should be: 3000 "area = width * height".
rect should receive width.
keywords: BDD SUnit TDD framework mocks
## MooseProject
MooseProject is a library to store many differents versions for a
project. It will persist everything on the disk and allow you easily
to recover the model associated to the desired version
keywords: Moose project version
## Mustache
nil
## NPMJS
Spotter search of NPM packages
keywords: javascript nodejs
## Neo4reSt
Neo4reSt is a rest client of Neo4j graph database. (http://neo4j.org/)
- Raw rest client
- Wrapper client which handles JSON well
- Object level wrapper classes (Node, Relationship, Property)
keywords: Neo4j database graph persistence
## NeoCSV
CSV (Comma Separated Values) is a popular data-interchange format.
NeoCSV is an elegant and efficient standalone framework to read and
write CSV converting to or from Smalltalk objects.
keywords: ascii comma-separated-values csv fields format input output
records rfc-4180 tab-separated-values tabular-data text tsv
## NeoJSON
JSON (JavaScript Object Notation) is a popular data-interchange
format. NeoJSON is an elegant and efficient standalone Smalltalk
framework to read and write JSON converting to or from Smalltalk
objects.
keywords: encoding format input javascript json output serialization text
## Nginx
Utility project to work with nginx from Pharo image (Windows only so far)
keywords: nginx server web windows
## OSLinuxCentOS
A part of the OS-XXX series to easier work with native operating
system platforms. Here for using CentOS Linux environments in Pharo.
keywords: centos linux native os unix
## OSLinuxUbuntu
A part of the OS-XXX series to easier work with native operating
system platforms. Here for using Ubuntu Linux environments in Pharo.
keywords: linux native os ubuntu unix
## OSOSX
nil
## OSProcess
nil
## OSRaspbian
A part of the OS-XXX series to easier work with native operating
system platforms. Here for using Raspbian environments in Pharo.
keywords: linux native os raspbian unix
## OSUnix
A part of the OS-XXX series to easier work with native operating
system platforms. Here for using Unix environments in Pharo.
keywords: native os unix
## OSWindows
API wrappers and tools for the Windows operating system
keywords: api native win32 windows
## ObjectStatistics
ObjectStatistics is tool to analyse set of objects by computing
different kind of metrics and look at them from different angles.
Imaging that we have collection of message sends and we want to know
number of message sends in dimension of receiver, receiver class and
message selector. We have different angles to look at this data: from
receiver class to selector and receiver or from selector to receiver
class and receiver or any other combination.
We also could analyze different kind of metrics which could be
computed on given objects. It could be number of unique receivers,
execution time, executed lines of code, etc.
This package implements computation of object statistics over declared
metrics and dimensions space.
stat := ObjectStatistics.
stat
countAllAs: 'sends';
countDifferent: [ :message | message receiver ] as: 'instances'.
stat
dimension: [ :message | message receiver class ] named: 'classes';
with: [
stat dimension: [ :message | message selector ] named: 'msgs';
with: [
stat
dimension: [ :r | r ] named: 'receivers';
ignoreMetrics: #('instances')]];
dimension: [ :message | message selector ] named: 'msgs';
with: [
stat dimension: [ :message | message receiver class ] named: 'classes';
with: [
stat
dimension: [ :r | r ] named: 'receivers']].
stat accumulateAll: messageSends.
keywords: analysis framework
## ObjectTravel
ObjectTravel implements traversal of full object graph. It enumerates
each reference in breadth-first direction and visit every reference
only once.
traveler moveToNextReference. "true".
traveler currentReference. "10"
traveler nextReference. "30"
traveler := ObjectTraveler on: #(10 20 30).
traveler nextReference "10"
traveler nextReference "20"
traveler replaceCurrentReferenceWith: #newReference.
keywords: objectsTraversal stream tool
## Octopus
A pharo tool that utilises Pillar library to process pillar text
copied to the clipboard and convert it to HTML
keywords: HTML markdown pillar
## OrderPreservingDictionary
This package has two ordered dictionary classes that behave like
OrderedDictionary and OrderedIdentityDictionary in Pharo but are
portable to Squeak and Gemstone, and other ordered dictionary classes
needed by XMLParser.
keywords: collection dictionary order-preserving ordered
## Orion
Orion is an interactive prototyping tool for reengineering, to
simulate changes and compare their impact on multiple versions of
software source code models.
keywords: Moose delta model versioning
## Pastell
Pastell is an add-on for XMLParser which adds some methods that make
navigation of an XML DOM tree much easier, it is a XMLPath-like
library.
keywords: xml xpath
## PharoSprint
The Pharo community regularly organize Pharo Sprint events. The Pharo
Sprint is a regular (monthly) event when developers and users meet
together to fix bugs. This usually takes place in a physical location,
but people are welcomed to participate from any place. This is a great
opportunity for novices to get involved and learn from experts!
For more information: http://bit.ly/SprintWeb and
http://pharo.org/contribute-events
keywords: Bug Discord FogBugz PharoSprint Sprint SprintDay
## Pillar
Pillar is a wiki-like syntax, its document model, a parser for it, and
a set of exporters (e.g., HTML, LaTeX, Markdown...). Pillar is
primarily used as the wiki syntax behind the *Pier
e.g., *the Enterprise Pharo book>http://books.pharo.org/*.
keywords: book document html latex markdown pier wiki
## PlotMorph
PlotMorph is a nice plotting system. It can plot multiple series with
different graphical attributes.
keywords: Morph UI graph plotting point series
## PolyMath
Tools for scientific computation in Smalltalk
keywords: ODE mathematics science
## Pomodoro
A pomodoro timer
keywords: GTD morphic pomodoro
## PunQLite
UnQLite binding for Pharo Smalltalk. UnQLite is a fast, lightweight,
portable, embedded KVS with a simple scripting engine (Jx9). By using
PunQLite, you can store/load lots of data as if just using a normal
Dictionary.
PunQLite uses UnQLite shared library. If you have no time to compile,
just get pre-built binary from the github project page
(https://github.com/mumez/PunQLite).
keywords: KVS NoSQL UFFI UnQLite database persistence
## QualityAssistant
Hi, I'm your personal quality assistant. I run Smalllint rules on the
code that you modify, and notify you about quality changes.
https://github.com/Uko/QualityAssistant#qualityassistant
keywords: automatic critics quality smallint validation
## QuickAccess
A manager for scripts with Quick access.
keywords: fun web
## RProjectConnector
nil
## RediStick
RediStick is a redis client which supports auto-reconnecting.
- Minimum dependencies (runs on Pharo without other libraries)
- Supports unicode strings
keywords: KVS NoSQL Redis database persistence
## ReferenceFinder
Finds reference paths between objects to help find memory leaks.
keywords: memory objects references tracing
## RegexTools
A tool to test and verify regular expressions
keywords: regex utilities
## Roassal2
Roassal is an agile visualization engine. Roassal graphically renders
objects using short and expressive Smalltalk expressions. A large set
of interaction facilities are provided for a better user experience.
Painting, brushing, interconnecting, zooming, drag and dropping will
just make you more intimate with any arbitrary object model.
keywords: charting data visualization
## SRT2VTT
This package convert SRT to VTT (subtitles for videos plugins)
keywords: browser plugin srt videos vtt web
## ScriptManager
A simple tool to manage scripts. Still based on Morphic. We would
recommend users to switch to QuickAccess which is a better script
manager than this tool.
keywords: fun script
## Seaside3
The framework for developing sophisticated web applications in
Smalltalk. See http://www.seaside.st
keywords: framework seaside web
## SimilarityFlooding
This project is an implementation of a FAMIX model difference
algorithm based on Similarity Flooding algorithm as defined by Sergey
A versatile graph matching algorithm and its application to schema
matching' and in the technical report associated.
Check the github repository for documentation
[https://github.com/juliendelplanque/SFDiff].
keywords: FAMIX SFDiff difference model similarity similarity flooding
## Spy2
Spy2 is a profiling framework. You can easily create profilers. You
can have a look at a description
http://bergel.eu/download/papers/Berg10f-Spy.pdf
The Hapao test coverage tool is included.
keywords: Hapao Memory Performance Profiling Roassal Spy
## Stamp
Stamp is an implementation of STOMP 1.2, a protocol to access message
oriented middleware like RabbitMQ.
keywords: client format messaging middleware queueing rabbitmq stomp
## StateSpecs
StateSpecs is object state specification framework. It describes
particular object states by first class specifications. For example
there are SpecOfCollectionItem, SpecOfObjectClass and
SpecOfObjectSuperclass. They can match and validate given objects. In
case when object is not satisfied specification you will get failure
result with detailed information about problem.
spec matches: anObject.
spec validate: anObject. "it returns validation result which can be
success or particular failure"
To easily create specifications and validate objects by them
StateSpecs provides two kind DSL: should expressions and "word"
classes.
1 should be: 2
1 should equal: 10
Kind of: Number
Instance of: String
Equal to: 'test'
keywords: BDD SUnit TDD framework validation
## Ston
Smalltalk Object Notation (STON) is a lightweight, text-based,
human-readable data interchange format for class-based object-oriented
languages like Smalltalk. It can be used to serialize domain level
objects, either for persistency or network transport. As its name
suggests, it is based on JSON (Javascript Object Notation). It adds
symbols as a primitive value, class tags for object values and
references.
keywords: encoding format input json output serialization ston text
## SublimishTheme
A dark theme for Pharo. If you like Sublime then you'll like Sublimish theme.
Project main page: *https://github.com/sebastianconcept/SublimishTheme*
keywords: GUI IDE
## Tarantalk
Tarantalk is a Tarantool (Lua with DBMS) connector.
- Store/load tuples.
- Find tuples by multiple indices
- Evaluate Lua programs
keywords: KVS Lua NoSQL Tarantool Tuple database persistence
## Tarantube
Tarantool message queue wrapper based on Tarantalk.
- Supporting FIFO queue with priority, TTL, TTR, delay and sub queues.
- Need to install Tarantool + Tarantool queue module
(https://github.com/tarantool/queue)
keywords: Lua MQ NoSQL Tarantalk Tarantool queue
## Tealight
Tealight is a project defining a few extensions to the Teapot
framework to make the (tea) time you spend with the Pharo Teapot
system even easier..
keywords: api git github
## Teapot
Teapot is micro web framework on top of the Zinc HTTP components, that
focuses on simplicity and ease of use.
keywords: framework http micro sinatra web
## TestsUsageAnalyser
nil
## Trie
This package provides a trie implementation (as developed by Benoit
St-Jean. See https://en.wikipedia.org/wiki/Trie
keywords: collection containers retrieval trie
## Units
Units is a simple and powerful library to manage different units.
keywords: Comparison Meter Points Units
## VMProfiler
VMProfiler is a sampling profiler tracking down where the time is
spent in the VM when executing a specific portion of code. It computes
where the time is spent in the compiled C code of the VM, in the VM
plugins and in the native functions.
The results are available as a statistical report.
keywords: cog jit profiling virtual machine
## VerStix
A Vert.x TCP EventBus client for Pharo Smalltalk.
- interact with various Vert.x components (Web, Auth, DB, MQ, etc).
- interact with other Smalltalk images
- interact with various languages which support Vert.x EventBus
keywords: microservices network vertx
## VistaCursors
Provide a better looking cursor (similar to Windows Vista).
keywords: cursor theming ui windows
## VoyageMongo
Voyage-Mongo is an object persistence layer made for easy the work
with *MongoDB>http://www.mongodb.org*. It is an "ODM" (Object-Document
Mapper), in the same spirit of the ORMs for relational approaches.
keywords: database mongodb nosql persistence
## VoyageUnqlite
Voyage-UnQLite is an object persistence layer made for easy the work
with *UnQLite>https://unqlite.org*. It is an "ODM" (Object-Document
Mapper), in the same spirit of the ORMs for relational approaches.
keywords: database nosql persistence unqlite
## WKHTML2PDF
Render HTML into PDF and various image formats using the (external) Qt
WebKit rendering engine directly from Pharo.
keywords: html pdf reporting
## WebBrowser
General and platform independent WebBrowser access for Pharo 4.0
onwards based on NativeBoost, for Pharo 5.0 onwards based on UFFI
keywords: internet platform url utility web webbrowser
## XMI
A XMI wrapper for Pharo to easily access XML Metadata informations.
keywords: omg uml xmi xml
## XMLParser
XMLParser provides validating SAX and DOM parsers for well-formed XML
documents on Pharo, Squeak, and Gemstone. It also provides a DOM API
for manipulating documents, namespace support, and an optional
XMLWriter for writing documents. Validation and namespace checking are
enabled by default, but not resolution of external entities.
http://www.w3.org/TR/REC-xml/
http://www.w3.org/TR/REC-xml-names/
http://www.w3.org/TR/xml-id/
http://www.w3.org/TR/xmlbase/
https://www.w3.org/TR/xml-c14n
keywords: DOM DTD HTML SAX XHTML XML document markup parser validation web
## XMLParserHTML
XMLParserHTML provides SAX and DOM parsers for HTML that convert
possibly malformed HTML into well-formed XML.
keywords: DOM HTML SAX document markup parser web
## XMLParserStAX
XMLParserStAX is a pull parser for XMLParser that provides a streaming
interface for "pulling" XML events and also supports pull-style DOM
parsing for dynamically converting events into DOM nodes.
keywords: DOM DTD HTML StAX XHTML XML XMLPullParser document markup
parser pull pull-parser validation web
## XMLWriter
XMLWriter allows you to generate well-formed XML documents using an
API based on Seaside's canvas and tag brushes so all tags will be
nested properly and not left unclosed.
keywords: HTML XHTML XML document markup web writer
## XPath
An XPath library for Pharo, Squeak, and Gemstone leveraging the XML
parsing capabilities of XMLParser. Supports XPath 1.0 syntax with
extensions.
keywords: DOM HTML XHTML XML XPath document markup parser query web
## ZTimestamp
The ZTimestamp project groups a number of classes that form an
addition/alternative to DateAndTime/Timestamp. The core ZTimestamp
class represents a point in time, with second precision and always in
the UTC/GTM/Zulu timezone. It is faster and smaller. ZTimestampFormat
is a formatter and parser that is example based. ZTimezone uses the
standard Olsone timezone database to compute the offset for local time
at specific points in time for a specified timezone.
ZTimestampSNTPClient is an SNTP client to check the local clock
against network time servers. This project is small and has no further
dependencies. It runs in Pharo 2 and 3.
keywords: chronology date formatting parsing sntp time timestamp timezone
## ZincHTTPComponents
Zinc HTTP Components is an open source Smalltalk framework to deal
with HTTP. It models most concepts of HTTP and its related standards
and offers both client and server functionality. One of its key goals
is to offer understandability (Smalltalk’s design principle number
one). Anyone with a basic understanding of Smalltalk and the HTTP
principles should be able to understand what is going on and learn, by
looking at the implementation.
keywords: character-encoding client http internet mime-type networking
request response server url
# Pharo 6 catalog list - description is missing
- CommandShell
- FamixDiff
- Ghost
- Hubcap
- LightPhaser
- Mustache
- OSOSX
- OSProcess
- RProjectConnector
- TestsUsageAnalyser
Post by H. Hirzel
This code snippet below gives a list of all Pharo 6.0 catalog entries
CatalogProvider default retrieveProjects select: [ :x |
(x at: 'repositoryUrl') =
'http://smalltalkhub.com/mc/Pharo/MetaRepoForPharo60/main' ].
Post by Dimitris Chloupis
absolutely , I will add Torsten's wonderful wiki and Grafoscopio details,
keep them coming :)
Anything I miss, please alert me as Hizrel just did , I want to link to
anything Pharo related ,lets bring everything under one roof ;)
Post by H. Hirzel
And add the overview to Grafoscopio
Aug 20, 2017
[Pharo-users] [Ann] [Grafoscopio] New release with major improvements
Post by H. Hirzel
......
Post by Dimitris Chloupis
you make any submission you want here in this thread and I will port
it
to
wiki with copy paste and a bit of structuring :)
Dimitris,
Could you please do add a link in
https://github.com/SquareBracketAssociates/PharoWiki
to Torsten's wiki
http://wiki.astares.com/pharo
It has over 500 pages with good content I was not aware of....
Thanks,
Hannes
Dimitris Chloupis
2017-08-22 18:18:00 UTC
Permalink
Ok I restructured the wiki , giving it a table of contents.

Added Pharo 6 Catalog projects
Added PettitParser2
Added a sections for How tos , and a couple of them
Added a news section
Added a link to Grafoscopio homepage at its Catalaog section
Added a wikis section with a link to Astares Pharo wiki

Keep your suggestions coming , thank you Hirzel

https://squarebracketassociates.github.io/PharoWiki/
Post by H. Hirzel
Please add the reference to the PetitParser2 book
https://kursjan.github.io/petitparser2/pillar-book/build/book.html
Post by H. Hirzel
And this one produces a catalog list in markdown format
"Produce a list of Pharo 6 catalog entries (tag: 'Pharo 6.0')"
| catalog |
catalog := CatalogProvider default retrieveProjects select: [ :x |
(x at: 'repositoryUrl') =
'http://smalltalkhub.com/mc/Pharo/MetaRepoForPharo60/main' ].
Transcript show: '# Pharo 6 catalog list'; cr.
(catalog asSortedCollection: [ :a :b | (a at: 'name') < (b at: 'name')
]) do: [ :entry | Transcript show: '## ', (entry at: 'name') ; cr;
show: (entry at: 'description'); cr;cr.
Transcript show: 'keywords: '.
keyword; space ].
Transcript cr; cr].
Transcript show: '# Pharo 6 catalog list - description is missing'; cr.
(catalog asSortedCollection: [ :a :b | (a at: 'name') < (b at: 'name') ])
do: [:entry | (entry at: 'description') ifNil: [ Transcript show: '-
', (entry at: 'name'); cr ]
].
................................................................................................
Post by H. Hirzel
# Pharo 6 catalog list
## Animation
Adds a delay operator turning any message send into a smooth transition.
keywords: animation fun time
## Artefact
Artefact is a library to generate PDF documents. It provides a
document model and support the generation of PDF
keywords: PDF document layout
## AstaresDistribution
Several Pharo goodies like Pomodoro, DesktopManager, QuickAccess,
HubCap, ScriptManager, ... written by Torsten Bergmann (astares.com)
bundled for easy installation
keywords: custom distribution goodies pharo
## Atlas
A Python bridge (IPC - stream sockets) for Pharo, allowing Pharo to
use Python libraries , mix with Python code and vice versa
keywords: Atlas IPC atlas pharo python sockets
## BitmapCharacterSet
BitmapCharacterSet is a set for characters that uses a bitmap for
storing wide characters and an array of truth values for byte
characters. Used by XMLParser.
keywords: character collection set unicode
## Bootstrap
"Bootstrap for Seaside" is a project combining Seaside and Twitter
Bootstrap and easily use them to write professional looking web
applications.
keywords: Bootstrap HTML Seaside query web
## Bugzilla
Pharo wrapper for Bugzilla REST API
keywords: api bugzilla rest
## CPPBridge
CPP is a library that allows Pharo to share memory with a C++
application. This means that both can share the exact same data and
modify it. This also can allow Pharo and C++ to exacute one another
library and code. Example provided
keywords: ++ ++ C IPC bridge c cpp file mapped memory shared
## Calypso
Calypso is a new system browser based on new navigation model
keywords: IDE systemBrowser
## CheatSheet
Pharo Cheat Sheet.
Project main page: *
http://www.smalltalkhub.com/#!/~PharoExtras/CheatSheet*
Post by H. Hirzel
keywords: examples syntax
## ChronosManager
ChronosManager is a time managment tool based on the pomodoro
technique offering a stopwatch and timer for keeping track of time
with tasks and goals
keywords: ChronosManager managment pomodoro time
## Citezen
Citezen is a library to parse, query and manage bibtex scientific citations.
keywords: bibtex latex parser printer query
## CommandShell
nil
## Commander
Commander models application actions as first class objects.
Every action is implemented as separate command class (subclass of
CmdCommand) with #execute method and all state required for execution.
Commands are reusable objects and applications provide various ways to
access them. Such information is attached to command classes as
- CmdShortcutCommandActivator
- CmdContextMenuCommandActivator
- CmdDragAndDropCommandActivator
Activators are declared in command class side methods marked with
pragma #commandActivator. For example following method will allow
RenamePackageCommand to be executed by shortcut in possible system
RenamePackageCommand class>>packageBrowserShortcutActivator
<commandActivator>
PackageBrowserContext
Post by H. Hirzel
RenamePackageCommand class>>packageBrowserMenuActivator
<commandActivator>
^CmdContextMenuCommandActivator byRootGroupItemFor: PackageBrowserContext
Activators are always declared with application context where they can
be applied (PackageBrowserContext in example). Application should
provide such contexts as subclasses of CmdToolContext with information
about application state. Every widget can bring own context to
interact with application as separate tool. For example system browser
shows multiple panes which provide package context, class context and
method context. And depending on context browser shows different menu
and provides different shortcuts
keywords: command command pattern tools
## Community
Community is a project to add some world menues to easily access some
community pages
keywords: community pharo
## Complex
Math-Complex brings back to Pharo the complex numbers like (1+2i)
which used to be in Squeak Kernel.
keywords: complex math number
## DacapoEnergyConsumption
This project run the Dacapo benchmarks, and monitor the energy
consumption of the CPU. It is for research purposes.
keywords: consumption energy java
## DarkMetalTheme
An alternative to DarkTheme, DarkMetalTheme offers "metalic" tonalities
:)
Post by H. Hirzel
keywords: theme ui
## DebuggerCritiques
Add inlined critiques into Pharo debugger
keywords: critiques debugger smallLint
## DesktopManager
A goodie to be able to manage multiple desktops in Pharo.
keywords: desktop goodie pharo tools
## DiscordSt
DiscordSt is a library for Discord service, see https://discordapp.com
for basic information about Discord and
https://discordapp.com/developers/docs/intro for developer
information.
The stable version supports Discord Webhooks. See
https://github.com/JurajKubelka/DiscordSt for examples.
keywords: api chat client discord rest web webhook
## EventRecorder
Record and replay screen events.
keywords: recording screen
## FamixDiff
nil
## FlatQA
Hi, I'm your personal quality assistant. I run Smalllint rules on the
code that you modify, and notify you about quality changes.
https://github.com/Uko/QualityAssistant#qualityassistant
keywords: automatic critics quality smallint validation
## FogBugz
Access to FogBugz from within Pharo environment.
keywords: fun web
## Garage
Garage is the relational database driver for Pharo. Garage provides a
common API to connect with several database servers in a coherent way
(JDBC like). Along with Garage, we provide implementations of several
database drivers.
keywords: api database drivers
## GarageGlorp
This configuration loads the Garage database drivers along with the
Glorp Object-Relational Mapper. It is a convenience configuration used
to load both projects using a single config.
keywords: database driver orm persistence
## Gettext
Gettext is an implementaion of https://www.gnu.org/software/gettext,
the standard l17n package.
keywords: gettext i18n internationalization l10n localization
## Ghost
nil
## GitFileTree
GitFileTree is an integration of Git commands below Monticello,
allowing a very simple and powerfull integration with a git repository
for tracking Monticello packages, allowing for example one to work
from github.com (including with configurations support) without any
use of the command line and with perfect support of whatever is the
structure of the project under git.
Works with any possible organisation of the git repository related to
the package (single language, multi language, single package, multiple
packages, single remote repo, multiple remote repositories, branches,
you name it).
GitFileTree: is integrated into FileTree, but not easily available.
This configuration allow for a one step loading with the dependencies.
keywords: FileTree Monticello OSProcess OSSubprocess Packages Pharo5
Pharo6
Post by H. Hirzel
git
## GitHubAPI
A GitHub API Wrapper for Pharo to easily access informations from
GitHub right from your Pharo image.
keywords: api git github
## GitHubcello
Have it happened to you that you have your project on GitHub and it
has a baseline but now you have to write down the Metacello script to
load it? Not any more! Simply paste your repo URI into GTSpotter, wait
a bit, select the baseline you want to load, and you're done!
https://github.com/Uko/GitHubcello#githubcello-
keywords: github metacello spotter
## GlorpSQLite
GlorpSQLite is the integration of Glorp with SQLite. This
configuration loads UDBC, which contains SQLite, then loads Glorp.
Once GlorpSQLite is loaded, provided Pharo can find the SQLite
so/dylib/dll file on your system, start Test Runner and run the tests.
keywords: database orm persistence relational
## Grafoscopio
Grafoscopio is a tool to create interactive notebooks and
documentation for computer narratives and data visualization.
They are structured as outlines/trees containing textual and code
nodes that can be exported to several formats: LaTeX, HTML
and pdf (via pandoc).
It can be used in several endeavors like: reproductible open
research
Post by H. Hirzel
and science, data journalism, data activism among others
keywords: data-activism data-journalism data-science
data-visualization documentation interactive-notebook markdown markup
open-data open-research open-science reproducible-research
## Grease
The Grease Portability Library
keywords: framework portability
## Grid
This package provides a grid (2D array) implementation.
keywords: 2D-array collection container matrix
## Hashids
Hashids allow you to create URL friendly ids from sequential integer
ids. NB it is should not be considered as encryption but it does
provide a lightweight obfuscation of the underlying id.
https://github.com/alacap/hashids-pharo
keywords: hashing
## Hubcap
nil
## INIFile
A Parser for .INI files (as usually used on Windows)
keywords: configurations ini settings windows
## Iceberg
Iceberg is a set of tools that allow one to handle git repositories
directly from a Pharo image.
keywords: git vcs version control
## LightPhaser
nil
## MacroRecorder
MacroRecorder is a tool that allows the developer to
(i) record a sequence of transformations while they are applied a
first time, either manually or with the assistance of refactoring
tools;
(ii) store and parameterize the transformations to allow their
generalization; and
(iii) apply automatically the sequence of transformations
afterwards
Post by H. Hirzel
on different code locations.
For the last step, the developer could explicitly point to the
entities to transform.
keywords: code change code manipulation programming by demonstration
source code transformations
## MatchTool
MatchTool is a simple UI for experimenting with the matching
functionality of pattern code.
MatchTool can be open from the World Menu > Tools category. More
information can be read from within the tool by pressing help button.
keywords: code inspect match pattern rewrite rules
## MessageFlowBrowser
A message flow browse to browser senders, implementors and messages of
methods in a single window and folow the message flow
keywords: browser messageflow methods tools
## Mocketry
Mocketry is mock objects framework. It provides simplest way to stub
any message to any object and to verify any occurred behaviour.
mock := Mock new.
mock stub someMessage willReturn: 1000.
mock someMessage should be: 1000.
mock should receive someMessage.
rect stub width willReturn: 1000.
rect area should be: 3000 "area = width * height".
rect should receive width.
keywords: BDD SUnit TDD framework mocks
## MooseProject
MooseProject is a library to store many differents versions for a
project. It will persist everything on the disk and allow you easily
to recover the model associated to the desired version
keywords: Moose project version
## Mustache
nil
## NPMJS
Spotter search of NPM packages
keywords: javascript nodejs
## Neo4reSt
Neo4reSt is a rest client of Neo4j graph database. (http://neo4j.org/)
- Raw rest client
- Wrapper client which handles JSON well
- Object level wrapper classes (Node, Relationship, Property)
keywords: Neo4j database graph persistence
## NeoCSV
CSV (Comma Separated Values) is a popular data-interchange format.
NeoCSV is an elegant and efficient standalone framework to read and
write CSV converting to or from Smalltalk objects.
keywords: ascii comma-separated-values csv fields format input output
records rfc-4180 tab-separated-values tabular-data text tsv
## NeoJSON
JSON (JavaScript Object Notation) is a popular data-interchange
format. NeoJSON is an elegant and efficient standalone Smalltalk
framework to read and write JSON converting to or from Smalltalk
objects.
keywords: encoding format input javascript json output serialization text
## Nginx
Utility project to work with nginx from Pharo image (Windows only so far)
keywords: nginx server web windows
## OSLinuxCentOS
A part of the OS-XXX series to easier work with native operating
system platforms. Here for using CentOS Linux environments in Pharo.
keywords: centos linux native os unix
## OSLinuxUbuntu
A part of the OS-XXX series to easier work with native operating
system platforms. Here for using Ubuntu Linux environments in Pharo.
keywords: linux native os ubuntu unix
## OSOSX
nil
## OSProcess
nil
## OSRaspbian
A part of the OS-XXX series to easier work with native operating
system platforms. Here for using Raspbian environments in Pharo.
keywords: linux native os raspbian unix
## OSUnix
A part of the OS-XXX series to easier work with native operating
system platforms. Here for using Unix environments in Pharo.
keywords: native os unix
## OSWindows
API wrappers and tools for the Windows operating system
keywords: api native win32 windows
## ObjectStatistics
ObjectStatistics is tool to analyse set of objects by computing
different kind of metrics and look at them from different angles.
Imaging that we have collection of message sends and we want to know
number of message sends in dimension of receiver, receiver class and
message selector. We have different angles to look at this data: from
receiver class to selector and receiver or from selector to receiver
class and receiver or any other combination.
We also could analyze different kind of metrics which could be
computed on given objects. It could be number of unique receivers,
execution time, executed lines of code, etc.
This package implements computation of object statistics over declared
metrics and dimensions space.
stat := ObjectStatistics.
stat
countAllAs: 'sends';
'instances'.
Post by H. Hirzel
stat
'classes';
Post by H. Hirzel
with: [
stat dimension: [ :message | message selector ]
named: 'msgs';
Post by H. Hirzel
with: [
stat
'receivers';
Post by H. Hirzel
ignoreMetrics: #('instances')]];
dimension: [ :message | message selector ] named: 'msgs';
with: [
stat dimension: [ :message | message receiver
class ] named: 'classes';
Post by H. Hirzel
with: [
stat
'receivers']].
Post by H. Hirzel
stat accumulateAll: messageSends.
keywords: analysis framework
## ObjectTravel
ObjectTravel implements traversal of full object graph. It enumerates
each reference in breadth-first direction and visit every reference
only once.
traveler moveToNextReference. "true".
traveler currentReference. "10"
traveler nextReference. "30"
traveler := ObjectTraveler on: #(10 20 30).
traveler nextReference "10"
traveler nextReference "20"
traveler replaceCurrentReferenceWith: #newReference.
keywords: objectsTraversal stream tool
## Octopus
A pharo tool that utilises Pillar library to process pillar text
copied to the clipboard and convert it to HTML
keywords: HTML markdown pillar
## OrderPreservingDictionary
This package has two ordered dictionary classes that behave like
OrderedDictionary and OrderedIdentityDictionary in Pharo but are
portable to Squeak and Gemstone, and other ordered dictionary classes
needed by XMLParser.
keywords: collection dictionary order-preserving ordered
## Orion
Orion is an interactive prototyping tool for reengineering, to
simulate changes and compare their impact on multiple versions of
software source code models.
keywords: Moose delta model versioning
## Pastell
Pastell is an add-on for XMLParser which adds some methods that make
navigation of an XML DOM tree much easier, it is a XMLPath-like
library.
keywords: xml xpath
## PharoSprint
The Pharo community regularly organize Pharo Sprint events. The Pharo
Sprint is a regular (monthly) event when developers and users meet
together to fix bugs. This usually takes place in a physical location,
but people are welcomed to participate from any place. This is a great
opportunity for novices to get involved and learn from experts!
For more information: http://bit.ly/SprintWeb and
http://pharo.org/contribute-events
keywords: Bug Discord FogBugz PharoSprint Sprint SprintDay
## Pillar
Pillar is a wiki-like syntax, its document model, a parser for it, and
a set of exporters (e.g., HTML, LaTeX, Markdown...). Pillar is
primarily used as the wiki syntax behind the *Pier
e.g., *the Enterprise Pharo book>http://books.pharo.org/*.
keywords: book document html latex markdown pier wiki
## PlotMorph
PlotMorph is a nice plotting system. It can plot multiple series with
different graphical attributes.
keywords: Morph UI graph plotting point series
## PolyMath
Tools for scientific computation in Smalltalk
keywords: ODE mathematics science
## Pomodoro
A pomodoro timer
keywords: GTD morphic pomodoro
## PunQLite
UnQLite binding for Pharo Smalltalk. UnQLite is a fast, lightweight,
portable, embedded KVS with a simple scripting engine (Jx9). By using
PunQLite, you can store/load lots of data as if just using a normal
Dictionary.
PunQLite uses UnQLite shared library. If you have no time to compile,
just get pre-built binary from the github project page
(https://github.com/mumez/PunQLite).
keywords: KVS NoSQL UFFI UnQLite database persistence
## QualityAssistant
Hi, I'm your personal quality assistant. I run Smalllint rules on the
code that you modify, and notify you about quality changes.
https://github.com/Uko/QualityAssistant#qualityassistant
keywords: automatic critics quality smallint validation
## QuickAccess
A manager for scripts with Quick access.
keywords: fun web
## RProjectConnector
nil
## RediStick
RediStick is a redis client which supports auto-reconnecting.
- Minimum dependencies (runs on Pharo without other libraries)
- Supports unicode strings
keywords: KVS NoSQL Redis database persistence
## ReferenceFinder
Finds reference paths between objects to help find memory leaks.
keywords: memory objects references tracing
## RegexTools
A tool to test and verify regular expressions
keywords: regex utilities
## Roassal2
Roassal is an agile visualization engine. Roassal graphically renders
objects using short and expressive Smalltalk expressions. A large set
of interaction facilities are provided for a better user experience.
Painting, brushing, interconnecting, zooming, drag and dropping will
just make you more intimate with any arbitrary object model.
keywords: charting data visualization
## SRT2VTT
This package convert SRT to VTT (subtitles for videos plugins)
keywords: browser plugin srt videos vtt web
## ScriptManager
A simple tool to manage scripts. Still based on Morphic. We would
recommend users to switch to QuickAccess which is a better script
manager than this tool.
keywords: fun script
## Seaside3
The framework for developing sophisticated web applications in
Smalltalk. See http://www.seaside.st
keywords: framework seaside web
## SimilarityFlooding
This project is an implementation of a FAMIX model difference
algorithm based on Similarity Flooding algorithm as defined by Sergey
A versatile graph matching algorithm and its application to schema
matching' and in the technical report associated.
Check the github repository for documentation
[https://github.com/juliendelplanque/SFDiff].
keywords: FAMIX SFDiff difference model similarity similarity flooding
## Spy2
Spy2 is a profiling framework. You can easily create profilers. You
can have a look at a description
http://bergel.eu/download/papers/Berg10f-Spy.pdf
The Hapao test coverage tool is included.
keywords: Hapao Memory Performance Profiling Roassal Spy
## Stamp
Stamp is an implementation of STOMP 1.2, a protocol to access message
oriented middleware like RabbitMQ.
keywords: client format messaging middleware queueing rabbitmq stomp
## StateSpecs
StateSpecs is object state specification framework. It describes
particular object states by first class specifications. For example
there are SpecOfCollectionItem, SpecOfObjectClass and
SpecOfObjectSuperclass. They can match and validate given objects. In
case when object is not satisfied specification you will get failure
result with detailed information about problem.
spec matches: anObject.
spec validate: anObject. "it returns validation result which can be
success or particular failure"
To easily create specifications and validate objects by them
StateSpecs provides two kind DSL: should expressions and "word"
classes.
1 should be: 2
1 should equal: 10
Kind of: Number
Instance of: String
Equal to: 'test'
keywords: BDD SUnit TDD framework validation
## Ston
Smalltalk Object Notation (STON) is a lightweight, text-based,
human-readable data interchange format for class-based object-oriented
languages like Smalltalk. It can be used to serialize domain level
objects, either for persistency or network transport. As its name
suggests, it is based on JSON (Javascript Object Notation). It adds
symbols as a primitive value, class tags for object values and
references.
keywords: encoding format input json output serialization ston text
## SublimishTheme
A dark theme for Pharo. If you like Sublime then you'll like Sublimish theme.
Project main page: *https://github.com/sebastianconcept/SublimishTheme*
keywords: GUI IDE
## Tarantalk
Tarantalk is a Tarantool (Lua with DBMS) connector.
- Store/load tuples.
- Find tuples by multiple indices
- Evaluate Lua programs
keywords: KVS Lua NoSQL Tarantool Tuple database persistence
## Tarantube
Tarantool message queue wrapper based on Tarantalk.
- Supporting FIFO queue with priority, TTL, TTR, delay and sub queues.
- Need to install Tarantool + Tarantool queue module
(https://github.com/tarantool/queue)
keywords: Lua MQ NoSQL Tarantalk Tarantool queue
## Tealight
Tealight is a project defining a few extensions to the Teapot
framework to make the (tea) time you spend with the Pharo Teapot
system even easier..
keywords: api git github
## Teapot
Teapot is micro web framework on top of the Zinc HTTP components, that
focuses on simplicity and ease of use.
keywords: framework http micro sinatra web
## TestsUsageAnalyser
nil
## Trie
This package provides a trie implementation (as developed by Benoit
St-Jean. See https://en.wikipedia.org/wiki/Trie
keywords: collection containers retrieval trie
## Units
Units is a simple and powerful library to manage different units.
keywords: Comparison Meter Points Units
## VMProfiler
VMProfiler is a sampling profiler tracking down where the time is
spent in the VM when executing a specific portion of code. It computes
where the time is spent in the compiled C code of the VM, in the VM
plugins and in the native functions.
The results are available as a statistical report.
keywords: cog jit profiling virtual machine
## VerStix
A Vert.x TCP EventBus client for Pharo Smalltalk.
- interact with various Vert.x components (Web, Auth, DB, MQ, etc).
- interact with other Smalltalk images
- interact with various languages which support Vert.x EventBus
keywords: microservices network vertx
## VistaCursors
Provide a better looking cursor (similar to Windows Vista).
keywords: cursor theming ui windows
## VoyageMongo
Voyage-Mongo is an object persistence layer made for easy the work
with *MongoDB>http://www.mongodb.org*. It is an "ODM" (Object-Document
Mapper), in the same spirit of the ORMs for relational approaches.
keywords: database mongodb nosql persistence
## VoyageUnqlite
Voyage-UnQLite is an object persistence layer made for easy the work
with *UnQLite>https://unqlite.org*. It is an "ODM" (Object-Document
Mapper), in the same spirit of the ORMs for relational approaches.
keywords: database nosql persistence unqlite
## WKHTML2PDF
Render HTML into PDF and various image formats using the (external) Qt
WebKit rendering engine directly from Pharo.
keywords: html pdf reporting
## WebBrowser
General and platform independent WebBrowser access for Pharo 4.0
onwards based on NativeBoost, for Pharo 5.0 onwards based on UFFI
keywords: internet platform url utility web webbrowser
## XMI
A XMI wrapper for Pharo to easily access XML Metadata informations.
keywords: omg uml xmi xml
## XMLParser
XMLParser provides validating SAX and DOM parsers for well-formed XML
documents on Pharo, Squeak, and Gemstone. It also provides a DOM API
for manipulating documents, namespace support, and an optional
XMLWriter for writing documents. Validation and namespace checking are
enabled by default, but not resolution of external entities.
http://www.w3.org/TR/REC-xml/
http://www.w3.org/TR/REC-xml-names/
http://www.w3.org/TR/xml-id/
http://www.w3.org/TR/xmlbase/
https://www.w3.org/TR/xml-c14n
keywords: DOM DTD HTML SAX XHTML XML document markup parser validation
web
Post by H. Hirzel
## XMLParserHTML
XMLParserHTML provides SAX and DOM parsers for HTML that convert
possibly malformed HTML into well-formed XML.
keywords: DOM HTML SAX document markup parser web
## XMLParserStAX
XMLParserStAX is a pull parser for XMLParser that provides a streaming
interface for "pulling" XML events and also supports pull-style DOM
parsing for dynamically converting events into DOM nodes.
keywords: DOM DTD HTML StAX XHTML XML XMLPullParser document markup
parser pull pull-parser validation web
## XMLWriter
XMLWriter allows you to generate well-formed XML documents using an
API based on Seaside's canvas and tag brushes so all tags will be
nested properly and not left unclosed.
keywords: HTML XHTML XML document markup web writer
## XPath
An XPath library for Pharo, Squeak, and Gemstone leveraging the XML
parsing capabilities of XMLParser. Supports XPath 1.0 syntax with
extensions.
keywords: DOM HTML XHTML XML XPath document markup parser query web
## ZTimestamp
The ZTimestamp project groups a number of classes that form an
addition/alternative to DateAndTime/Timestamp. The core ZTimestamp
class represents a point in time, with second precision and always in
the UTC/GTM/Zulu timezone. It is faster and smaller. ZTimestampFormat
is a formatter and parser that is example based. ZTimezone uses the
standard Olsone timezone database to compute the offset for local time
at specific points in time for a specified timezone.
ZTimestampSNTPClient is an SNTP client to check the local clock
against network time servers. This project is small and has no further
dependencies. It runs in Pharo 2 and 3.
keywords: chronology date formatting parsing sntp time timestamp timezone
## ZincHTTPComponents
Zinc HTTP Components is an open source Smalltalk framework to deal
with HTTP. It models most concepts of HTTP and its related standards
and offers both client and server functionality. One of its key goals
is to offer understandability (Smalltalk’s design principle number
one). Anyone with a basic understanding of Smalltalk and the HTTP
principles should be able to understand what is going on and learn, by
looking at the implementation.
keywords: character-encoding client http internet mime-type networking
request response server url
# Pharo 6 catalog list - description is missing
- CommandShell
- FamixDiff
- Ghost
- Hubcap
- LightPhaser
- Mustache
- OSOSX
- OSProcess
- RProjectConnector
- TestsUsageAnalyser
Post by H. Hirzel
This code snippet below gives a list of all Pharo 6.0 catalog entries
CatalogProvider default retrieveProjects select: [ :x |
(x at: 'repositoryUrl') =
'http://smalltalkhub.com/mc/Pharo/MetaRepoForPharo60/main' ].
Post by Dimitris Chloupis
absolutely , I will add Torsten's wonderful wiki and Grafoscopio details,
keep them coming :)
Anything I miss, please alert me as Hizrel just did , I want to link to
anything Pharo related ,lets bring everything under one roof ;)
Post by H. Hirzel
And add the overview to Grafoscopio
Aug 20, 2017
[Pharo-users] [Ann] [Grafoscopio] New release with major improvements
Post by H. Hirzel
......
Post by Dimitris Chloupis
you make any submission you want here in this thread and I will
port
Post by H. Hirzel
Post by H. Hirzel
Post by Dimitris Chloupis
Post by H. Hirzel
Post by H. Hirzel
Post by Dimitris Chloupis
it
to
wiki with copy paste and a bit of structuring :)
Dimitris,
Could you please do add a link in
https://github.com/SquareBracketAssociates/PharoWiki
to Torsten's wiki
http://wiki.astares.com/pharo
It has over 500 pages with good content I was not aware of....
Thanks,
Hannes
Stephane Ducasse
2017-08-22 19:27:48 UTC
Permalink
You should add the script that generate the list of catalog items so
that we can update it.

On Tue, Aug 22, 2017 at 8:18 PM, Dimitris Chloupis
Post by Dimitris Chloupis
Ok I restructured the wiki , giving it a table of contents.
Added Pharo 6 Catalog projects
Added PettitParser2
Added a sections for How tos , and a couple of them
Added a news section
Added a link to Grafoscopio homepage at its Catalaog section
Added a wikis section with a link to Astares Pharo wiki
Keep your suggestions coming , thank you Hirzel
https://squarebracketassociates.github.io/PharoWiki/
Post by H. Hirzel
Please add the reference to the PetitParser2 book
https://kursjan.github.io/petitparser2/pillar-book/build/book.html
Post by H. Hirzel
And this one produces a catalog list in markdown format
"Produce a list of Pharo 6 catalog entries (tag: 'Pharo 6.0')"
| catalog |
catalog := CatalogProvider default retrieveProjects select: [ :x |
(x at: 'repositoryUrl') =
'http://smalltalkhub.com/mc/Pharo/MetaRepoForPharo60/main' ].
Transcript show: '# Pharo 6 catalog list'; cr.
(catalog asSortedCollection: [ :a :b | (a at: 'name') < (b at: 'name')
]) do: [ :entry | Transcript show: '## ', (entry at: 'name') ; cr;
show: (entry at: 'description'); cr;cr.
Transcript show: 'keywords: '.
keyword; space ].
Transcript cr; cr].
Transcript show: '# Pharo 6 catalog list - description is missing'; cr.
(catalog asSortedCollection: [ :a :b | (a at: 'name') < (b at: 'name') ])
do: [:entry | (entry at: 'description') ifNil: [ Transcript show: '-
', (entry at: 'name'); cr ]
].
................................................................................................
# Pharo 6 catalog list
## Animation
Adds a delay operator turning any message send into a smooth transition.
keywords: animation fun time
## Artefact
Artefact is a library to generate PDF documents. It provides a
document model and support the generation of PDF
keywords: PDF document layout
## AstaresDistribution
Several Pharo goodies like Pomodoro, DesktopManager, QuickAccess,
HubCap, ScriptManager, ... written by Torsten Bergmann (astares.com)
bundled for easy installation
keywords: custom distribution goodies pharo
## Atlas
A Python bridge (IPC - stream sockets) for Pharo, allowing Pharo to
use Python libraries , mix with Python code and vice versa
keywords: Atlas IPC atlas pharo python sockets
## BitmapCharacterSet
BitmapCharacterSet is a set for characters that uses a bitmap for
storing wide characters and an array of truth values for byte
characters. Used by XMLParser.
keywords: character collection set unicode
## Bootstrap
"Bootstrap for Seaside" is a project combining Seaside and Twitter
Bootstrap and easily use them to write professional looking web
applications.
keywords: Bootstrap HTML Seaside query web
## Bugzilla
Pharo wrapper for Bugzilla REST API
keywords: api bugzilla rest
## CPPBridge
CPP is a library that allows Pharo to share memory with a C++
application. This means that both can share the exact same data and
modify it. This also can allow Pharo and C++ to exacute one another
library and code. Example provided
keywords: ++ ++ C IPC bridge c cpp file mapped memory shared
## Calypso
Calypso is a new system browser based on new navigation model
keywords: IDE systemBrowser
## CheatSheet
Pharo Cheat Sheet.
*http://www.smalltalkhub.com/#!/~PharoExtras/CheatSheet*
keywords: examples syntax
## ChronosManager
ChronosManager is a time managment tool based on the pomodoro
technique offering a stopwatch and timer for keeping track of time
with tasks and goals
keywords: ChronosManager managment pomodoro time
## Citezen
Citezen is a library to parse, query and manage bibtex scientific citations.
keywords: bibtex latex parser printer query
## CommandShell
nil
## Commander
Commander models application actions as first class objects.
Every action is implemented as separate command class (subclass of
CmdCommand) with #execute method and all state required for execution.
Commands are reusable objects and applications provide various ways to
access them. Such information is attached to command classes as
- CmdShortcutCommandActivator
- CmdContextMenuCommandActivator
- CmdDragAndDropCommandActivator
Activators are declared in command class side methods marked with
pragma #commandActivator. For example following method will allow
RenamePackageCommand to be executed by shortcut in possible system
RenamePackageCommand class>>packageBrowserShortcutActivator
<commandActivator>
PackageBrowserContext
RenamePackageCommand class>>packageBrowserMenuActivator
<commandActivator>
PackageBrowserContext
Activators are always declared with application context where they can
be applied (PackageBrowserContext in example). Application should
provide such contexts as subclasses of CmdToolContext with information
about application state. Every widget can bring own context to
interact with application as separate tool. For example system browser
shows multiple panes which provide package context, class context and
method context. And depending on context browser shows different menu
and provides different shortcuts
keywords: command command pattern tools
## Community
Community is a project to add some world menues to easily access some
community pages
keywords: community pharo
## Complex
Math-Complex brings back to Pharo the complex numbers like (1+2i)
which used to be in Squeak Kernel.
keywords: complex math number
## DacapoEnergyConsumption
This project run the Dacapo benchmarks, and monitor the energy
consumption of the CPU. It is for research purposes.
keywords: consumption energy java
## DarkMetalTheme
An alternative to DarkTheme, DarkMetalTheme offers "metalic" tonalities :)
keywords: theme ui
## DebuggerCritiques
Add inlined critiques into Pharo debugger
keywords: critiques debugger smallLint
## DesktopManager
A goodie to be able to manage multiple desktops in Pharo.
keywords: desktop goodie pharo tools
## DiscordSt
DiscordSt is a library for Discord service, see https://discordapp.com
for basic information about Discord and
https://discordapp.com/developers/docs/intro for developer
information.
The stable version supports Discord Webhooks. See
https://github.com/JurajKubelka/DiscordSt for examples.
keywords: api chat client discord rest web webhook
## EventRecorder
Record and replay screen events.
keywords: recording screen
## FamixDiff
nil
## FlatQA
Hi, I'm your personal quality assistant. I run Smalllint rules on the
code that you modify, and notify you about quality changes.
https://github.com/Uko/QualityAssistant#qualityassistant
keywords: automatic critics quality smallint validation
## FogBugz
Access to FogBugz from within Pharo environment.
keywords: fun web
## Garage
Garage is the relational database driver for Pharo. Garage provides a
common API to connect with several database servers in a coherent way
(JDBC like). Along with Garage, we provide implementations of several
database drivers.
keywords: api database drivers
## GarageGlorp
This configuration loads the Garage database drivers along with the
Glorp Object-Relational Mapper. It is a convenience configuration used
to load both projects using a single config.
keywords: database driver orm persistence
## Gettext
Gettext is an implementaion of https://www.gnu.org/software/gettext,
the standard l17n package.
keywords: gettext i18n internationalization l10n localization
## Ghost
nil
## GitFileTree
GitFileTree is an integration of Git commands below Monticello,
allowing a very simple and powerfull integration with a git repository
for tracking Monticello packages, allowing for example one to work
from github.com (including with configurations support) without any
use of the command line and with perfect support of whatever is the
structure of the project under git.
Works with any possible organisation of the git repository related to
the package (single language, multi language, single package, multiple
packages, single remote repo, multiple remote repositories, branches,
you name it).
GitFileTree: is integrated into FileTree, but not easily available.
This configuration allow for a one step loading with the dependencies.
keywords: FileTree Monticello OSProcess OSSubprocess Packages Pharo5
Pharo6
git
## GitHubAPI
A GitHub API Wrapper for Pharo to easily access informations from
GitHub right from your Pharo image.
keywords: api git github
## GitHubcello
Have it happened to you that you have your project on GitHub and it
has a baseline but now you have to write down the Metacello script to
load it? Not any more! Simply paste your repo URI into GTSpotter, wait
a bit, select the baseline you want to load, and you're done!
https://github.com/Uko/GitHubcello#githubcello-
keywords: github metacello spotter
## GlorpSQLite
GlorpSQLite is the integration of Glorp with SQLite. This
configuration loads UDBC, which contains SQLite, then loads Glorp.
Once GlorpSQLite is loaded, provided Pharo can find the SQLite
so/dylib/dll file on your system, start Test Runner and run the tests.
keywords: database orm persistence relational
## Grafoscopio
Grafoscopio is a tool to create interactive notebooks and
documentation for computer narratives and data visualization.
They are structured as outlines/trees containing textual and code
nodes that can be exported to several formats: LaTeX, HTML
and pdf (via pandoc).
It can be used in several endeavors like: reproductible open research
and science, data journalism, data activism among others
keywords: data-activism data-journalism data-science
data-visualization documentation interactive-notebook markdown markup
open-data open-research open-science reproducible-research
## Grease
The Grease Portability Library
keywords: framework portability
## Grid
This package provides a grid (2D array) implementation.
keywords: 2D-array collection container matrix
## Hashids
Hashids allow you to create URL friendly ids from sequential integer
ids. NB it is should not be considered as encryption but it does
provide a lightweight obfuscation of the underlying id.
https://github.com/alacap/hashids-pharo
keywords: hashing
## Hubcap
nil
## INIFile
A Parser for .INI files (as usually used on Windows)
keywords: configurations ini settings windows
## Iceberg
Iceberg is a set of tools that allow one to handle git repositories
directly from a Pharo image.
keywords: git vcs version control
## LightPhaser
nil
## MacroRecorder
MacroRecorder is a tool that allows the developer to
(i) record a sequence of transformations while they are applied a
first time, either manually or with the assistance of refactoring
tools;
(ii) store and parameterize the transformations to allow their
generalization; and
(iii) apply automatically the sequence of transformations afterwards
on different code locations.
For the last step, the developer could explicitly point to the
entities to transform.
keywords: code change code manipulation programming by demonstration
source code transformations
## MatchTool
MatchTool is a simple UI for experimenting with the matching
functionality of pattern code.
MatchTool can be open from the World Menu > Tools category. More
information can be read from within the tool by pressing help button.
keywords: code inspect match pattern rewrite rules
## MessageFlowBrowser
A message flow browse to browser senders, implementors and messages of
methods in a single window and folow the message flow
keywords: browser messageflow methods tools
## Mocketry
Mocketry is mock objects framework. It provides simplest way to stub
any message to any object and to verify any occurred behaviour.
mock := Mock new.
mock stub someMessage willReturn: 1000.
mock someMessage should be: 1000.
mock should receive someMessage.
rect stub width willReturn: 1000.
rect area should be: 3000 "area = width * height".
rect should receive width.
keywords: BDD SUnit TDD framework mocks
## MooseProject
MooseProject is a library to store many differents versions for a
project. It will persist everything on the disk and allow you easily
to recover the model associated to the desired version
keywords: Moose project version
## Mustache
nil
## NPMJS
Spotter search of NPM packages
keywords: javascript nodejs
## Neo4reSt
Neo4reSt is a rest client of Neo4j graph database. (http://neo4j.org/)
- Raw rest client
- Wrapper client which handles JSON well
- Object level wrapper classes (Node, Relationship, Property)
keywords: Neo4j database graph persistence
## NeoCSV
CSV (Comma Separated Values) is a popular data-interchange format.
NeoCSV is an elegant and efficient standalone framework to read and
write CSV converting to or from Smalltalk objects.
keywords: ascii comma-separated-values csv fields format input output
records rfc-4180 tab-separated-values tabular-data text tsv
## NeoJSON
JSON (JavaScript Object Notation) is a popular data-interchange
format. NeoJSON is an elegant and efficient standalone Smalltalk
framework to read and write JSON converting to or from Smalltalk
objects.
keywords: encoding format input javascript json output serialization text
## Nginx
Utility project to work with nginx from Pharo image (Windows only so far)
keywords: nginx server web windows
## OSLinuxCentOS
A part of the OS-XXX series to easier work with native operating
system platforms. Here for using CentOS Linux environments in Pharo.
keywords: centos linux native os unix
## OSLinuxUbuntu
A part of the OS-XXX series to easier work with native operating
system platforms. Here for using Ubuntu Linux environments in Pharo.
keywords: linux native os ubuntu unix
## OSOSX
nil
## OSProcess
nil
## OSRaspbian
A part of the OS-XXX series to easier work with native operating
system platforms. Here for using Raspbian environments in Pharo.
keywords: linux native os raspbian unix
## OSUnix
A part of the OS-XXX series to easier work with native operating
system platforms. Here for using Unix environments in Pharo.
keywords: native os unix
## OSWindows
API wrappers and tools for the Windows operating system
keywords: api native win32 windows
## ObjectStatistics
ObjectStatistics is tool to analyse set of objects by computing
different kind of metrics and look at them from different angles.
Imaging that we have collection of message sends and we want to know
number of message sends in dimension of receiver, receiver class and
message selector. We have different angles to look at this data: from
receiver class to selector and receiver or from selector to receiver
class and receiver or any other combination.
We also could analyze different kind of metrics which could be
computed on given objects. It could be number of unique receivers,
execution time, executed lines of code, etc.
This package implements computation of object statistics over declared
metrics and dimensions space.
stat := ObjectStatistics.
stat
countAllAs: 'sends';
countDifferent: [ :message | message receiver ] as: 'instances'.
stat
dimension: [ :message | message receiver class ] named: 'classes';
with: [
stat dimension: [ :message | message selector ] named: 'msgs';
with: [
stat
dimension: [ :r | r ] named: 'receivers';
ignoreMetrics: #('instances')]];
dimension: [ :message | message selector ] named: 'msgs';
with: [
stat dimension: [ :message | message receiver
class ] named: 'classes';
with: [
stat
dimension: [ :r | r ] named: 'receivers']].
stat accumulateAll: messageSends.
keywords: analysis framework
## ObjectTravel
ObjectTravel implements traversal of full object graph. It enumerates
each reference in breadth-first direction and visit every reference
only once.
traveler moveToNextReference. "true".
traveler currentReference. "10"
traveler nextReference. "30"
traveler := ObjectTraveler on: #(10 20 30).
traveler nextReference "10"
traveler nextReference "20"
traveler replaceCurrentReferenceWith: #newReference.
keywords: objectsTraversal stream tool
## Octopus
A pharo tool that utilises Pillar library to process pillar text
copied to the clipboard and convert it to HTML
keywords: HTML markdown pillar
## OrderPreservingDictionary
This package has two ordered dictionary classes that behave like
OrderedDictionary and OrderedIdentityDictionary in Pharo but are
portable to Squeak and Gemstone, and other ordered dictionary classes
needed by XMLParser.
keywords: collection dictionary order-preserving ordered
## Orion
Orion is an interactive prototyping tool for reengineering, to
simulate changes and compare their impact on multiple versions of
software source code models.
keywords: Moose delta model versioning
## Pastell
Pastell is an add-on for XMLParser which adds some methods that make
navigation of an XML DOM tree much easier, it is a XMLPath-like
library.
keywords: xml xpath
## PharoSprint
The Pharo community regularly organize Pharo Sprint events. The Pharo
Sprint is a regular (monthly) event when developers and users meet
together to fix bugs. This usually takes place in a physical location,
but people are welcomed to participate from any place. This is a great
opportunity for novices to get involved and learn from experts!
For more information: http://bit.ly/SprintWeb and
http://pharo.org/contribute-events
keywords: Bug Discord FogBugz PharoSprint Sprint SprintDay
## Pillar
Pillar is a wiki-like syntax, its document model, a parser for it, and
a set of exporters (e.g., HTML, LaTeX, Markdown...). Pillar is
primarily used as the wiki syntax behind the *Pier
e.g., *the Enterprise Pharo book>http://books.pharo.org/*.
keywords: book document html latex markdown pier wiki
## PlotMorph
PlotMorph is a nice plotting system. It can plot multiple series with
different graphical attributes.
keywords: Morph UI graph plotting point series
## PolyMath
Tools for scientific computation in Smalltalk
keywords: ODE mathematics science
## Pomodoro
A pomodoro timer
keywords: GTD morphic pomodoro
## PunQLite
UnQLite binding for Pharo Smalltalk. UnQLite is a fast, lightweight,
portable, embedded KVS with a simple scripting engine (Jx9). By using
PunQLite, you can store/load lots of data as if just using a normal
Dictionary.
PunQLite uses UnQLite shared library. If you have no time to compile,
just get pre-built binary from the github project page
(https://github.com/mumez/PunQLite).
keywords: KVS NoSQL UFFI UnQLite database persistence
## QualityAssistant
Hi, I'm your personal quality assistant. I run Smalllint rules on the
code that you modify, and notify you about quality changes.
https://github.com/Uko/QualityAssistant#qualityassistant
keywords: automatic critics quality smallint validation
## QuickAccess
A manager for scripts with Quick access.
keywords: fun web
## RProjectConnector
nil
## RediStick
RediStick is a redis client which supports auto-reconnecting.
- Minimum dependencies (runs on Pharo without other libraries)
- Supports unicode strings
keywords: KVS NoSQL Redis database persistence
## ReferenceFinder
Finds reference paths between objects to help find memory leaks.
keywords: memory objects references tracing
## RegexTools
A tool to test and verify regular expressions
keywords: regex utilities
## Roassal2
Roassal is an agile visualization engine. Roassal graphically renders
objects using short and expressive Smalltalk expressions. A large set
of interaction facilities are provided for a better user experience.
Painting, brushing, interconnecting, zooming, drag and dropping will
just make you more intimate with any arbitrary object model.
keywords: charting data visualization
## SRT2VTT
This package convert SRT to VTT (subtitles for videos plugins)
keywords: browser plugin srt videos vtt web
## ScriptManager
A simple tool to manage scripts. Still based on Morphic. We would
recommend users to switch to QuickAccess which is a better script
manager than this tool.
keywords: fun script
## Seaside3
The framework for developing sophisticated web applications in
Smalltalk. See http://www.seaside.st
keywords: framework seaside web
## SimilarityFlooding
This project is an implementation of a FAMIX model difference
algorithm based on Similarity Flooding algorithm as defined by Sergey
A versatile graph matching algorithm and its application to schema
matching' and in the technical report associated.
Check the github repository for documentation
[https://github.com/juliendelplanque/SFDiff].
keywords: FAMIX SFDiff difference model similarity similarity flooding
## Spy2
Spy2 is a profiling framework. You can easily create profilers. You
can have a look at a description
http://bergel.eu/download/papers/Berg10f-Spy.pdf
The Hapao test coverage tool is included.
keywords: Hapao Memory Performance Profiling Roassal Spy
## Stamp
Stamp is an implementation of STOMP 1.2, a protocol to access message
oriented middleware like RabbitMQ.
keywords: client format messaging middleware queueing rabbitmq stomp
## StateSpecs
StateSpecs is object state specification framework. It describes
particular object states by first class specifications. For example
there are SpecOfCollectionItem, SpecOfObjectClass and
SpecOfObjectSuperclass. They can match and validate given objects. In
case when object is not satisfied specification you will get failure
result with detailed information about problem.
spec matches: anObject.
spec validate: anObject. "it returns validation result which can be
success or particular failure"
To easily create specifications and validate objects by them
StateSpecs provides two kind DSL: should expressions and "word"
classes.
1 should be: 2
1 should equal: 10
Kind of: Number
Instance of: String
Equal to: 'test'
keywords: BDD SUnit TDD framework validation
## Ston
Smalltalk Object Notation (STON) is a lightweight, text-based,
human-readable data interchange format for class-based object-oriented
languages like Smalltalk. It can be used to serialize domain level
objects, either for persistency or network transport. As its name
suggests, it is based on JSON (Javascript Object Notation). It adds
symbols as a primitive value, class tags for object values and
references.
keywords: encoding format input json output serialization ston text
## SublimishTheme
A dark theme for Pharo. If you like Sublime then you'll like Sublimish theme.
Project main page: *https://github.com/sebastianconcept/SublimishTheme*
keywords: GUI IDE
## Tarantalk
Tarantalk is a Tarantool (Lua with DBMS) connector.
- Store/load tuples.
- Find tuples by multiple indices
- Evaluate Lua programs
keywords: KVS Lua NoSQL Tarantool Tuple database persistence
## Tarantube
Tarantool message queue wrapper based on Tarantalk.
- Supporting FIFO queue with priority, TTL, TTR, delay and sub queues.
- Need to install Tarantool + Tarantool queue module
(https://github.com/tarantool/queue)
keywords: Lua MQ NoSQL Tarantalk Tarantool queue
## Tealight
Tealight is a project defining a few extensions to the Teapot
framework to make the (tea) time you spend with the Pharo Teapot
system even easier..
keywords: api git github
## Teapot
Teapot is micro web framework on top of the Zinc HTTP components, that
focuses on simplicity and ease of use.
keywords: framework http micro sinatra web
## TestsUsageAnalyser
nil
## Trie
This package provides a trie implementation (as developed by Benoit
St-Jean. See https://en.wikipedia.org/wiki/Trie
keywords: collection containers retrieval trie
## Units
Units is a simple and powerful library to manage different units.
keywords: Comparison Meter Points Units
## VMProfiler
VMProfiler is a sampling profiler tracking down where the time is
spent in the VM when executing a specific portion of code. It computes
where the time is spent in the compiled C code of the VM, in the VM
plugins and in the native functions.
The results are available as a statistical report.
keywords: cog jit profiling virtual machine
## VerStix
A Vert.x TCP EventBus client for Pharo Smalltalk.
- interact with various Vert.x components (Web, Auth, DB, MQ, etc).
- interact with other Smalltalk images
- interact with various languages which support Vert.x EventBus
keywords: microservices network vertx
## VistaCursors
Provide a better looking cursor (similar to Windows Vista).
keywords: cursor theming ui windows
## VoyageMongo
Voyage-Mongo is an object persistence layer made for easy the work
with *MongoDB>http://www.mongodb.org*. It is an "ODM" (Object-Document
Mapper), in the same spirit of the ORMs for relational approaches.
keywords: database mongodb nosql persistence
## VoyageUnqlite
Voyage-UnQLite is an object persistence layer made for easy the work
with *UnQLite>https://unqlite.org*. It is an "ODM" (Object-Document
Mapper), in the same spirit of the ORMs for relational approaches.
keywords: database nosql persistence unqlite
## WKHTML2PDF
Render HTML into PDF and various image formats using the (external) Qt
WebKit rendering engine directly from Pharo.
keywords: html pdf reporting
## WebBrowser
General and platform independent WebBrowser access for Pharo 4.0
onwards based on NativeBoost, for Pharo 5.0 onwards based on UFFI
keywords: internet platform url utility web webbrowser
## XMI
A XMI wrapper for Pharo to easily access XML Metadata informations.
keywords: omg uml xmi xml
## XMLParser
XMLParser provides validating SAX and DOM parsers for well-formed XML
documents on Pharo, Squeak, and Gemstone. It also provides a DOM API
for manipulating documents, namespace support, and an optional
XMLWriter for writing documents. Validation and namespace checking are
enabled by default, but not resolution of external entities.
http://www.w3.org/TR/REC-xml/
http://www.w3.org/TR/REC-xml-names/
http://www.w3.org/TR/xml-id/
http://www.w3.org/TR/xmlbase/
https://www.w3.org/TR/xml-c14n
keywords: DOM DTD HTML SAX XHTML XML document markup parser validation web
## XMLParserHTML
XMLParserHTML provides SAX and DOM parsers for HTML that convert
possibly malformed HTML into well-formed XML.
keywords: DOM HTML SAX document markup parser web
## XMLParserStAX
XMLParserStAX is a pull parser for XMLParser that provides a streaming
interface for "pulling" XML events and also supports pull-style DOM
parsing for dynamically converting events into DOM nodes.
keywords: DOM DTD HTML StAX XHTML XML XMLPullParser document markup
parser pull pull-parser validation web
## XMLWriter
XMLWriter allows you to generate well-formed XML documents using an
API based on Seaside's canvas and tag brushes so all tags will be
nested properly and not left unclosed.
keywords: HTML XHTML XML document markup web writer
## XPath
An XPath library for Pharo, Squeak, and Gemstone leveraging the XML
parsing capabilities of XMLParser. Supports XPath 1.0 syntax with
extensions.
keywords: DOM HTML XHTML XML XPath document markup parser query web
## ZTimestamp
The ZTimestamp project groups a number of classes that form an
addition/alternative to DateAndTime/Timestamp. The core ZTimestamp
class represents a point in time, with second precision and always in
the UTC/GTM/Zulu timezone. It is faster and smaller. ZTimestampFormat
is a formatter and parser that is example based. ZTimezone uses the
standard Olsone timezone database to compute the offset for local time
at specific points in time for a specified timezone.
ZTimestampSNTPClient is an SNTP client to check the local clock
against network time servers. This project is small and has no further
dependencies. It runs in Pharo 2 and 3.
keywords: chronology date formatting parsing sntp time timestamp timezone
## ZincHTTPComponents
Zinc HTTP Components is an open source Smalltalk framework to deal
with HTTP. It models most concepts of HTTP and its related standards
and offers both client and server functionality. One of its key goals
is to offer understandability (Smalltalk’s design principle number
one). Anyone with a basic understanding of Smalltalk and the HTTP
principles should be able to understand what is going on and learn, by
looking at the implementation.
keywords: character-encoding client http internet mime-type networking
request response server url
# Pharo 6 catalog list - description is missing
- CommandShell
- FamixDiff
- Ghost
- Hubcap
- LightPhaser
- Mustache
- OSOSX
- OSProcess
- RProjectConnector
- TestsUsageAnalyser
Post by H. Hirzel
This code snippet below gives a list of all Pharo 6.0 catalog entries
CatalogProvider default retrieveProjects select: [ :x |
(x at: 'repositoryUrl') =
'http://smalltalkhub.com/mc/Pharo/MetaRepoForPharo60/main' ].
Post by Dimitris Chloupis
absolutely , I will add Torsten's wonderful wiki and Grafoscopio details,
keep them coming :)
Anything I miss, please alert me as Hizrel just did , I want to link to
anything Pharo related ,lets bring everything under one roof ;)
Post by H. Hirzel
And add the overview to Grafoscopio
Aug 20, 2017
[Pharo-users] [Ann] [Grafoscopio] New release with major improvements
Post by H. Hirzel
......
Post by Dimitris Chloupis
you make any submission you want here in this thread and I will port
it
to
wiki with copy paste and a bit of structuring :)
Dimitris,
Could you please do add a link in
https://github.com/SquareBracketAssociates/PharoWiki
to Torsten's wiki
http://wiki.astares.com/pharo
It has over 500 pages with good content I was not aware of....
Thanks,
Hannes
Dimitris Chloupis
2017-08-22 19:38:17 UTC
Permalink
absolutely

done !

https://github.com/SquareBracketAssociates/PharoWiki/blob/master/contents/projects.md
Post by Stephane Ducasse
You should add the script that generate the list of catalog items so
that we can update it.
On Tue, Aug 22, 2017 at 8:18 PM, Dimitris Chloupis
Post by Dimitris Chloupis
Ok I restructured the wiki , giving it a table of contents.
Added Pharo 6 Catalog projects
Added PettitParser2
Added a sections for How tos , and a couple of them
Added a news section
Added a link to Grafoscopio homepage at its Catalaog section
Added a wikis section with a link to Astares Pharo wiki
Keep your suggestions coming , thank you Hirzel
https://squarebracketassociates.github.io/PharoWiki/
Post by H. Hirzel
Please add the reference to the PetitParser2 book
https://kursjan.github.io/petitparser2/pillar-book/build/book.html
Post by H. Hirzel
And this one produces a catalog list in markdown format
"Produce a list of Pharo 6 catalog entries (tag: 'Pharo 6.0')"
| catalog |
catalog := CatalogProvider default retrieveProjects select: [ :x |
(x at: 'repositoryUrl') =
'http://smalltalkhub.com/mc/Pharo/MetaRepoForPharo60/main' ].
Transcript show: '# Pharo 6 catalog list'; cr.
(catalog asSortedCollection: [ :a :b | (a at: 'name') < (b at: 'name')
]) do: [ :entry | Transcript show: '## ', (entry at: 'name') ; cr;
show: (entry at: 'description'); cr;cr.
Transcript show: 'keywords: '.
keyword; space ].
Transcript cr; cr].
Transcript show: '# Pharo 6 catalog list - description is missing';
cr.
Post by Dimitris Chloupis
Post by H. Hirzel
Post by H. Hirzel
(catalog asSortedCollection: [ :a :b | (a at: 'name') < (b at: 'name') ])
do: [:entry | (entry at: 'description') ifNil: [ Transcript show: '-
', (entry at: 'name'); cr ]
].
................................................................................................
Post by Dimitris Chloupis
Post by H. Hirzel
Post by H. Hirzel
# Pharo 6 catalog list
## Animation
Adds a delay operator turning any message send into a smooth
transition.
Post by Dimitris Chloupis
Post by H. Hirzel
Post by H. Hirzel
keywords: animation fun time
## Artefact
Artefact is a library to generate PDF documents. It provides a
document model and support the generation of PDF
keywords: PDF document layout
## AstaresDistribution
Several Pharo goodies like Pomodoro, DesktopManager, QuickAccess,
HubCap, ScriptManager, ... written by Torsten Bergmann (astares.com)
bundled for easy installation
keywords: custom distribution goodies pharo
## Atlas
A Python bridge (IPC - stream sockets) for Pharo, allowing Pharo to
use Python libraries , mix with Python code and vice versa
keywords: Atlas IPC atlas pharo python sockets
## BitmapCharacterSet
BitmapCharacterSet is a set for characters that uses a bitmap for
storing wide characters and an array of truth values for byte
characters. Used by XMLParser.
keywords: character collection set unicode
## Bootstrap
"Bootstrap for Seaside" is a project combining Seaside and Twitter
Bootstrap and easily use them to write professional looking web
applications.
keywords: Bootstrap HTML Seaside query web
## Bugzilla
Pharo wrapper for Bugzilla REST API
keywords: api bugzilla rest
## CPPBridge
CPP is a library that allows Pharo to share memory with a C++
application. This means that both can share the exact same data and
modify it. This also can allow Pharo and C++ to exacute one another
library and code. Example provided
keywords: ++ ++ C IPC bridge c cpp file mapped memory shared
## Calypso
Calypso is a new system browser based on new navigation model
keywords: IDE systemBrowser
## CheatSheet
Pharo Cheat Sheet.
*http://www.smalltalkhub.com/#!/~PharoExtras/CheatSheet*
keywords: examples syntax
## ChronosManager
ChronosManager is a time managment tool based on the pomodoro
technique offering a stopwatch and timer for keeping track of time
with tasks and goals
keywords: ChronosManager managment pomodoro time
## Citezen
Citezen is a library to parse, query and manage bibtex scientific citations.
keywords: bibtex latex parser printer query
## CommandShell
nil
## Commander
Commander models application actions as first class objects.
Every action is implemented as separate command class (subclass of
CmdCommand) with #execute method and all state required for execution.
Commands are reusable objects and applications provide various ways to
access them. Such information is attached to command classes as
- CmdShortcutCommandActivator
- CmdContextMenuCommandActivator
- CmdDragAndDropCommandActivator
Activators are declared in command class side methods marked with
pragma #commandActivator. For example following method will allow
RenamePackageCommand to be executed by shortcut in possible system
RenamePackageCommand class>>packageBrowserShortcutActivator
<commandActivator>
^CmdShortcutCommandActivator by: $r meta for: PackageBrowserContext
RenamePackageCommand class>>packageBrowserMenuActivator
<commandActivator>
PackageBrowserContext
Activators are always declared with application context where they can
be applied (PackageBrowserContext in example). Application should
provide such contexts as subclasses of CmdToolContext with information
about application state. Every widget can bring own context to
interact with application as separate tool. For example system browser
shows multiple panes which provide package context, class context and
method context. And depending on context browser shows different menu
and provides different shortcuts
keywords: command command pattern tools
## Community
Community is a project to add some world menues to easily access some
community pages
keywords: community pharo
## Complex
Math-Complex brings back to Pharo the complex numbers like (1+2i)
which used to be in Squeak Kernel.
keywords: complex math number
## DacapoEnergyConsumption
This project run the Dacapo benchmarks, and monitor the energy
consumption of the CPU. It is for research purposes.
keywords: consumption energy java
## DarkMetalTheme
An alternative to DarkTheme, DarkMetalTheme offers "metalic"
tonalities
Post by Dimitris Chloupis
Post by H. Hirzel
Post by H. Hirzel
:)
keywords: theme ui
## DebuggerCritiques
Add inlined critiques into Pharo debugger
keywords: critiques debugger smallLint
## DesktopManager
A goodie to be able to manage multiple desktops in Pharo.
keywords: desktop goodie pharo tools
## DiscordSt
DiscordSt is a library for Discord service, see
https://discordapp.com
Post by Dimitris Chloupis
Post by H. Hirzel
Post by H. Hirzel
for basic information about Discord and
https://discordapp.com/developers/docs/intro for developer
information.
The stable version supports Discord Webhooks. See
https://github.com/JurajKubelka/DiscordSt for examples.
keywords: api chat client discord rest web webhook
## EventRecorder
Record and replay screen events.
keywords: recording screen
## FamixDiff
nil
## FlatQA
Hi, I'm your personal quality assistant. I run Smalllint rules on the
code that you modify, and notify you about quality changes.
https://github.com/Uko/QualityAssistant#qualityassistant
keywords: automatic critics quality smallint validation
## FogBugz
Access to FogBugz from within Pharo environment.
keywords: fun web
## Garage
Garage is the relational database driver for Pharo. Garage provides a
common API to connect with several database servers in a coherent way
(JDBC like). Along with Garage, we provide implementations of several
database drivers.
keywords: api database drivers
## GarageGlorp
This configuration loads the Garage database drivers along with the
Glorp Object-Relational Mapper. It is a convenience configuration used
to load both projects using a single config.
keywords: database driver orm persistence
## Gettext
Gettext is an implementaion of https://www.gnu.org/software/gettext,
the standard l17n package.
keywords: gettext i18n internationalization l10n localization
## Ghost
nil
## GitFileTree
GitFileTree is an integration of Git commands below Monticello,
allowing a very simple and powerfull integration with a git repository
for tracking Monticello packages, allowing for example one to work
from github.com (including with configurations support) without any
use of the command line and with perfect support of whatever is the
structure of the project under git.
Works with any possible organisation of the git repository related to
the package (single language, multi language, single package, multiple
packages, single remote repo, multiple remote repositories, branches,
you name it).
GitFileTree: is integrated into FileTree, but not easily available.
This configuration allow for a one step loading with the dependencies.
keywords: FileTree Monticello OSProcess OSSubprocess Packages Pharo5
Pharo6
git
## GitHubAPI
A GitHub API Wrapper for Pharo to easily access informations from
GitHub right from your Pharo image.
keywords: api git github
## GitHubcello
Have it happened to you that you have your project on GitHub and it
has a baseline but now you have to write down the Metacello script to
load it? Not any more! Simply paste your repo URI into GTSpotter, wait
a bit, select the baseline you want to load, and you're done!
https://github.com/Uko/GitHubcello#githubcello-
keywords: github metacello spotter
## GlorpSQLite
GlorpSQLite is the integration of Glorp with SQLite. This
configuration loads UDBC, which contains SQLite, then loads Glorp.
Once GlorpSQLite is loaded, provided Pharo can find the SQLite
so/dylib/dll file on your system, start Test Runner and run the tests.
keywords: database orm persistence relational
## Grafoscopio
Grafoscopio is a tool to create interactive notebooks and
documentation for computer narratives and data visualization.
They are structured as outlines/trees containing textual and
code
Post by Dimitris Chloupis
Post by H. Hirzel
Post by H. Hirzel
nodes that can be exported to several formats: LaTeX, HTML
and pdf (via pandoc).
It can be used in several endeavors like: reproductible open research
and science, data journalism, data activism among others
keywords: data-activism data-journalism data-science
data-visualization documentation interactive-notebook markdown markup
open-data open-research open-science reproducible-research
## Grease
The Grease Portability Library
keywords: framework portability
## Grid
This package provides a grid (2D array) implementation.
keywords: 2D-array collection container matrix
## Hashids
Hashids allow you to create URL friendly ids from sequential integer
ids. NB it is should not be considered as encryption but it does
provide a lightweight obfuscation of the underlying id.
https://github.com/alacap/hashids-pharo
keywords: hashing
## Hubcap
nil
## INIFile
A Parser for .INI files (as usually used on Windows)
keywords: configurations ini settings windows
## Iceberg
Iceberg is a set of tools that allow one to handle git repositories
directly from a Pharo image.
keywords: git vcs version control
## LightPhaser
nil
## MacroRecorder
MacroRecorder is a tool that allows the developer to
(i) record a sequence of transformations while they are applied
a
Post by Dimitris Chloupis
Post by H. Hirzel
Post by H. Hirzel
first time, either manually or with the assistance of refactoring
tools;
(ii) store and parameterize the transformations to allow their
generalization; and
(iii) apply automatically the sequence of transformations afterwards
on different code locations.
For the last step, the developer could explicitly point to the
entities to transform.
keywords: code change code manipulation programming by demonstration
source code transformations
## MatchTool
MatchTool is a simple UI for experimenting with the matching
functionality of pattern code.
MatchTool can be open from the World Menu > Tools category. More
information can be read from within the tool by pressing help button.
keywords: code inspect match pattern rewrite rules
## MessageFlowBrowser
A message flow browse to browser senders, implementors and messages of
methods in a single window and folow the message flow
keywords: browser messageflow methods tools
## Mocketry
Mocketry is mock objects framework. It provides simplest way to stub
any message to any object and to verify any occurred behaviour.
mock := Mock new.
mock stub someMessage willReturn: 1000.
mock someMessage should be: 1000.
mock should receive someMessage.
rect stub width willReturn: 1000.
rect area should be: 3000 "area = width * height".
rect should receive width.
keywords: BDD SUnit TDD framework mocks
## MooseProject
MooseProject is a library to store many differents versions for a
project. It will persist everything on the disk and allow you easily
to recover the model associated to the desired version
keywords: Moose project version
## Mustache
nil
## NPMJS
Spotter search of NPM packages
keywords: javascript nodejs
## Neo4reSt
Neo4reSt is a rest client of Neo4j graph database. (http://neo4j.org/
)
Post by Dimitris Chloupis
Post by H. Hirzel
Post by H. Hirzel
- Raw rest client
- Wrapper client which handles JSON well
- Object level wrapper classes (Node, Relationship, Property)
keywords: Neo4j database graph persistence
## NeoCSV
CSV (Comma Separated Values) is a popular data-interchange format.
NeoCSV is an elegant and efficient standalone framework to read and
write CSV converting to or from Smalltalk objects.
keywords: ascii comma-separated-values csv fields format input output
records rfc-4180 tab-separated-values tabular-data text tsv
## NeoJSON
JSON (JavaScript Object Notation) is a popular data-interchange
format. NeoJSON is an elegant and efficient standalone Smalltalk
framework to read and write JSON converting to or from Smalltalk
objects.
keywords: encoding format input javascript json output serialization text
## Nginx
Utility project to work with nginx from Pharo image (Windows only so far)
keywords: nginx server web windows
## OSLinuxCentOS
A part of the OS-XXX series to easier work with native operating
system platforms. Here for using CentOS Linux environments in Pharo.
keywords: centos linux native os unix
## OSLinuxUbuntu
A part of the OS-XXX series to easier work with native operating
system platforms. Here for using Ubuntu Linux environments in Pharo.
keywords: linux native os ubuntu unix
## OSOSX
nil
## OSProcess
nil
## OSRaspbian
A part of the OS-XXX series to easier work with native operating
system platforms. Here for using Raspbian environments in Pharo.
keywords: linux native os raspbian unix
## OSUnix
A part of the OS-XXX series to easier work with native operating
system platforms. Here for using Unix environments in Pharo.
keywords: native os unix
## OSWindows
API wrappers and tools for the Windows operating system
keywords: api native win32 windows
## ObjectStatistics
ObjectStatistics is tool to analyse set of objects by computing
different kind of metrics and look at them from different angles.
Imaging that we have collection of message sends and we want to know
number of message sends in dimension of receiver, receiver class and
message selector. We have different angles to look at this data: from
receiver class to selector and receiver or from selector to receiver
class and receiver or any other combination.
We also could analyze different kind of metrics which could be
computed on given objects. It could be number of unique receivers,
execution time, executed lines of code, etc.
This package implements computation of object statistics over declared
metrics and dimensions space.
stat := ObjectStatistics.
stat
countAllAs: 'sends';
countDifferent: [ :message | message receiver ] as: 'instances'.
stat
dimension: [ :message | message receiver class ] named: 'classes';
with: [
stat dimension: [ :message | message selector ]
named: 'msgs';
with: [
stat
dimension: [ :r | r ] named: 'receivers';
ignoreMetrics: #('instances')]];
'msgs';
Post by Dimitris Chloupis
Post by H. Hirzel
Post by H. Hirzel
with: [
stat dimension: [ :message | message receiver
class ] named: 'classes';
with: [
stat
dimension: [ :r | r ] named: 'receivers']].
stat accumulateAll: messageSends.
keywords: analysis framework
## ObjectTravel
ObjectTravel implements traversal of full object graph. It enumerates
each reference in breadth-first direction and visit every reference
only once.
traveler moveToNextReference. "true".
traveler currentReference. "10"
traveler nextReference. "30"
traveler := ObjectTraveler on: #(10 20 30).
traveler nextReference "10"
traveler nextReference "20"
traveler replaceCurrentReferenceWith: #newReference.
keywords: objectsTraversal stream tool
## Octopus
A pharo tool that utilises Pillar library to process pillar text
copied to the clipboard and convert it to HTML
keywords: HTML markdown pillar
## OrderPreservingDictionary
This package has two ordered dictionary classes that behave like
OrderedDictionary and OrderedIdentityDictionary in Pharo but are
portable to Squeak and Gemstone, and other ordered dictionary classes
needed by XMLParser.
keywords: collection dictionary order-preserving ordered
## Orion
Orion is an interactive prototyping tool for reengineering, to
simulate changes and compare their impact on multiple versions of
software source code models.
keywords: Moose delta model versioning
## Pastell
Pastell is an add-on for XMLParser which adds some methods that make
navigation of an XML DOM tree much easier, it is a XMLPath-like
library.
keywords: xml xpath
## PharoSprint
The Pharo community regularly organize Pharo Sprint events. The Pharo
Sprint is a regular (monthly) event when developers and users meet
together to fix bugs. This usually takes place in a physical location,
but people are welcomed to participate from any place. This is a great
opportunity for novices to get involved and learn from experts!
For more information: http://bit.ly/SprintWeb and
http://pharo.org/contribute-events
keywords: Bug Discord FogBugz PharoSprint Sprint SprintDay
## Pillar
Pillar is a wiki-like syntax, its document model, a parser for it, and
a set of exporters (e.g., HTML, LaTeX, Markdown...). Pillar is
primarily used as the wiki syntax behind the *Pier
e.g., *the Enterprise Pharo book>http://books.pharo.org/*.
keywords: book document html latex markdown pier wiki
## PlotMorph
PlotMorph is a nice plotting system. It can plot multiple series with
different graphical attributes.
keywords: Morph UI graph plotting point series
## PolyMath
Tools for scientific computation in Smalltalk
keywords: ODE mathematics science
## Pomodoro
A pomodoro timer
keywords: GTD morphic pomodoro
## PunQLite
UnQLite binding for Pharo Smalltalk. UnQLite is a fast, lightweight,
portable, embedded KVS with a simple scripting engine (Jx9). By using
PunQLite, you can store/load lots of data as if just using a normal
Dictionary.
PunQLite uses UnQLite shared library. If you have no time to compile,
just get pre-built binary from the github project page
(https://github.com/mumez/PunQLite).
keywords: KVS NoSQL UFFI UnQLite database persistence
## QualityAssistant
Hi, I'm your personal quality assistant. I run Smalllint rules on the
code that you modify, and notify you about quality changes.
https://github.com/Uko/QualityAssistant#qualityassistant
keywords: automatic critics quality smallint validation
## QuickAccess
A manager for scripts with Quick access.
keywords: fun web
## RProjectConnector
nil
## RediStick
RediStick is a redis client which supports auto-reconnecting.
- Minimum dependencies (runs on Pharo without other libraries)
- Supports unicode strings
keywords: KVS NoSQL Redis database persistence
## ReferenceFinder
Finds reference paths between objects to help find memory leaks.
keywords: memory objects references tracing
## RegexTools
A tool to test and verify regular expressions
keywords: regex utilities
## Roassal2
Roassal is an agile visualization engine. Roassal graphically renders
objects using short and expressive Smalltalk expressions. A large set
of interaction facilities are provided for a better user experience.
Painting, brushing, interconnecting, zooming, drag and dropping will
just make you more intimate with any arbitrary object model.
keywords: charting data visualization
## SRT2VTT
This package convert SRT to VTT (subtitles for videos plugins)
keywords: browser plugin srt videos vtt web
## ScriptManager
A simple tool to manage scripts. Still based on Morphic. We would
recommend users to switch to QuickAccess which is a better script
manager than this tool.
keywords: fun script
## Seaside3
The framework for developing sophisticated web applications in
Smalltalk. See http://www.seaside.st
keywords: framework seaside web
## SimilarityFlooding
This project is an implementation of a FAMIX model difference
algorithm based on Similarity Flooding algorithm as defined by Sergey
A versatile graph matching algorithm and its application to schema
matching' and in the technical report associated.
Check the github repository for documentation
[https://github.com/juliendelplanque/SFDiff].
keywords: FAMIX SFDiff difference model similarity similarity flooding
## Spy2
Spy2 is a profiling framework. You can easily create profilers. You
can have a look at a description
http://bergel.eu/download/papers/Berg10f-Spy.pdf
The Hapao test coverage tool is included.
keywords: Hapao Memory Performance Profiling Roassal Spy
## Stamp
Stamp is an implementation of STOMP 1.2, a protocol to access message
oriented middleware like RabbitMQ.
keywords: client format messaging middleware queueing rabbitmq stomp
## StateSpecs
StateSpecs is object state specification framework. It describes
particular object states by first class specifications. For example
there are SpecOfCollectionItem, SpecOfObjectClass and
SpecOfObjectSuperclass. They can match and validate given objects. In
case when object is not satisfied specification you will get failure
result with detailed information about problem.
spec matches: anObject.
spec validate: anObject. "it returns validation result which can be
success or particular failure"
To easily create specifications and validate objects by them
StateSpecs provides two kind DSL: should expressions and "word"
classes.
1 should be: 2
1 should equal: 10
Kind of: Number
Instance of: String
Equal to: 'test'
keywords: BDD SUnit TDD framework validation
## Ston
Smalltalk Object Notation (STON) is a lightweight, text-based,
human-readable data interchange format for class-based object-oriented
languages like Smalltalk. It can be used to serialize domain level
objects, either for persistency or network transport. As its name
suggests, it is based on JSON (Javascript Object Notation). It adds
symbols as a primitive value, class tags for object values and
references.
keywords: encoding format input json output serialization ston text
## SublimishTheme
A dark theme for Pharo. If you like Sublime then you'll like Sublimish theme.
Project main page: *
https://github.com/sebastianconcept/SublimishTheme*
Post by Dimitris Chloupis
Post by H. Hirzel
Post by H. Hirzel
keywords: GUI IDE
## Tarantalk
Tarantalk is a Tarantool (Lua with DBMS) connector.
- Store/load tuples.
- Find tuples by multiple indices
- Evaluate Lua programs
keywords: KVS Lua NoSQL Tarantool Tuple database persistence
## Tarantube
Tarantool message queue wrapper based on Tarantalk.
- Supporting FIFO queue with priority, TTL, TTR, delay and sub queues.
- Need to install Tarantool + Tarantool queue module
(https://github.com/tarantool/queue)
keywords: Lua MQ NoSQL Tarantalk Tarantool queue
## Tealight
Tealight is a project defining a few extensions to the Teapot
framework to make the (tea) time you spend with the Pharo Teapot
system even easier..
keywords: api git github
## Teapot
Teapot is micro web framework on top of the Zinc HTTP components, that
focuses on simplicity and ease of use.
keywords: framework http micro sinatra web
## TestsUsageAnalyser
nil
## Trie
This package provides a trie implementation (as developed by Benoit
St-Jean. See https://en.wikipedia.org/wiki/Trie
keywords: collection containers retrieval trie
## Units
Units is a simple and powerful library to manage different units.
keywords: Comparison Meter Points Units
## VMProfiler
VMProfiler is a sampling profiler tracking down where the time is
spent in the VM when executing a specific portion of code. It computes
where the time is spent in the compiled C code of the VM, in the VM
plugins and in the native functions.
The results are available as a statistical report.
keywords: cog jit profiling virtual machine
## VerStix
A Vert.x TCP EventBus client for Pharo Smalltalk.
- interact with various Vert.x components (Web, Auth, DB, MQ, etc).
- interact with other Smalltalk images
- interact with various languages which support Vert.x EventBus
keywords: microservices network vertx
## VistaCursors
Provide a better looking cursor (similar to Windows Vista).
keywords: cursor theming ui windows
## VoyageMongo
Voyage-Mongo is an object persistence layer made for easy the work
with *MongoDB>http://www.mongodb.org*. It is an "ODM"
(Object-Document
Post by Dimitris Chloupis
Post by H. Hirzel
Post by H. Hirzel
Mapper), in the same spirit of the ORMs for relational approaches.
keywords: database mongodb nosql persistence
## VoyageUnqlite
Voyage-UnQLite is an object persistence layer made for easy the work
with *UnQLite>https://unqlite.org*. It is an "ODM" (Object-Document
Mapper), in the same spirit of the ORMs for relational approaches.
keywords: database nosql persistence unqlite
## WKHTML2PDF
Render HTML into PDF and various image formats using the (external) Qt
WebKit rendering engine directly from Pharo.
keywords: html pdf reporting
## WebBrowser
General and platform independent WebBrowser access for Pharo 4.0
onwards based on NativeBoost, for Pharo 5.0 onwards based on UFFI
keywords: internet platform url utility web webbrowser
## XMI
A XMI wrapper for Pharo to easily access XML Metadata informations.
keywords: omg uml xmi xml
## XMLParser
XMLParser provides validating SAX and DOM parsers for well-formed XML
documents on Pharo, Squeak, and Gemstone. It also provides a DOM API
for manipulating documents, namespace support, and an optional
XMLWriter for writing documents. Validation and namespace checking are
enabled by default, but not resolution of external entities.
http://www.w3.org/TR/REC-xml/
http://www.w3.org/TR/REC-xml-names/
http://www.w3.org/TR/xml-id/
http://www.w3.org/TR/xmlbase/
https://www.w3.org/TR/xml-c14n
keywords: DOM DTD HTML SAX XHTML XML document markup parser validation web
## XMLParserHTML
XMLParserHTML provides SAX and DOM parsers for HTML that convert
possibly malformed HTML into well-formed XML.
keywords: DOM HTML SAX document markup parser web
## XMLParserStAX
XMLParserStAX is a pull parser for XMLParser that provides a streaming
interface for "pulling" XML events and also supports pull-style DOM
parsing for dynamically converting events into DOM nodes.
keywords: DOM DTD HTML StAX XHTML XML XMLPullParser document markup
parser pull pull-parser validation web
## XMLWriter
XMLWriter allows you to generate well-formed XML documents using an
API based on Seaside's canvas and tag brushes so all tags will be
nested properly and not left unclosed.
keywords: HTML XHTML XML document markup web writer
## XPath
An XPath library for Pharo, Squeak, and Gemstone leveraging the XML
parsing capabilities of XMLParser. Supports XPath 1.0 syntax with
extensions.
keywords: DOM HTML XHTML XML XPath document markup parser query web
## ZTimestamp
The ZTimestamp project groups a number of classes that form an
addition/alternative to DateAndTime/Timestamp. The core ZTimestamp
class represents a point in time, with second precision and always in
the UTC/GTM/Zulu timezone. It is faster and smaller. ZTimestampFormat
is a formatter and parser that is example based. ZTimezone uses the
standard Olsone timezone database to compute the offset for local time
at specific points in time for a specified timezone.
ZTimestampSNTPClient is an SNTP client to check the local clock
against network time servers. This project is small and has no further
dependencies. It runs in Pharo 2 and 3.
keywords: chronology date formatting parsing sntp time timestamp timezone
## ZincHTTPComponents
Zinc HTTP Components is an open source Smalltalk framework to deal
with HTTP. It models most concepts of HTTP and its related standards
and offers both client and server functionality. One of its key goals
is to offer understandability (Smalltalk’s design principle number
one). Anyone with a basic understanding of Smalltalk and the HTTP
principles should be able to understand what is going on and learn, by
looking at the implementation.
keywords: character-encoding client http internet mime-type networking
request response server url
# Pharo 6 catalog list - description is missing
- CommandShell
- FamixDiff
- Ghost
- Hubcap
- LightPhaser
- Mustache
- OSOSX
- OSProcess
- RProjectConnector
- TestsUsageAnalyser
Post by H. Hirzel
This code snippet below gives a list of all Pharo 6.0 catalog entries
CatalogProvider default retrieveProjects select: [ :x |
(x at: 'repositoryUrl') =
'http://smalltalkhub.com/mc/Pharo/MetaRepoForPharo60/main' ].
Post by Dimitris Chloupis
absolutely , I will add Torsten's wonderful wiki and Grafoscopio details,
keep them coming :)
Anything I miss, please alert me as Hizrel just did , I want to link to
anything Pharo related ,lets bring everything under one roof ;)
Post by H. Hirzel
And add the overview to Grafoscopio
Aug 20, 2017
[Pharo-users] [Ann] [Grafoscopio] New release with major
improvements
Post by Dimitris Chloupis
Post by H. Hirzel
Post by H. Hirzel
Post by H. Hirzel
Post by Dimitris Chloupis
Post by H. Hirzel
Post by H. Hirzel
......
Post by Dimitris Chloupis
you make any submission you want here in this thread and I will port
it
to
wiki with copy paste and a bit of structuring :)
Dimitris,
Could you please do add a link in
https://github.com/SquareBracketAssociates/PharoWiki
to Torsten's wiki
http://wiki.astares.com/pharo
It has over 500 pages with good content I was not aware of....
Thanks,
Hannes
H. Hirzel
2017-08-24 12:38:01 UTC
Permalink
Another thing to add

link to
https://github.com/dionisiydk/TelePharo

with short description

Complete toolset for remote development of Pharo images. It includes:

remote playground
remote browser
remote debugger
remote inspector
remote process browser
Post by Dimitris Chloupis
absolutely
done !
https://github.com/SquareBracketAssociates/PharoWiki/blob/master/contents/projects.md
Post by Stephane Ducasse
You should add the script that generate the list of catalog items so
that we can update it.
On Tue, Aug 22, 2017 at 8:18 PM, Dimitris Chloupis
Post by Dimitris Chloupis
Ok I restructured the wiki , giving it a table of contents.
Added Pharo 6 Catalog projects
Added PettitParser2
Added a sections for How tos , and a couple of them
Added a news section
Added a link to Grafoscopio homepage at its Catalaog section
Added a wikis section with a link to Astares Pharo wiki
Keep your suggestions coming , thank you Hirzel
https://squarebracketassociates.github.io/PharoWiki/
Post by H. Hirzel
Please add the reference to the PetitParser2 book
https://kursjan.github.io/petitparser2/pillar-book/build/book.html
Post by H. Hirzel
And this one produces a catalog list in markdown format
"Produce a list of Pharo 6 catalog entries (tag: 'Pharo 6.0')"
| catalog |
catalog := CatalogProvider default retrieveProjects select: [ :x |
(x at: 'repositoryUrl') =
'http://smalltalkhub.com/mc/Pharo/MetaRepoForPharo60/main' ].
Transcript show: '# Pharo 6 catalog list'; cr.
(catalog asSortedCollection: [ :a :b | (a at: 'name') < (b at: 'name')
]) do: [ :entry | Transcript show: '## ', (entry at: 'name') ; cr;
show: (entry at: 'description'); cr;cr.
Transcript show: 'keywords: '.
keyword; space ].
Transcript cr; cr].
Transcript show: '# Pharo 6 catalog list - description is missing';
cr.
Post by Dimitris Chloupis
Post by H. Hirzel
Post by H. Hirzel
(catalog asSortedCollection: [ :a :b | (a at: 'name') < (b at: 'name')
])
do: [:entry | (entry at: 'description') ifNil: [ Transcript show: '-
', (entry at: 'name'); cr ]
].
................................................................................................
Post by Dimitris Chloupis
Post by H. Hirzel
Post by H. Hirzel
# Pharo 6 catalog list
## Animation
Adds a delay operator turning any message send into a smooth
transition.
Post by Dimitris Chloupis
Post by H. Hirzel
Post by H. Hirzel
keywords: animation fun time
## Artefact
Artefact is a library to generate PDF documents. It provides a
document model and support the generation of PDF
keywords: PDF document layout
## AstaresDistribution
Several Pharo goodies like Pomodoro, DesktopManager, QuickAccess,
HubCap, ScriptManager, ... written by Torsten Bergmann (astares.com)
bundled for easy installation
keywords: custom distribution goodies pharo
## Atlas
A Python bridge (IPC - stream sockets) for Pharo, allowing Pharo to
use Python libraries , mix with Python code and vice versa
keywords: Atlas IPC atlas pharo python sockets
## BitmapCharacterSet
BitmapCharacterSet is a set for characters that uses a bitmap for
storing wide characters and an array of truth values for byte
characters. Used by XMLParser.
keywords: character collection set unicode
## Bootstrap
"Bootstrap for Seaside" is a project combining Seaside and Twitter
Bootstrap and easily use them to write professional looking web
applications.
keywords: Bootstrap HTML Seaside query web
## Bugzilla
Pharo wrapper for Bugzilla REST API
keywords: api bugzilla rest
## CPPBridge
CPP is a library that allows Pharo to share memory with a C++
application. This means that both can share the exact same data and
modify it. This also can allow Pharo and C++ to exacute one another
library and code. Example provided
keywords: ++ ++ C IPC bridge c cpp file mapped memory shared
## Calypso
Calypso is a new system browser based on new navigation model
keywords: IDE systemBrowser
## CheatSheet
Pharo Cheat Sheet.
*http://www.smalltalkhub.com/#!/~PharoExtras/CheatSheet*
keywords: examples syntax
## ChronosManager
ChronosManager is a time managment tool based on the pomodoro
technique offering a stopwatch and timer for keeping track of time
with tasks and goals
keywords: ChronosManager managment pomodoro time
## Citezen
Citezen is a library to parse, query and manage bibtex scientific citations.
keywords: bibtex latex parser printer query
## CommandShell
nil
## Commander
Commander models application actions as first class objects.
Every action is implemented as separate command class (subclass of
CmdCommand) with #execute method and all state required for execution.
Commands are reusable objects and applications provide various ways to
access them. Such information is attached to command classes as
- CmdShortcutCommandActivator
- CmdContextMenuCommandActivator
- CmdDragAndDropCommandActivator
Activators are declared in command class side methods marked with
pragma #commandActivator. For example following method will allow
RenamePackageCommand to be executed by shortcut in possible system
RenamePackageCommand class>>packageBrowserShortcutActivator
<commandActivator>
PackageBrowserContext
RenamePackageCommand class>>packageBrowserMenuActivator
<commandActivator>
PackageBrowserContext
Activators are always declared with application context where they can
be applied (PackageBrowserContext in example). Application should
provide such contexts as subclasses of CmdToolContext with information
about application state. Every widget can bring own context to
interact with application as separate tool. For example system browser
shows multiple panes which provide package context, class context and
method context. And depending on context browser shows different menu
and provides different shortcuts
keywords: command command pattern tools
## Community
Community is a project to add some world menues to easily access some
community pages
keywords: community pharo
## Complex
Math-Complex brings back to Pharo the complex numbers like (1+2i)
which used to be in Squeak Kernel.
keywords: complex math number
## DacapoEnergyConsumption
This project run the Dacapo benchmarks, and monitor the energy
consumption of the CPU. It is for research purposes.
keywords: consumption energy java
## DarkMetalTheme
An alternative to DarkTheme, DarkMetalTheme offers "metalic"
tonalities
Post by Dimitris Chloupis
Post by H. Hirzel
Post by H. Hirzel
:)
keywords: theme ui
## DebuggerCritiques
Add inlined critiques into Pharo debugger
keywords: critiques debugger smallLint
## DesktopManager
A goodie to be able to manage multiple desktops in Pharo.
keywords: desktop goodie pharo tools
## DiscordSt
DiscordSt is a library for Discord service, see
https://discordapp.com
Post by Dimitris Chloupis
Post by H. Hirzel
Post by H. Hirzel
for basic information about Discord and
https://discordapp.com/developers/docs/intro for developer
information.
The stable version supports Discord Webhooks. See
https://github.com/JurajKubelka/DiscordSt for examples.
keywords: api chat client discord rest web webhook
## EventRecorder
Record and replay screen events.
keywords: recording screen
## FamixDiff
nil
## FlatQA
Hi, I'm your personal quality assistant. I run Smalllint rules on the
code that you modify, and notify you about quality changes.
https://github.com/Uko/QualityAssistant#qualityassistant
keywords: automatic critics quality smallint validation
## FogBugz
Access to FogBugz from within Pharo environment.
keywords: fun web
## Garage
Garage is the relational database driver for Pharo. Garage provides a
common API to connect with several database servers in a coherent way
(JDBC like). Along with Garage, we provide implementations of several
database drivers.
keywords: api database drivers
## GarageGlorp
This configuration loads the Garage database drivers along with the
Glorp Object-Relational Mapper. It is a convenience configuration used
to load both projects using a single config.
keywords: database driver orm persistence
## Gettext
Gettext is an implementaion of https://www.gnu.org/software/gettext,
the standard l17n package.
keywords: gettext i18n internationalization l10n localization
## Ghost
nil
## GitFileTree
GitFileTree is an integration of Git commands below Monticello,
allowing a very simple and powerfull integration with a git repository
for tracking Monticello packages, allowing for example one to work
from github.com (including with configurations support) without any
use of the command line and with perfect support of whatever is the
structure of the project under git.
Works with any possible organisation of the git repository related to
the package (single language, multi language, single package, multiple
packages, single remote repo, multiple remote repositories, branches,
you name it).
GitFileTree: is integrated into FileTree, but not easily available.
This configuration allow for a one step loading with the
dependencies.
keywords: FileTree Monticello OSProcess OSSubprocess Packages Pharo5
Pharo6
git
## GitHubAPI
A GitHub API Wrapper for Pharo to easily access informations from
GitHub right from your Pharo image.
keywords: api git github
## GitHubcello
Have it happened to you that you have your project on GitHub and it
has a baseline but now you have to write down the Metacello script to
load it? Not any more! Simply paste your repo URI into GTSpotter, wait
a bit, select the baseline you want to load, and you're done!
https://github.com/Uko/GitHubcello#githubcello-
keywords: github metacello spotter
## GlorpSQLite
GlorpSQLite is the integration of Glorp with SQLite. This
configuration loads UDBC, which contains SQLite, then loads Glorp.
Once GlorpSQLite is loaded, provided Pharo can find the SQLite
so/dylib/dll file on your system, start Test Runner and run the tests.
keywords: database orm persistence relational
## Grafoscopio
Grafoscopio is a tool to create interactive notebooks and
documentation for computer narratives and data visualization.
They are structured as outlines/trees containing textual and
code
Post by Dimitris Chloupis
Post by H. Hirzel
Post by H. Hirzel
nodes that can be exported to several formats: LaTeX, HTML
and pdf (via pandoc).
It can be used in several endeavors like: reproductible open research
and science, data journalism, data activism among others
keywords: data-activism data-journalism data-science
data-visualization documentation interactive-notebook markdown markup
open-data open-research open-science reproducible-research
## Grease
The Grease Portability Library
keywords: framework portability
## Grid
This package provides a grid (2D array) implementation.
keywords: 2D-array collection container matrix
## Hashids
Hashids allow you to create URL friendly ids from sequential integer
ids. NB it is should not be considered as encryption but it does
provide a lightweight obfuscation of the underlying id.
https://github.com/alacap/hashids-pharo
keywords: hashing
## Hubcap
nil
## INIFile
A Parser for .INI files (as usually used on Windows)
keywords: configurations ini settings windows
## Iceberg
Iceberg is a set of tools that allow one to handle git repositories
directly from a Pharo image.
keywords: git vcs version control
## LightPhaser
nil
## MacroRecorder
MacroRecorder is a tool that allows the developer to
(i) record a sequence of transformations while they are applied
a
Post by Dimitris Chloupis
Post by H. Hirzel
Post by H. Hirzel
first time, either manually or with the assistance of refactoring
tools;
(ii) store and parameterize the transformations to allow their
generalization; and
(iii) apply automatically the sequence of transformations afterwards
on different code locations.
For the last step, the developer could explicitly point to the
entities to transform.
keywords: code change code manipulation programming by demonstration
source code transformations
## MatchTool
MatchTool is a simple UI for experimenting with the matching
functionality of pattern code.
MatchTool can be open from the World Menu > Tools category. More
information can be read from within the tool by pressing help button.
keywords: code inspect match pattern rewrite rules
## MessageFlowBrowser
A message flow browse to browser senders, implementors and messages of
methods in a single window and folow the message flow
keywords: browser messageflow methods tools
## Mocketry
Mocketry is mock objects framework. It provides simplest way to stub
any message to any object and to verify any occurred behaviour.
mock := Mock new.
mock stub someMessage willReturn: 1000.
mock someMessage should be: 1000.
mock should receive someMessage.
rect stub width willReturn: 1000.
rect area should be: 3000 "area = width * height".
rect should receive width.
keywords: BDD SUnit TDD framework mocks
## MooseProject
MooseProject is a library to store many differents versions for a
project. It will persist everything on the disk and allow you easily
to recover the model associated to the desired version
keywords: Moose project version
## Mustache
nil
## NPMJS
Spotter search of NPM packages
keywords: javascript nodejs
## Neo4reSt
Neo4reSt is a rest client of Neo4j graph database.
(http://neo4j.org/
)
Post by Dimitris Chloupis
Post by H. Hirzel
Post by H. Hirzel
- Raw rest client
- Wrapper client which handles JSON well
- Object level wrapper classes (Node, Relationship, Property)
keywords: Neo4j database graph persistence
## NeoCSV
CSV (Comma Separated Values) is a popular data-interchange format.
NeoCSV is an elegant and efficient standalone framework to read and
write CSV converting to or from Smalltalk objects.
keywords: ascii comma-separated-values csv fields format input output
records rfc-4180 tab-separated-values tabular-data text tsv
## NeoJSON
JSON (JavaScript Object Notation) is a popular data-interchange
format. NeoJSON is an elegant and efficient standalone Smalltalk
framework to read and write JSON converting to or from Smalltalk
objects.
keywords: encoding format input javascript json output serialization text
## Nginx
Utility project to work with nginx from Pharo image (Windows only so far)
keywords: nginx server web windows
## OSLinuxCentOS
A part of the OS-XXX series to easier work with native operating
system platforms. Here for using CentOS Linux environments in Pharo.
keywords: centos linux native os unix
## OSLinuxUbuntu
A part of the OS-XXX series to easier work with native operating
system platforms. Here for using Ubuntu Linux environments in Pharo.
keywords: linux native os ubuntu unix
## OSOSX
nil
## OSProcess
nil
## OSRaspbian
A part of the OS-XXX series to easier work with native operating
system platforms. Here for using Raspbian environments in Pharo.
keywords: linux native os raspbian unix
## OSUnix
A part of the OS-XXX series to easier work with native operating
system platforms. Here for using Unix environments in Pharo.
keywords: native os unix
## OSWindows
API wrappers and tools for the Windows operating system
keywords: api native win32 windows
## ObjectStatistics
ObjectStatistics is tool to analyse set of objects by computing
different kind of metrics and look at them from different angles.
Imaging that we have collection of message sends and we want to know
number of message sends in dimension of receiver, receiver class and
message selector. We have different angles to look at this data: from
receiver class to selector and receiver or from selector to receiver
class and receiver or any other combination.
We also could analyze different kind of metrics which could be
computed on given objects. It could be number of unique receivers,
execution time, executed lines of code, etc.
This package implements computation of object statistics over declared
metrics and dimensions space.
stat := ObjectStatistics.
stat
countAllAs: 'sends';
countDifferent: [ :message | message receiver ] as: 'instances'.
stat
'classes';
with: [
stat dimension: [ :message | message selector ]
named: 'msgs';
with: [
stat
dimension: [ :r | r ] named: 'receivers';
#('instances')]];
'msgs';
Post by Dimitris Chloupis
Post by H. Hirzel
Post by H. Hirzel
with: [
stat dimension: [ :message | message receiver
class ] named: 'classes';
with: [
stat
'receivers']].
stat accumulateAll: messageSends.
keywords: analysis framework
## ObjectTravel
ObjectTravel implements traversal of full object graph. It enumerates
each reference in breadth-first direction and visit every reference
only once.
traveler moveToNextReference. "true".
traveler currentReference. "10"
traveler nextReference. "30"
traveler := ObjectTraveler on: #(10 20 30).
traveler nextReference "10"
traveler nextReference "20"
traveler replaceCurrentReferenceWith: #newReference.
keywords: objectsTraversal stream tool
## Octopus
A pharo tool that utilises Pillar library to process pillar text
copied to the clipboard and convert it to HTML
keywords: HTML markdown pillar
## OrderPreservingDictionary
This package has two ordered dictionary classes that behave like
OrderedDictionary and OrderedIdentityDictionary in Pharo but are
portable to Squeak and Gemstone, and other ordered dictionary classes
needed by XMLParser.
keywords: collection dictionary order-preserving ordered
## Orion
Orion is an interactive prototyping tool for reengineering, to
simulate changes and compare their impact on multiple versions of
software source code models.
keywords: Moose delta model versioning
## Pastell
Pastell is an add-on for XMLParser which adds some methods that make
navigation of an XML DOM tree much easier, it is a XMLPath-like
library.
keywords: xml xpath
## PharoSprint
The Pharo community regularly organize Pharo Sprint events. The Pharo
Sprint is a regular (monthly) event when developers and users meet
together to fix bugs. This usually takes place in a physical location,
but people are welcomed to participate from any place. This is a great
opportunity for novices to get involved and learn from experts!
For more information: http://bit.ly/SprintWeb and
http://pharo.org/contribute-events
keywords: Bug Discord FogBugz PharoSprint Sprint SprintDay
## Pillar
Pillar is a wiki-like syntax, its document model, a parser for it, and
a set of exporters (e.g., HTML, LaTeX, Markdown...). Pillar is
primarily used as the wiki syntax behind the *Pier
e.g., *the Enterprise Pharo book>http://books.pharo.org/*.
keywords: book document html latex markdown pier wiki
## PlotMorph
PlotMorph is a nice plotting system. It can plot multiple series with
different graphical attributes.
keywords: Morph UI graph plotting point series
## PolyMath
Tools for scientific computation in Smalltalk
keywords: ODE mathematics science
## Pomodoro
A pomodoro timer
keywords: GTD morphic pomodoro
## PunQLite
UnQLite binding for Pharo Smalltalk. UnQLite is a fast, lightweight,
portable, embedded KVS with a simple scripting engine (Jx9). By using
PunQLite, you can store/load lots of data as if just using a normal
Dictionary.
PunQLite uses UnQLite shared library. If you have no time to compile,
just get pre-built binary from the github project page
(https://github.com/mumez/PunQLite).
keywords: KVS NoSQL UFFI UnQLite database persistence
## QualityAssistant
Hi, I'm your personal quality assistant. I run Smalllint rules on the
code that you modify, and notify you about quality changes.
https://github.com/Uko/QualityAssistant#qualityassistant
keywords: automatic critics quality smallint validation
## QuickAccess
A manager for scripts with Quick access.
keywords: fun web
## RProjectConnector
nil
## RediStick
RediStick is a redis client which supports auto-reconnecting.
- Minimum dependencies (runs on Pharo without other libraries)
- Supports unicode strings
keywords: KVS NoSQL Redis database persistence
## ReferenceFinder
Finds reference paths between objects to help find memory leaks.
keywords: memory objects references tracing
## RegexTools
A tool to test and verify regular expressions
keywords: regex utilities
## Roassal2
Roassal is an agile visualization engine. Roassal graphically renders
objects using short and expressive Smalltalk expressions. A large set
of interaction facilities are provided for a better user experience.
Painting, brushing, interconnecting, zooming, drag and dropping will
just make you more intimate with any arbitrary object model.
keywords: charting data visualization
## SRT2VTT
This package convert SRT to VTT (subtitles for videos plugins)
keywords: browser plugin srt videos vtt web
## ScriptManager
A simple tool to manage scripts. Still based on Morphic. We would
recommend users to switch to QuickAccess which is a better script
manager than this tool.
keywords: fun script
## Seaside3
The framework for developing sophisticated web applications in
Smalltalk. See http://www.seaside.st
keywords: framework seaside web
## SimilarityFlooding
This project is an implementation of a FAMIX model difference
algorithm based on Similarity Flooding algorithm as defined by Sergey
A versatile graph matching algorithm and its application to schema
matching' and in the technical report associated.
Check the github repository for documentation
[https://github.com/juliendelplanque/SFDiff].
keywords: FAMIX SFDiff difference model similarity similarity flooding
## Spy2
Spy2 is a profiling framework. You can easily create profilers. You
can have a look at a description
http://bergel.eu/download/papers/Berg10f-Spy.pdf
The Hapao test coverage tool is included.
keywords: Hapao Memory Performance Profiling Roassal Spy
## Stamp
Stamp is an implementation of STOMP 1.2, a protocol to access message
oriented middleware like RabbitMQ.
keywords: client format messaging middleware queueing rabbitmq stomp
## StateSpecs
StateSpecs is object state specification framework. It describes
particular object states by first class specifications. For example
there are SpecOfCollectionItem, SpecOfObjectClass and
SpecOfObjectSuperclass. They can match and validate given objects. In
case when object is not satisfied specification you will get failure
result with detailed information about problem.
spec matches: anObject.
spec validate: anObject. "it returns validation result which
can
be
success or particular failure"
To easily create specifications and validate objects by them
StateSpecs provides two kind DSL: should expressions and "word"
classes.
1 should be: 2
1 should equal: 10
Kind of: Number
Instance of: String
Equal to: 'test'
keywords: BDD SUnit TDD framework validation
## Ston
Smalltalk Object Notation (STON) is a lightweight, text-based,
human-readable data interchange format for class-based
object-oriented
languages like Smalltalk. It can be used to serialize domain level
objects, either for persistency or network transport. As its name
suggests, it is based on JSON (Javascript Object Notation). It adds
symbols as a primitive value, class tags for object values and
references.
keywords: encoding format input json output serialization ston text
## SublimishTheme
A dark theme for Pharo. If you like Sublime then you'll like
Sublimish
theme.
Project main page: *
https://github.com/sebastianconcept/SublimishTheme*
Post by Dimitris Chloupis
Post by H. Hirzel
Post by H. Hirzel
keywords: GUI IDE
## Tarantalk
Tarantalk is a Tarantool (Lua with DBMS) connector.
- Store/load tuples.
- Find tuples by multiple indices
- Evaluate Lua programs
keywords: KVS Lua NoSQL Tarantool Tuple database persistence
## Tarantube
Tarantool message queue wrapper based on Tarantalk.
- Supporting FIFO queue with priority, TTL, TTR, delay and sub queues.
- Need to install Tarantool + Tarantool queue module
(https://github.com/tarantool/queue)
keywords: Lua MQ NoSQL Tarantalk Tarantool queue
## Tealight
Tealight is a project defining a few extensions to the Teapot
framework to make the (tea) time you spend with the Pharo Teapot
system even easier..
keywords: api git github
## Teapot
Teapot is micro web framework on top of the Zinc HTTP components, that
focuses on simplicity and ease of use.
keywords: framework http micro sinatra web
## TestsUsageAnalyser
nil
## Trie
This package provides a trie implementation (as developed by Benoit
St-Jean. See https://en.wikipedia.org/wiki/Trie
keywords: collection containers retrieval trie
## Units
Units is a simple and powerful library to manage different units.
keywords: Comparison Meter Points Units
## VMProfiler
VMProfiler is a sampling profiler tracking down where the time is
spent in the VM when executing a specific portion of code. It computes
where the time is spent in the compiled C code of the VM, in the VM
plugins and in the native functions.
The results are available as a statistical report.
keywords: cog jit profiling virtual machine
## VerStix
A Vert.x TCP EventBus client for Pharo Smalltalk.
- interact with various Vert.x components (Web, Auth, DB, MQ, etc).
- interact with other Smalltalk images
- interact with various languages which support Vert.x EventBus
keywords: microservices network vertx
## VistaCursors
Provide a better looking cursor (similar to Windows Vista).
keywords: cursor theming ui windows
## VoyageMongo
Voyage-Mongo is an object persistence layer made for easy the work
with *MongoDB>http://www.mongodb.org*. It is an "ODM"
(Object-Document
Post by Dimitris Chloupis
Post by H. Hirzel
Post by H. Hirzel
Mapper), in the same spirit of the ORMs for relational approaches.
keywords: database mongodb nosql persistence
## VoyageUnqlite
Voyage-UnQLite is an object persistence layer made for easy the work
with *UnQLite>https://unqlite.org*. It is an "ODM" (Object-Document
Mapper), in the same spirit of the ORMs for relational approaches.
keywords: database nosql persistence unqlite
## WKHTML2PDF
Render HTML into PDF and various image formats using the (external) Qt
WebKit rendering engine directly from Pharo.
keywords: html pdf reporting
## WebBrowser
General and platform independent WebBrowser access for Pharo 4.0
onwards based on NativeBoost, for Pharo 5.0 onwards based on UFFI
keywords: internet platform url utility web webbrowser
## XMI
A XMI wrapper for Pharo to easily access XML Metadata informations.
keywords: omg uml xmi xml
## XMLParser
XMLParser provides validating SAX and DOM parsers for well-formed XML
documents on Pharo, Squeak, and Gemstone. It also provides a DOM API
for manipulating documents, namespace support, and an optional
XMLWriter for writing documents. Validation and namespace checking are
enabled by default, but not resolution of external entities.
http://www.w3.org/TR/REC-xml/
http://www.w3.org/TR/REC-xml-names/
http://www.w3.org/TR/xml-id/
http://www.w3.org/TR/xmlbase/
https://www.w3.org/TR/xml-c14n
keywords: DOM DTD HTML SAX XHTML XML document markup parser validation
web
## XMLParserHTML
XMLParserHTML provides SAX and DOM parsers for HTML that convert
possibly malformed HTML into well-formed XML.
keywords: DOM HTML SAX document markup parser web
## XMLParserStAX
XMLParserStAX is a pull parser for XMLParser that provides a streaming
interface for "pulling" XML events and also supports pull-style DOM
parsing for dynamically converting events into DOM nodes.
keywords: DOM DTD HTML StAX XHTML XML XMLPullParser document markup
parser pull pull-parser validation web
## XMLWriter
XMLWriter allows you to generate well-formed XML documents using an
API based on Seaside's canvas and tag brushes so all tags will be
nested properly and not left unclosed.
keywords: HTML XHTML XML document markup web writer
## XPath
An XPath library for Pharo, Squeak, and Gemstone leveraging the XML
parsing capabilities of XMLParser. Supports XPath 1.0 syntax with
extensions.
keywords: DOM HTML XHTML XML XPath document markup parser query web
## ZTimestamp
The ZTimestamp project groups a number of classes that form an
addition/alternative to DateAndTime/Timestamp. The core ZTimestamp
class represents a point in time, with second precision and always in
the UTC/GTM/Zulu timezone. It is faster and smaller.
ZTimestampFormat
is a formatter and parser that is example based. ZTimezone uses the
standard Olsone timezone database to compute the offset for local time
at specific points in time for a specified timezone.
ZTimestampSNTPClient is an SNTP client to check the local clock
against network time servers. This project is small and has no further
dependencies. It runs in Pharo 2 and 3.
keywords: chronology date formatting parsing sntp time timestamp timezone
## ZincHTTPComponents
Zinc HTTP Components is an open source Smalltalk framework to deal
with HTTP. It models most concepts of HTTP and its related standards
and offers both client and server functionality. One of its key goals
is to offer understandability (Smalltalk’s design principle number
one). Anyone with a basic understanding of Smalltalk and the HTTP
principles should be able to understand what is going on and learn, by
looking at the implementation.
keywords: character-encoding client http internet mime-type networking
request response server url
# Pharo 6 catalog list - description is missing
- CommandShell
- FamixDiff
- Ghost
- Hubcap
- LightPhaser
- Mustache
- OSOSX
- OSProcess
- RProjectConnector
- TestsUsageAnalyser
Post by H. Hirzel
This code snippet below gives a list of all Pharo 6.0 catalog entries
CatalogProvider default retrieveProjects select: [ :x |
(x at: 'repositoryUrl') =
'http://smalltalkhub.com/mc/Pharo/MetaRepoForPharo60/main' ].
Post by Dimitris Chloupis
absolutely , I will add Torsten's wonderful wiki and Grafoscopio details,
keep them coming :)
Anything I miss, please alert me as Hizrel just did , I want to
link
to
anything Pharo related ,lets bring everything under one roof ;)
On Mon, Aug 21, 2017 at 9:15 AM H. Hirzel
Post by H. Hirzel
And add the overview to Grafoscopio
Aug 20, 2017
[Pharo-users] [Ann] [Grafoscopio] New release with major
improvements
Post by Dimitris Chloupis
Post by H. Hirzel
Post by H. Hirzel
Post by H. Hirzel
Post by Dimitris Chloupis
Post by H. Hirzel
Post by H. Hirzel
......
Post by Dimitris Chloupis
you make any submission you want here in this thread and I will
port
it
to
wiki with copy paste and a bit of structuring :)
Dimitris,
Could you please do add a link in
https://github.com/SquareBracketAssociates/PharoWiki
to Torsten's wiki
http://wiki.astares.com/pharo
It has over 500 pages with good content I was not aware of....
Thanks,
Hannes
Dimitris Chloupis
2017-08-24 12:59:31 UTC
Permalink
Actually I have already done this

https://github.com/SquareBracketAssociates/PharoWiki/blob/master/contents/projects.md

when he announced the project on the mailing list, but thanks for trying to
inform me, I appreciate it. I will try to update the wiki each time
something new pops up in the mailing list that is usable which means
a) new project
b) some kind of news of general interest about pharo
c) some kind of documentation (article, pdf, power point, blog post etc)
about pharo or third party library/tool
Post by H. Hirzel
Another thing to add
link to
https://github.com/dionisiydk/TelePharo
with short description
remote playground
remote browser
remote debugger
remote inspector
remote process browser
Post by Dimitris Chloupis
absolutely
done !
https://github.com/SquareBracketAssociates/PharoWiki/blob/master/contents/projects.md
Post by Dimitris Chloupis
On Tue, Aug 22, 2017 at 10:28 PM Stephane Ducasse <
Post by Stephane Ducasse
You should add the script that generate the list of catalog items so
that we can update it.
On Tue, Aug 22, 2017 at 8:18 PM, Dimitris Chloupis
Post by Dimitris Chloupis
Ok I restructured the wiki , giving it a table of contents.
Added Pharo 6 Catalog projects
Added PettitParser2
Added a sections for How tos , and a couple of them
Added a news section
Added a link to Grafoscopio homepage at its Catalaog section
Added a wikis section with a link to Astares Pharo wiki
Keep your suggestions coming , thank you Hirzel
https://squarebracketassociates.github.io/PharoWiki/
Post by H. Hirzel
Please add the reference to the PetitParser2 book
https://kursjan.github.io/petitparser2/pillar-book/build/book.html
Post by H. Hirzel
And this one produces a catalog list in markdown format
"Produce a list of Pharo 6 catalog entries (tag: 'Pharo 6.0')"
| catalog |
catalog := CatalogProvider default retrieveProjects select: [ :x |
(x at: 'repositoryUrl') =
'http://smalltalkhub.com/mc/Pharo/MetaRepoForPharo60/main' ].
Transcript show: '# Pharo 6 catalog list'; cr.
(catalog asSortedCollection: [ :a :b | (a at: 'name') < (b at: 'name')
]) do: [ :entry | Transcript show: '## ', (entry at: 'name') ; cr;
show: (entry at: 'description'); cr;cr.
Transcript show: 'keywords: '.
keyword; space ].
Transcript cr; cr].
Transcript show: '# Pharo 6 catalog list - description is missing';
cr.
Post by Dimitris Chloupis
Post by H. Hirzel
Post by H. Hirzel
(catalog asSortedCollection: [ :a :b | (a at: 'name') < (b at: 'name')
])
'-
Post by Dimitris Chloupis
Post by Stephane Ducasse
Post by Dimitris Chloupis
Post by H. Hirzel
Post by H. Hirzel
', (entry at: 'name'); cr ]
].
................................................................................................
Post by Dimitris Chloupis
Post by Stephane Ducasse
Post by Dimitris Chloupis
Post by H. Hirzel
Post by H. Hirzel
# Pharo 6 catalog list
## Animation
Adds a delay operator turning any message send into a smooth
transition.
Post by Dimitris Chloupis
Post by H. Hirzel
Post by H. Hirzel
keywords: animation fun time
## Artefact
Artefact is a library to generate PDF documents. It provides a
document model and support the generation of PDF
keywords: PDF document layout
## AstaresDistribution
Several Pharo goodies like Pomodoro, DesktopManager, QuickAccess,
HubCap, ScriptManager, ... written by Torsten Bergmann (
astares.com)
Post by Dimitris Chloupis
Post by Stephane Ducasse
Post by Dimitris Chloupis
Post by H. Hirzel
Post by H. Hirzel
bundled for easy installation
keywords: custom distribution goodies pharo
## Atlas
A Python bridge (IPC - stream sockets) for Pharo, allowing Pharo to
use Python libraries , mix with Python code and vice versa
keywords: Atlas IPC atlas pharo python sockets
## BitmapCharacterSet
BitmapCharacterSet is a set for characters that uses a bitmap for
storing wide characters and an array of truth values for byte
characters. Used by XMLParser.
keywords: character collection set unicode
## Bootstrap
"Bootstrap for Seaside" is a project combining Seaside and Twitter
Bootstrap and easily use them to write professional looking web
applications.
keywords: Bootstrap HTML Seaside query web
## Bugzilla
Pharo wrapper for Bugzilla REST API
keywords: api bugzilla rest
## CPPBridge
CPP is a library that allows Pharo to share memory with a C++
application. This means that both can share the exact same data and
modify it. This also can allow Pharo and C++ to exacute one another
library and code. Example provided
keywords: ++ ++ C IPC bridge c cpp file mapped memory shared
## Calypso
Calypso is a new system browser based on new navigation model
keywords: IDE systemBrowser
## CheatSheet
Pharo Cheat Sheet.
*http://www.smalltalkhub.com/#!/~PharoExtras/CheatSheet*
keywords: examples syntax
## ChronosManager
ChronosManager is a time managment tool based on the pomodoro
technique offering a stopwatch and timer for keeping track of time
with tasks and goals
keywords: ChronosManager managment pomodoro time
## Citezen
Citezen is a library to parse, query and manage bibtex scientific
citations.
keywords: bibtex latex parser printer query
## CommandShell
nil
## Commander
Commander models application actions as first class objects.
Every action is implemented as separate command class (subclass of
CmdCommand) with #execute method and all state required for execution.
Commands are reusable objects and applications provide various ways to
access them. Such information is attached to command classes as
- CmdShortcutCommandActivator
- CmdContextMenuCommandActivator
- CmdDragAndDropCommandActivator
Activators are declared in command class side methods marked with
pragma #commandActivator. For example following method will allow
RenamePackageCommand to be executed by shortcut in possible system
RenamePackageCommand class>>packageBrowserShortcutActivator
<commandActivator>
PackageBrowserContext
RenamePackageCommand class>>packageBrowserMenuActivator
<commandActivator>
PackageBrowserContext
Activators are always declared with application context where they can
be applied (PackageBrowserContext in example). Application should
provide such contexts as subclasses of CmdToolContext with information
about application state. Every widget can bring own context to
interact with application as separate tool. For example system browser
shows multiple panes which provide package context, class context and
method context. And depending on context browser shows different menu
and provides different shortcuts
keywords: command command pattern tools
## Community
Community is a project to add some world menues to easily access some
community pages
keywords: community pharo
## Complex
Math-Complex brings back to Pharo the complex numbers like (1+2i)
which used to be in Squeak Kernel.
keywords: complex math number
## DacapoEnergyConsumption
This project run the Dacapo benchmarks, and monitor the energy
consumption of the CPU. It is for research purposes.
keywords: consumption energy java
## DarkMetalTheme
An alternative to DarkTheme, DarkMetalTheme offers "metalic"
tonalities
Post by Dimitris Chloupis
Post by H. Hirzel
Post by H. Hirzel
:)
keywords: theme ui
## DebuggerCritiques
Add inlined critiques into Pharo debugger
keywords: critiques debugger smallLint
## DesktopManager
A goodie to be able to manage multiple desktops in Pharo.
keywords: desktop goodie pharo tools
## DiscordSt
DiscordSt is a library for Discord service, see
https://discordapp.com
Post by Dimitris Chloupis
Post by H. Hirzel
Post by H. Hirzel
for basic information about Discord and
https://discordapp.com/developers/docs/intro for developer
information.
The stable version supports Discord Webhooks. See
https://github.com/JurajKubelka/DiscordSt for examples.
keywords: api chat client discord rest web webhook
## EventRecorder
Record and replay screen events.
keywords: recording screen
## FamixDiff
nil
## FlatQA
Hi, I'm your personal quality assistant. I run Smalllint rules on the
code that you modify, and notify you about quality changes.
https://github.com/Uko/QualityAssistant#qualityassistant
keywords: automatic critics quality smallint validation
## FogBugz
Access to FogBugz from within Pharo environment.
keywords: fun web
## Garage
Garage is the relational database driver for Pharo. Garage provides a
common API to connect with several database servers in a coherent way
(JDBC like). Along with Garage, we provide implementations of several
database drivers.
keywords: api database drivers
## GarageGlorp
This configuration loads the Garage database drivers along with the
Glorp Object-Relational Mapper. It is a convenience configuration used
to load both projects using a single config.
keywords: database driver orm persistence
## Gettext
Gettext is an implementaion of
https://www.gnu.org/software/gettext,
Post by Dimitris Chloupis
Post by Stephane Ducasse
Post by Dimitris Chloupis
Post by H. Hirzel
Post by H. Hirzel
the standard l17n package.
keywords: gettext i18n internationalization l10n localization
## Ghost
nil
## GitFileTree
GitFileTree is an integration of Git commands below Monticello,
allowing a very simple and powerfull integration with a git repository
for tracking Monticello packages, allowing for example one to work
from github.com (including with configurations support) without
any
Post by Dimitris Chloupis
Post by Stephane Ducasse
Post by Dimitris Chloupis
Post by H. Hirzel
Post by H. Hirzel
use of the command line and with perfect support of whatever is the
structure of the project under git.
Works with any possible organisation of the git repository related to
the package (single language, multi language, single package, multiple
packages, single remote repo, multiple remote repositories, branches,
you name it).
GitFileTree: is integrated into FileTree, but not easily available.
This configuration allow for a one step loading with the dependencies.
keywords: FileTree Monticello OSProcess OSSubprocess Packages
Pharo5
Post by Dimitris Chloupis
Post by Stephane Ducasse
Post by Dimitris Chloupis
Post by H. Hirzel
Post by H. Hirzel
Pharo6
git
## GitHubAPI
A GitHub API Wrapper for Pharo to easily access informations from
GitHub right from your Pharo image.
keywords: api git github
## GitHubcello
Have it happened to you that you have your project on GitHub and it
has a baseline but now you have to write down the Metacello script to
load it? Not any more! Simply paste your repo URI into GTSpotter, wait
a bit, select the baseline you want to load, and you're done!
https://github.com/Uko/GitHubcello#githubcello-
keywords: github metacello spotter
## GlorpSQLite
GlorpSQLite is the integration of Glorp with SQLite. This
configuration loads UDBC, which contains SQLite, then loads Glorp.
Once GlorpSQLite is loaded, provided Pharo can find the SQLite
so/dylib/dll file on your system, start Test Runner and run the tests.
keywords: database orm persistence relational
## Grafoscopio
Grafoscopio is a tool to create interactive notebooks and
documentation for computer narratives and data visualization.
They are structured as outlines/trees containing textual and
code
Post by Dimitris Chloupis
Post by H. Hirzel
Post by H. Hirzel
nodes that can be exported to several formats: LaTeX, HTML
and pdf (via pandoc).
It can be used in several endeavors like: reproductible open research
and science, data journalism, data activism among others
keywords: data-activism data-journalism data-science
data-visualization documentation interactive-notebook markdown markup
open-data open-research open-science reproducible-research
## Grease
The Grease Portability Library
keywords: framework portability
## Grid
This package provides a grid (2D array) implementation.
keywords: 2D-array collection container matrix
## Hashids
Hashids allow you to create URL friendly ids from sequential
integer
Post by Dimitris Chloupis
Post by Stephane Ducasse
Post by Dimitris Chloupis
Post by H. Hirzel
Post by H. Hirzel
ids. NB it is should not be considered as encryption but it does
provide a lightweight obfuscation of the underlying id.
https://github.com/alacap/hashids-pharo
keywords: hashing
## Hubcap
nil
## INIFile
A Parser for .INI files (as usually used on Windows)
keywords: configurations ini settings windows
## Iceberg
Iceberg is a set of tools that allow one to handle git repositories
directly from a Pharo image.
keywords: git vcs version control
## LightPhaser
nil
## MacroRecorder
MacroRecorder is a tool that allows the developer to
(i) record a sequence of transformations while they are applied
a
Post by Dimitris Chloupis
Post by H. Hirzel
Post by H. Hirzel
first time, either manually or with the assistance of refactoring
tools;
(ii) store and parameterize the transformations to allow
their
Post by Dimitris Chloupis
Post by Stephane Ducasse
Post by Dimitris Chloupis
Post by H. Hirzel
Post by H. Hirzel
generalization; and
(iii) apply automatically the sequence of transformations afterwards
on different code locations.
For the last step, the developer could explicitly point to
the
Post by Dimitris Chloupis
Post by Stephane Ducasse
Post by Dimitris Chloupis
Post by H. Hirzel
Post by H. Hirzel
entities to transform.
keywords: code change code manipulation programming by
demonstration
Post by Dimitris Chloupis
Post by Stephane Ducasse
Post by Dimitris Chloupis
Post by H. Hirzel
Post by H. Hirzel
source code transformations
## MatchTool
MatchTool is a simple UI for experimenting with the matching
functionality of pattern code.
MatchTool can be open from the World Menu > Tools category. More
information can be read from within the tool by pressing help button.
keywords: code inspect match pattern rewrite rules
## MessageFlowBrowser
A message flow browse to browser senders, implementors and messages of
methods in a single window and folow the message flow
keywords: browser messageflow methods tools
## Mocketry
Mocketry is mock objects framework. It provides simplest way to
stub
Post by Dimitris Chloupis
Post by Stephane Ducasse
Post by Dimitris Chloupis
Post by H. Hirzel
Post by H. Hirzel
any message to any object and to verify any occurred behaviour.
mock := Mock new.
mock stub someMessage willReturn: 1000.
mock someMessage should be: 1000.
mock should receive someMessage.
rect stub width willReturn: 1000.
rect area should be: 3000 "area = width * height".
rect should receive width.
keywords: BDD SUnit TDD framework mocks
## MooseProject
MooseProject is a library to store many differents versions for a
project. It will persist everything on the disk and allow you
easily
Post by Dimitris Chloupis
Post by Stephane Ducasse
Post by Dimitris Chloupis
Post by H. Hirzel
Post by H. Hirzel
to recover the model associated to the desired version
keywords: Moose project version
## Mustache
nil
## NPMJS
Spotter search of NPM packages
keywords: javascript nodejs
## Neo4reSt
Neo4reSt is a rest client of Neo4j graph database.
(http://neo4j.org/
)
Post by Dimitris Chloupis
Post by H. Hirzel
Post by H. Hirzel
- Raw rest client
- Wrapper client which handles JSON well
- Object level wrapper classes (Node, Relationship, Property)
keywords: Neo4j database graph persistence
## NeoCSV
CSV (Comma Separated Values) is a popular data-interchange format.
NeoCSV is an elegant and efficient standalone framework to read and
write CSV converting to or from Smalltalk objects.
keywords: ascii comma-separated-values csv fields format input output
records rfc-4180 tab-separated-values tabular-data text tsv
## NeoJSON
JSON (JavaScript Object Notation) is a popular data-interchange
format. NeoJSON is an elegant and efficient standalone Smalltalk
framework to read and write JSON converting to or from Smalltalk
objects.
keywords: encoding format input javascript json output
serialization
Post by Dimitris Chloupis
Post by Stephane Ducasse
Post by Dimitris Chloupis
Post by H. Hirzel
Post by H. Hirzel
text
## Nginx
Utility project to work with nginx from Pharo image (Windows only
so
Post by Dimitris Chloupis
Post by Stephane Ducasse
Post by Dimitris Chloupis
Post by H. Hirzel
Post by H. Hirzel
far)
keywords: nginx server web windows
## OSLinuxCentOS
A part of the OS-XXX series to easier work with native operating
system platforms. Here for using CentOS Linux environments in
Pharo.
Post by Dimitris Chloupis
Post by Stephane Ducasse
Post by Dimitris Chloupis
Post by H. Hirzel
Post by H. Hirzel
keywords: centos linux native os unix
## OSLinuxUbuntu
A part of the OS-XXX series to easier work with native operating
system platforms. Here for using Ubuntu Linux environments in
Pharo.
Post by Dimitris Chloupis
Post by Stephane Ducasse
Post by Dimitris Chloupis
Post by H. Hirzel
Post by H. Hirzel
keywords: linux native os ubuntu unix
## OSOSX
nil
## OSProcess
nil
## OSRaspbian
A part of the OS-XXX series to easier work with native operating
system platforms. Here for using Raspbian environments in Pharo.
keywords: linux native os raspbian unix
## OSUnix
A part of the OS-XXX series to easier work with native operating
system platforms. Here for using Unix environments in Pharo.
keywords: native os unix
## OSWindows
API wrappers and tools for the Windows operating system
keywords: api native win32 windows
## ObjectStatistics
ObjectStatistics is tool to analyse set of objects by computing
different kind of metrics and look at them from different angles.
Imaging that we have collection of message sends and we want to
know
Post by Dimitris Chloupis
Post by Stephane Ducasse
Post by Dimitris Chloupis
Post by H. Hirzel
Post by H. Hirzel
number of message sends in dimension of receiver, receiver class
and
Post by Dimitris Chloupis
Post by Stephane Ducasse
Post by Dimitris Chloupis
Post by H. Hirzel
Post by H. Hirzel
message selector. We have different angles to look at this data: from
receiver class to selector and receiver or from selector to
receiver
Post by Dimitris Chloupis
Post by Stephane Ducasse
Post by Dimitris Chloupis
Post by H. Hirzel
Post by H. Hirzel
class and receiver or any other combination.
We also could analyze different kind of metrics which could be
computed on given objects. It could be number of unique receivers,
execution time, executed lines of code, etc.
This package implements computation of object statistics over declared
metrics and dimensions space.
stat := ObjectStatistics.
stat
countAllAs: 'sends';
'instances'.
stat
'classes';
with: [
stat dimension: [ :message | message selector ]
named: 'msgs';
with: [
stat
'receivers';
#('instances')]];
'msgs';
Post by Dimitris Chloupis
Post by H. Hirzel
Post by H. Hirzel
with: [
stat dimension: [ :message | message receiver
class ] named: 'classes';
with: [
stat
'receivers']].
stat accumulateAll: messageSends.
keywords: analysis framework
## ObjectTravel
ObjectTravel implements traversal of full object graph. It enumerates
each reference in breadth-first direction and visit every reference
only once.
traveler moveToNextReference. "true".
traveler currentReference. "10"
traveler nextReference. "30"
traveler := ObjectTraveler on: #(10 20 30).
traveler nextReference "10"
traveler nextReference "20"
traveler replaceCurrentReferenceWith: #newReference.
keywords: objectsTraversal stream tool
## Octopus
A pharo tool that utilises Pillar library to process pillar text
copied to the clipboard and convert it to HTML
keywords: HTML markdown pillar
## OrderPreservingDictionary
This package has two ordered dictionary classes that behave like
OrderedDictionary and OrderedIdentityDictionary in Pharo but are
portable to Squeak and Gemstone, and other ordered dictionary classes
needed by XMLParser.
keywords: collection dictionary order-preserving ordered
## Orion
Orion is an interactive prototyping tool for reengineering, to
simulate changes and compare their impact on multiple versions of
software source code models.
keywords: Moose delta model versioning
## Pastell
Pastell is an add-on for XMLParser which adds some methods that
make
Post by Dimitris Chloupis
Post by Stephane Ducasse
Post by Dimitris Chloupis
Post by H. Hirzel
Post by H. Hirzel
navigation of an XML DOM tree much easier, it is a XMLPath-like
library.
keywords: xml xpath
## PharoSprint
The Pharo community regularly organize Pharo Sprint events. The Pharo
Sprint is a regular (monthly) event when developers and users meet
together to fix bugs. This usually takes place in a physical location,
but people are welcomed to participate from any place. This is a great
opportunity for novices to get involved and learn from experts!
For more information: http://bit.ly/SprintWeb and
http://pharo.org/contribute-events
keywords: Bug Discord FogBugz PharoSprint Sprint SprintDay
## Pillar
Pillar is a wiki-like syntax, its document model, a parser for it, and
a set of exporters (e.g., HTML, LaTeX, Markdown...). Pillar is
primarily used as the wiki syntax behind the *Pier
e.g., *the Enterprise Pharo book>http://books.pharo.org/*.
keywords: book document html latex markdown pier wiki
## PlotMorph
PlotMorph is a nice plotting system. It can plot multiple series with
different graphical attributes.
keywords: Morph UI graph plotting point series
## PolyMath
Tools for scientific computation in Smalltalk
keywords: ODE mathematics science
## Pomodoro
A pomodoro timer
keywords: GTD morphic pomodoro
## PunQLite
UnQLite binding for Pharo Smalltalk. UnQLite is a fast,
lightweight,
Post by Dimitris Chloupis
Post by Stephane Ducasse
Post by Dimitris Chloupis
Post by H. Hirzel
Post by H. Hirzel
portable, embedded KVS with a simple scripting engine (Jx9). By using
PunQLite, you can store/load lots of data as if just using a normal
Dictionary.
PunQLite uses UnQLite shared library. If you have no time to compile,
just get pre-built binary from the github project page
(https://github.com/mumez/PunQLite).
keywords: KVS NoSQL UFFI UnQLite database persistence
## QualityAssistant
Hi, I'm your personal quality assistant. I run Smalllint rules on the
code that you modify, and notify you about quality changes.
https://github.com/Uko/QualityAssistant#qualityassistant
keywords: automatic critics quality smallint validation
## QuickAccess
A manager for scripts with Quick access.
keywords: fun web
## RProjectConnector
nil
## RediStick
RediStick is a redis client which supports auto-reconnecting.
- Minimum dependencies (runs on Pharo without other libraries)
- Supports unicode strings
keywords: KVS NoSQL Redis database persistence
## ReferenceFinder
Finds reference paths between objects to help find memory leaks.
keywords: memory objects references tracing
## RegexTools
A tool to test and verify regular expressions
keywords: regex utilities
## Roassal2
Roassal is an agile visualization engine. Roassal graphically renders
objects using short and expressive Smalltalk expressions. A large set
of interaction facilities are provided for a better user
experience.
Post by Dimitris Chloupis
Post by Stephane Ducasse
Post by Dimitris Chloupis
Post by H. Hirzel
Post by H. Hirzel
Painting, brushing, interconnecting, zooming, drag and dropping
will
Post by Dimitris Chloupis
Post by Stephane Ducasse
Post by Dimitris Chloupis
Post by H. Hirzel
Post by H. Hirzel
just make you more intimate with any arbitrary object model.
keywords: charting data visualization
## SRT2VTT
This package convert SRT to VTT (subtitles for videos plugins)
keywords: browser plugin srt videos vtt web
## ScriptManager
A simple tool to manage scripts. Still based on Morphic. We would
recommend users to switch to QuickAccess which is a better script
manager than this tool.
keywords: fun script
## Seaside3
The framework for developing sophisticated web applications in
Smalltalk. See http://www.seaside.st
keywords: framework seaside web
## SimilarityFlooding
This project is an implementation of a FAMIX model difference
algorithm based on Similarity Flooding algorithm as defined by Sergey
A versatile graph matching algorithm and its application to schema
matching' and in the technical report associated.
Check the github repository for documentation
[https://github.com/juliendelplanque/SFDiff].
keywords: FAMIX SFDiff difference model similarity similarity flooding
## Spy2
Spy2 is a profiling framework. You can easily create profilers. You
can have a look at a description
http://bergel.eu/download/papers/Berg10f-Spy.pdf
The Hapao test coverage tool is included.
keywords: Hapao Memory Performance Profiling Roassal Spy
## Stamp
Stamp is an implementation of STOMP 1.2, a protocol to access message
oriented middleware like RabbitMQ.
keywords: client format messaging middleware queueing rabbitmq
stomp
Post by Dimitris Chloupis
Post by Stephane Ducasse
Post by Dimitris Chloupis
Post by H. Hirzel
Post by H. Hirzel
## StateSpecs
StateSpecs is object state specification framework. It describes
particular object states by first class specifications. For example
there are SpecOfCollectionItem, SpecOfObjectClass and
SpecOfObjectSuperclass. They can match and validate given objects. In
case when object is not satisfied specification you will get
failure
Post by Dimitris Chloupis
Post by Stephane Ducasse
Post by Dimitris Chloupis
Post by H. Hirzel
Post by H. Hirzel
result with detailed information about problem.
spec matches: anObject.
spec validate: anObject. "it returns validation result which
can
be
success or particular failure"
To easily create specifications and validate objects by them
StateSpecs provides two kind DSL: should expressions and "word"
classes.
1 should be: 2
1 should equal: 10
Kind of: Number
Instance of: String
Equal to: 'test'
keywords: BDD SUnit TDD framework validation
## Ston
Smalltalk Object Notation (STON) is a lightweight, text-based,
human-readable data interchange format for class-based
object-oriented
languages like Smalltalk. It can be used to serialize domain level
objects, either for persistency or network transport. As its name
suggests, it is based on JSON (Javascript Object Notation). It adds
symbols as a primitive value, class tags for object values and
references.
keywords: encoding format input json output serialization ston text
## SublimishTheme
A dark theme for Pharo. If you like Sublime then you'll like
Sublimish
theme.
Project main page: *
https://github.com/sebastianconcept/SublimishTheme*
Post by Dimitris Chloupis
Post by H. Hirzel
Post by H. Hirzel
keywords: GUI IDE
## Tarantalk
Tarantalk is a Tarantool (Lua with DBMS) connector.
- Store/load tuples.
- Find tuples by multiple indices
- Evaluate Lua programs
keywords: KVS Lua NoSQL Tarantool Tuple database persistence
## Tarantube
Tarantool message queue wrapper based on Tarantalk.
- Supporting FIFO queue with priority, TTL, TTR, delay and sub queues.
- Need to install Tarantool + Tarantool queue module
(https://github.com/tarantool/queue)
keywords: Lua MQ NoSQL Tarantalk Tarantool queue
## Tealight
Tealight is a project defining a few extensions to the Teapot
framework to make the (tea) time you spend with the Pharo Teapot
system even easier..
keywords: api git github
## Teapot
Teapot is micro web framework on top of the Zinc HTTP components, that
focuses on simplicity and ease of use.
keywords: framework http micro sinatra web
## TestsUsageAnalyser
nil
## Trie
This package provides a trie implementation (as developed by Benoit
St-Jean. See https://en.wikipedia.org/wiki/Trie
keywords: collection containers retrieval trie
## Units
Units is a simple and powerful library to manage different units.
keywords: Comparison Meter Points Units
## VMProfiler
VMProfiler is a sampling profiler tracking down where the time is
spent in the VM when executing a specific portion of code. It computes
where the time is spent in the compiled C code of the VM, in the VM
plugins and in the native functions.
The results are available as a statistical report.
keywords: cog jit profiling virtual machine
## VerStix
A Vert.x TCP EventBus client for Pharo Smalltalk.
- interact with various Vert.x components (Web, Auth, DB, MQ, etc).
- interact with other Smalltalk images
- interact with various languages which support Vert.x EventBus
keywords: microservices network vertx
## VistaCursors
Provide a better looking cursor (similar to Windows Vista).
keywords: cursor theming ui windows
## VoyageMongo
Voyage-Mongo is an object persistence layer made for easy the work
with *MongoDB>http://www.mongodb.org*. It is an "ODM"
(Object-Document
Post by Dimitris Chloupis
Post by H. Hirzel
Post by H. Hirzel
Mapper), in the same spirit of the ORMs for relational approaches.
keywords: database mongodb nosql persistence
## VoyageUnqlite
Voyage-UnQLite is an object persistence layer made for easy the
work
Post by Dimitris Chloupis
Post by Stephane Ducasse
Post by Dimitris Chloupis
Post by H. Hirzel
Post by H. Hirzel
with *UnQLite>https://unqlite.org*. It is an "ODM"
(Object-Document
Post by Dimitris Chloupis
Post by Stephane Ducasse
Post by Dimitris Chloupis
Post by H. Hirzel
Post by H. Hirzel
Mapper), in the same spirit of the ORMs for relational approaches.
keywords: database nosql persistence unqlite
## WKHTML2PDF
Render HTML into PDF and various image formats using the (external) Qt
WebKit rendering engine directly from Pharo.
keywords: html pdf reporting
## WebBrowser
General and platform independent WebBrowser access for Pharo 4.0
onwards based on NativeBoost, for Pharo 5.0 onwards based on UFFI
keywords: internet platform url utility web webbrowser
## XMI
A XMI wrapper for Pharo to easily access XML Metadata informations.
keywords: omg uml xmi xml
## XMLParser
XMLParser provides validating SAX and DOM parsers for well-formed XML
documents on Pharo, Squeak, and Gemstone. It also provides a DOM
API
Post by Dimitris Chloupis
Post by Stephane Ducasse
Post by Dimitris Chloupis
Post by H. Hirzel
Post by H. Hirzel
for manipulating documents, namespace support, and an optional
XMLWriter for writing documents. Validation and namespace checking are
enabled by default, but not resolution of external entities.
http://www.w3.org/TR/REC-xml/
http://www.w3.org/TR/REC-xml-names/
http://www.w3.org/TR/xml-id/
http://www.w3.org/TR/xmlbase/
https://www.w3.org/TR/xml-c14n
keywords: DOM DTD HTML SAX XHTML XML document markup parser validation
web
## XMLParserHTML
XMLParserHTML provides SAX and DOM parsers for HTML that convert
possibly malformed HTML into well-formed XML.
keywords: DOM HTML SAX document markup parser web
## XMLParserStAX
XMLParserStAX is a pull parser for XMLParser that provides a streaming
interface for "pulling" XML events and also supports pull-style DOM
parsing for dynamically converting events into DOM nodes.
keywords: DOM DTD HTML StAX XHTML XML XMLPullParser document markup
parser pull pull-parser validation web
## XMLWriter
XMLWriter allows you to generate well-formed XML documents using an
API based on Seaside's canvas and tag brushes so all tags will be
nested properly and not left unclosed.
keywords: HTML XHTML XML document markup web writer
## XPath
An XPath library for Pharo, Squeak, and Gemstone leveraging the XML
parsing capabilities of XMLParser. Supports XPath 1.0 syntax with
extensions.
keywords: DOM HTML XHTML XML XPath document markup parser query web
## ZTimestamp
The ZTimestamp project groups a number of classes that form an
addition/alternative to DateAndTime/Timestamp. The core ZTimestamp
class represents a point in time, with second precision and always in
the UTC/GTM/Zulu timezone. It is faster and smaller.
ZTimestampFormat
is a formatter and parser that is example based. ZTimezone uses the
standard Olsone timezone database to compute the offset for local time
at specific points in time for a specified timezone.
ZTimestampSNTPClient is an SNTP client to check the local clock
against network time servers. This project is small and has no further
dependencies. It runs in Pharo 2 and 3.
keywords: chronology date formatting parsing sntp time timestamp timezone
## ZincHTTPComponents
Zinc HTTP Components is an open source Smalltalk framework to deal
with HTTP. It models most concepts of HTTP and its related
standards
Post by Dimitris Chloupis
Post by Stephane Ducasse
Post by Dimitris Chloupis
Post by H. Hirzel
Post by H. Hirzel
and offers both client and server functionality. One of its key goals
is to offer understandability (Smalltalk’s design principle number
one). Anyone with a basic understanding of Smalltalk and the HTTP
principles should be able to understand what is going on and learn, by
looking at the implementation.
keywords: character-encoding client http internet mime-type networking
request response server url
# Pharo 6 catalog list - description is missing
- CommandShell
- FamixDiff
- Ghost
- Hubcap
- LightPhaser
- Mustache
- OSOSX
- OSProcess
- RProjectConnector
- TestsUsageAnalyser
Post by H. Hirzel
This code snippet below gives a list of all Pharo 6.0 catalog entries
CatalogProvider default retrieveProjects select: [ :x |
(x at: 'repositoryUrl') =
'http://smalltalkhub.com/mc/Pharo/MetaRepoForPharo60/main' ].
Post by Dimitris Chloupis
absolutely , I will add Torsten's wonderful wiki and Grafoscopio
details,
keep them coming :)
Anything I miss, please alert me as Hizrel just did , I want to
link
to
anything Pharo related ,lets bring everything under one roof ;)
On Mon, Aug 21, 2017 at 9:15 AM H. Hirzel
Post by H. Hirzel
And add the overview to Grafoscopio
Aug 20, 2017
[Pharo-users] [Ann] [Grafoscopio] New release with major
improvements
Post by Dimitris Chloupis
Post by H. Hirzel
Post by H. Hirzel
Post by H. Hirzel
Post by Dimitris Chloupis
Post by H. Hirzel
Post by H. Hirzel
......
Post by Dimitris Chloupis
you make any submission you want here in this thread and I will
port
it
to
wiki with copy paste and a bit of structuring :)
Dimitris,
Could you please do add a link in
https://github.com/SquareBracketAssociates/PharoWiki
to Torsten's wiki
http://wiki.astares.com/pharo
It has over 500 pages with good content I was not aware of....
Thanks,
Hannes
Stephane Ducasse
2017-08-24 20:31:24 UTC
Permalink
You have Netstyle/Workflow too.

On Thu, Aug 24, 2017 at 2:59 PM, Dimitris Chloupis
Post by Dimitris Chloupis
Actually I have already done this
https://github.com/SquareBracketAssociates/PharoWiki/blob/master/contents/projects.md
when he announced the project on the mailing list, but thanks for trying to
inform me, I appreciate it. I will try to update the wiki each time
something new pops up in the mailing list that is usable which means
a) new project
b) some kind of news of general interest about pharo
c) some kind of documentation (article, pdf, power point, blog post etc)
about pharo or third party library/tool
Post by H. Hirzel
Another thing to add
link to
https://github.com/dionisiydk/TelePharo
with short description
remote playground
remote browser
remote debugger
remote inspector
remote process browser
Post by Dimitris Chloupis
absolutely
done !
https://github.com/SquareBracketAssociates/PharoWiki/blob/master/contents/projects.md
On Tue, Aug 22, 2017 at 10:28 PM Stephane Ducasse
Post by Stephane Ducasse
You should add the script that generate the list of catalog items so
that we can update it.
On Tue, Aug 22, 2017 at 8:18 PM, Dimitris Chloupis
Post by Dimitris Chloupis
Ok I restructured the wiki , giving it a table of contents.
Added Pharo 6 Catalog projects
Added PettitParser2
Added a sections for How tos , and a couple of them
Added a news section
Added a link to Grafoscopio homepage at its Catalaog section
Added a wikis section with a link to Astares Pharo wiki
Keep your suggestions coming , thank you Hirzel
https://squarebracketassociates.github.io/PharoWiki/
Post by H. Hirzel
Please add the reference to the PetitParser2 book
https://kursjan.github.io/petitparser2/pillar-book/build/book.html
Post by H. Hirzel
And this one produces a catalog list in markdown format
"Produce a list of Pharo 6 catalog entries (tag: 'Pharo 6.0')"
| catalog |
catalog := CatalogProvider default retrieveProjects select: [ :x |
(x at: 'repositoryUrl') =
'http://smalltalkhub.com/mc/Pharo/MetaRepoForPharo60/main' ].
Transcript show: '# Pharo 6 catalog list'; cr.
(catalog asSortedCollection: [ :a :b | (a at: 'name') < (b at: 'name')
]) do: [ :entry | Transcript show: '## ', (entry at: 'name') ; cr;
show: (entry at: 'description'); cr;cr.
Transcript show: 'keywords: '.
keyword; space ].
Transcript cr; cr].
Transcript show: '# Pharo 6 catalog list - description is missing';
cr.
Post by Dimitris Chloupis
Post by H. Hirzel
Post by H. Hirzel
(catalog asSortedCollection: [ :a :b | (a at: 'name') < (b at: 'name')
])
do: [:entry | (entry at: 'description') ifNil: [ Transcript show: '-
', (entry at: 'name'); cr ]
].
................................................................................................
Post by Dimitris Chloupis
Post by H. Hirzel
Post by H. Hirzel
# Pharo 6 catalog list
## Animation
Adds a delay operator turning any message send into a smooth
transition.
Post by Dimitris Chloupis
Post by H. Hirzel
Post by H. Hirzel
keywords: animation fun time
## Artefact
Artefact is a library to generate PDF documents. It provides a
document model and support the generation of PDF
keywords: PDF document layout
## AstaresDistribution
Several Pharo goodies like Pomodoro, DesktopManager, QuickAccess,
HubCap, ScriptManager, ... written by Torsten Bergmann (astares.com)
bundled for easy installation
keywords: custom distribution goodies pharo
## Atlas
A Python bridge (IPC - stream sockets) for Pharo, allowing Pharo to
use Python libraries , mix with Python code and vice versa
keywords: Atlas IPC atlas pharo python sockets
## BitmapCharacterSet
BitmapCharacterSet is a set for characters that uses a bitmap for
storing wide characters and an array of truth values for byte
characters. Used by XMLParser.
keywords: character collection set unicode
## Bootstrap
"Bootstrap for Seaside" is a project combining Seaside and Twitter
Bootstrap and easily use them to write professional looking web
applications.
keywords: Bootstrap HTML Seaside query web
## Bugzilla
Pharo wrapper for Bugzilla REST API
keywords: api bugzilla rest
## CPPBridge
CPP is a library that allows Pharo to share memory with a C++
application. This means that both can share the exact same data and
modify it. This also can allow Pharo and C++ to exacute one another
library and code. Example provided
keywords: ++ ++ C IPC bridge c cpp file mapped memory shared
## Calypso
Calypso is a new system browser based on new navigation model
keywords: IDE systemBrowser
## CheatSheet
Pharo Cheat Sheet.
*http://www.smalltalkhub.com/#!/~PharoExtras/CheatSheet*
keywords: examples syntax
## ChronosManager
ChronosManager is a time managment tool based on the pomodoro
technique offering a stopwatch and timer for keeping track of time
with tasks and goals
keywords: ChronosManager managment pomodoro time
## Citezen
Citezen is a library to parse, query and manage bibtex scientific
citations.
keywords: bibtex latex parser printer query
## CommandShell
nil
## Commander
Commander models application actions as first class objects.
Every action is implemented as separate command class (subclass of
CmdCommand) with #execute method and all state required for execution.
Commands are reusable objects and applications provide various
ways
to
access them. Such information is attached to command classes as
- CmdShortcutCommandActivator
- CmdContextMenuCommandActivator
- CmdDragAndDropCommandActivator
Activators are declared in command class side methods marked with
pragma #commandActivator. For example following method will allow
RenamePackageCommand to be executed by shortcut in possible system
RenamePackageCommand class>>packageBrowserShortcutActivator
<commandActivator>
PackageBrowserContext
RenamePackageCommand class>>packageBrowserMenuActivator
<commandActivator>
PackageBrowserContext
Activators are always declared with application context where they can
be applied (PackageBrowserContext in example). Application should
provide such contexts as subclasses of CmdToolContext with information
about application state. Every widget can bring own context to
interact with application as separate tool. For example system browser
shows multiple panes which provide package context, class context and
method context. And depending on context browser shows different menu
and provides different shortcuts
keywords: command command pattern tools
## Community
Community is a project to add some world menues to easily access some
community pages
keywords: community pharo
## Complex
Math-Complex brings back to Pharo the complex numbers like (1+2i)
which used to be in Squeak Kernel.
keywords: complex math number
## DacapoEnergyConsumption
This project run the Dacapo benchmarks, and monitor the energy
consumption of the CPU. It is for research purposes.
keywords: consumption energy java
## DarkMetalTheme
An alternative to DarkTheme, DarkMetalTheme offers "metalic"
tonalities
Post by Dimitris Chloupis
Post by H. Hirzel
Post by H. Hirzel
:)
keywords: theme ui
## DebuggerCritiques
Add inlined critiques into Pharo debugger
keywords: critiques debugger smallLint
## DesktopManager
A goodie to be able to manage multiple desktops in Pharo.
keywords: desktop goodie pharo tools
## DiscordSt
DiscordSt is a library for Discord service, see
https://discordapp.com
Post by Dimitris Chloupis
Post by H. Hirzel
Post by H. Hirzel
for basic information about Discord and
https://discordapp.com/developers/docs/intro for developer
information.
The stable version supports Discord Webhooks. See
https://github.com/JurajKubelka/DiscordSt for examples.
keywords: api chat client discord rest web webhook
## EventRecorder
Record and replay screen events.
keywords: recording screen
## FamixDiff
nil
## FlatQA
Hi, I'm your personal quality assistant. I run Smalllint rules on the
code that you modify, and notify you about quality changes.
https://github.com/Uko/QualityAssistant#qualityassistant
keywords: automatic critics quality smallint validation
## FogBugz
Access to FogBugz from within Pharo environment.
keywords: fun web
## Garage
Garage is the relational database driver for Pharo. Garage
provides
a
common API to connect with several database servers in a coherent way
(JDBC like). Along with Garage, we provide implementations of several
database drivers.
keywords: api database drivers
## GarageGlorp
This configuration loads the Garage database drivers along with the
Glorp Object-Relational Mapper. It is a convenience configuration used
to load both projects using a single config.
keywords: database driver orm persistence
## Gettext
Gettext is an implementaion of
https://www.gnu.org/software/gettext,
the standard l17n package.
keywords: gettext i18n internationalization l10n localization
## Ghost
nil
## GitFileTree
GitFileTree is an integration of Git commands below Monticello,
allowing a very simple and powerfull integration with a git repository
for tracking Monticello packages, allowing for example one to work
from github.com (including with configurations support) without any
use of the command line and with perfect support of whatever is the
structure of the project under git.
Works with any possible organisation of the git repository related to
the package (single language, multi language, single package, multiple
packages, single remote repo, multiple remote repositories, branches,
you name it).
GitFileTree: is integrated into FileTree, but not easily available.
This configuration allow for a one step loading with the dependencies.
keywords: FileTree Monticello OSProcess OSSubprocess Packages Pharo5
Pharo6
git
## GitHubAPI
A GitHub API Wrapper for Pharo to easily access informations from
GitHub right from your Pharo image.
keywords: api git github
## GitHubcello
Have it happened to you that you have your project on GitHub and it
has a baseline but now you have to write down the Metacello script to
load it? Not any more! Simply paste your repo URI into GTSpotter, wait
a bit, select the baseline you want to load, and you're done!
https://github.com/Uko/GitHubcello#githubcello-
keywords: github metacello spotter
## GlorpSQLite
GlorpSQLite is the integration of Glorp with SQLite. This
configuration loads UDBC, which contains SQLite, then loads Glorp.
Once GlorpSQLite is loaded, provided Pharo can find the SQLite
so/dylib/dll file on your system, start Test Runner and run the tests.
keywords: database orm persistence relational
## Grafoscopio
Grafoscopio is a tool to create interactive notebooks and
documentation for computer narratives and data visualization.
They are structured as outlines/trees containing textual and
code
Post by Dimitris Chloupis
Post by H. Hirzel
Post by H. Hirzel
nodes that can be exported to several formats: LaTeX, HTML
and pdf (via pandoc).
It can be used in several endeavors like: reproductible open
research
and science, data journalism, data activism among others
keywords: data-activism data-journalism data-science
data-visualization documentation interactive-notebook markdown markup
open-data open-research open-science reproducible-research
## Grease
The Grease Portability Library
keywords: framework portability
## Grid
This package provides a grid (2D array) implementation.
keywords: 2D-array collection container matrix
## Hashids
Hashids allow you to create URL friendly ids from sequential integer
ids. NB it is should not be considered as encryption but it does
provide a lightweight obfuscation of the underlying id.
https://github.com/alacap/hashids-pharo
keywords: hashing
## Hubcap
nil
## INIFile
A Parser for .INI files (as usually used on Windows)
keywords: configurations ini settings windows
## Iceberg
Iceberg is a set of tools that allow one to handle git repositories
directly from a Pharo image.
keywords: git vcs version control
## LightPhaser
nil
## MacroRecorder
MacroRecorder is a tool that allows the developer to
(i) record a sequence of transformations while they are applied
a
Post by Dimitris Chloupis
Post by H. Hirzel
Post by H. Hirzel
first time, either manually or with the assistance of refactoring
tools;
(ii) store and parameterize the transformations to allow their
generalization; and
(iii) apply automatically the sequence of transformations
afterwards
on different code locations.
For the last step, the developer could explicitly point to the
entities to transform.
keywords: code change code manipulation programming by demonstration
source code transformations
## MatchTool
MatchTool is a simple UI for experimenting with the matching
functionality of pattern code.
MatchTool can be open from the World Menu > Tools category. More
information can be read from within the tool by pressing help button.
keywords: code inspect match pattern rewrite rules
## MessageFlowBrowser
A message flow browse to browser senders, implementors and
messages
of
methods in a single window and folow the message flow
keywords: browser messageflow methods tools
## Mocketry
Mocketry is mock objects framework. It provides simplest way to stub
any message to any object and to verify any occurred behaviour.
mock := Mock new.
mock stub someMessage willReturn: 1000.
mock someMessage should be: 1000.
mock should receive someMessage.
rect stub width willReturn: 1000.
rect area should be: 3000 "area = width * height".
rect should receive width.
keywords: BDD SUnit TDD framework mocks
## MooseProject
MooseProject is a library to store many differents versions for a
project. It will persist everything on the disk and allow you easily
to recover the model associated to the desired version
keywords: Moose project version
## Mustache
nil
## NPMJS
Spotter search of NPM packages
keywords: javascript nodejs
## Neo4reSt
Neo4reSt is a rest client of Neo4j graph database.
(http://neo4j.org/
)
Post by Dimitris Chloupis
Post by H. Hirzel
Post by H. Hirzel
- Raw rest client
- Wrapper client which handles JSON well
- Object level wrapper classes (Node, Relationship, Property)
keywords: Neo4j database graph persistence
## NeoCSV
CSV (Comma Separated Values) is a popular data-interchange format.
NeoCSV is an elegant and efficient standalone framework to read and
write CSV converting to or from Smalltalk objects.
keywords: ascii comma-separated-values csv fields format input output
records rfc-4180 tab-separated-values tabular-data text tsv
## NeoJSON
JSON (JavaScript Object Notation) is a popular data-interchange
format. NeoJSON is an elegant and efficient standalone Smalltalk
framework to read and write JSON converting to or from Smalltalk
objects.
keywords: encoding format input javascript json output
serialization
text
## Nginx
Utility project to work with nginx from Pharo image (Windows only
so
far)
keywords: nginx server web windows
## OSLinuxCentOS
A part of the OS-XXX series to easier work with native operating
system platforms. Here for using CentOS Linux environments in Pharo.
keywords: centos linux native os unix
## OSLinuxUbuntu
A part of the OS-XXX series to easier work with native operating
system platforms. Here for using Ubuntu Linux environments in Pharo.
keywords: linux native os ubuntu unix
## OSOSX
nil
## OSProcess
nil
## OSRaspbian
A part of the OS-XXX series to easier work with native operating
system platforms. Here for using Raspbian environments in Pharo.
keywords: linux native os raspbian unix
## OSUnix
A part of the OS-XXX series to easier work with native operating
system platforms. Here for using Unix environments in Pharo.
keywords: native os unix
## OSWindows
API wrappers and tools for the Windows operating system
keywords: api native win32 windows
## ObjectStatistics
ObjectStatistics is tool to analyse set of objects by computing
different kind of metrics and look at them from different angles.
Imaging that we have collection of message sends and we want to know
number of message sends in dimension of receiver, receiver class and
message selector. We have different angles to look at this data: from
receiver class to selector and receiver or from selector to receiver
class and receiver or any other combination.
We also could analyze different kind of metrics which could be
computed on given objects. It could be number of unique receivers,
execution time, executed lines of code, etc.
This package implements computation of object statistics over declared
metrics and dimensions space.
stat := ObjectStatistics.
stat
countAllAs: 'sends';
'instances'.
stat
'classes';
with: [
stat dimension: [ :message | message
selector
]
named: 'msgs';
with: [
stat
'receivers';
#('instances')]];
'msgs';
Post by Dimitris Chloupis
Post by H. Hirzel
Post by H. Hirzel
with: [
stat dimension: [ :message | message receiver
class ] named: 'classes';
with: [
stat
'receivers']].
stat accumulateAll: messageSends.
keywords: analysis framework
## ObjectTravel
ObjectTravel implements traversal of full object graph. It enumerates
each reference in breadth-first direction and visit every reference
only once.
traveler moveToNextReference. "true".
traveler currentReference. "10"
traveler nextReference. "30"
traveler := ObjectTraveler on: #(10 20 30).
traveler nextReference "10"
traveler nextReference "20"
traveler replaceCurrentReferenceWith: #newReference.
keywords: objectsTraversal stream tool
## Octopus
A pharo tool that utilises Pillar library to process pillar text
copied to the clipboard and convert it to HTML
keywords: HTML markdown pillar
## OrderPreservingDictionary
This package has two ordered dictionary classes that behave like
OrderedDictionary and OrderedIdentityDictionary in Pharo but are
portable to Squeak and Gemstone, and other ordered dictionary classes
needed by XMLParser.
keywords: collection dictionary order-preserving ordered
## Orion
Orion is an interactive prototyping tool for reengineering, to
simulate changes and compare their impact on multiple versions of
software source code models.
keywords: Moose delta model versioning
## Pastell
Pastell is an add-on for XMLParser which adds some methods that make
navigation of an XML DOM tree much easier, it is a XMLPath-like
library.
keywords: xml xpath
## PharoSprint
The Pharo community regularly organize Pharo Sprint events. The Pharo
Sprint is a regular (monthly) event when developers and users meet
together to fix bugs. This usually takes place in a physical location,
but people are welcomed to participate from any place. This is a great
opportunity for novices to get involved and learn from experts!
For more information: http://bit.ly/SprintWeb and
http://pharo.org/contribute-events
keywords: Bug Discord FogBugz PharoSprint Sprint SprintDay
## Pillar
Pillar is a wiki-like syntax, its document model, a parser for it, and
a set of exporters (e.g., HTML, LaTeX, Markdown...). Pillar is
primarily used as the wiki syntax behind the *Pier
e.g., *the Enterprise Pharo book>http://books.pharo.org/*.
keywords: book document html latex markdown pier wiki
## PlotMorph
PlotMorph is a nice plotting system. It can plot multiple series with
different graphical attributes.
keywords: Morph UI graph plotting point series
## PolyMath
Tools for scientific computation in Smalltalk
keywords: ODE mathematics science
## Pomodoro
A pomodoro timer
keywords: GTD morphic pomodoro
## PunQLite
UnQLite binding for Pharo Smalltalk. UnQLite is a fast, lightweight,
portable, embedded KVS with a simple scripting engine (Jx9). By using
PunQLite, you can store/load lots of data as if just using a normal
Dictionary.
PunQLite uses UnQLite shared library. If you have no time to compile,
just get pre-built binary from the github project page
(https://github.com/mumez/PunQLite).
keywords: KVS NoSQL UFFI UnQLite database persistence
## QualityAssistant
Hi, I'm your personal quality assistant. I run Smalllint rules on the
code that you modify, and notify you about quality changes.
https://github.com/Uko/QualityAssistant#qualityassistant
keywords: automatic critics quality smallint validation
## QuickAccess
A manager for scripts with Quick access.
keywords: fun web
## RProjectConnector
nil
## RediStick
RediStick is a redis client which supports auto-reconnecting.
- Minimum dependencies (runs on Pharo without other libraries)
- Supports unicode strings
keywords: KVS NoSQL Redis database persistence
## ReferenceFinder
Finds reference paths between objects to help find memory leaks.
keywords: memory objects references tracing
## RegexTools
A tool to test and verify regular expressions
keywords: regex utilities
## Roassal2
Roassal is an agile visualization engine. Roassal graphically renders
objects using short and expressive Smalltalk expressions. A large set
of interaction facilities are provided for a better user experience.
Painting, brushing, interconnecting, zooming, drag and dropping will
just make you more intimate with any arbitrary object model.
keywords: charting data visualization
## SRT2VTT
This package convert SRT to VTT (subtitles for videos plugins)
keywords: browser plugin srt videos vtt web
## ScriptManager
A simple tool to manage scripts. Still based on Morphic. We would
recommend users to switch to QuickAccess which is a better script
manager than this tool.
keywords: fun script
## Seaside3
The framework for developing sophisticated web applications in
Smalltalk. See http://www.seaside.st
keywords: framework seaside web
## SimilarityFlooding
This project is an implementation of a FAMIX model difference
algorithm based on Similarity Flooding algorithm as defined by Sergey
A versatile graph matching algorithm and its application to schema
matching' and in the technical report associated.
Check the github repository for documentation
[https://github.com/juliendelplanque/SFDiff].
keywords: FAMIX SFDiff difference model similarity similarity flooding
## Spy2
Spy2 is a profiling framework. You can easily create profilers. You
can have a look at a description
http://bergel.eu/download/papers/Berg10f-Spy.pdf
The Hapao test coverage tool is included.
keywords: Hapao Memory Performance Profiling Roassal Spy
## Stamp
Stamp is an implementation of STOMP 1.2, a protocol to access message
oriented middleware like RabbitMQ.
keywords: client format messaging middleware queueing rabbitmq stomp
## StateSpecs
StateSpecs is object state specification framework. It describes
particular object states by first class specifications. For example
there are SpecOfCollectionItem, SpecOfObjectClass and
SpecOfObjectSuperclass. They can match and validate given objects. In
case when object is not satisfied specification you will get failure
result with detailed information about problem.
spec matches: anObject.
spec validate: anObject. "it returns validation result which
can
be
success or particular failure"
To easily create specifications and validate objects by them
StateSpecs provides two kind DSL: should expressions and "word"
classes.
1 should be: 2
1 should equal: 10
Kind of: Number
Instance of: String
Equal to: 'test'
keywords: BDD SUnit TDD framework validation
## Ston
Smalltalk Object Notation (STON) is a lightweight, text-based,
human-readable data interchange format for class-based object-oriented
languages like Smalltalk. It can be used to serialize domain level
objects, either for persistency or network transport. As its name
suggests, it is based on JSON (Javascript Object Notation). It adds
symbols as a primitive value, class tags for object values and
references.
keywords: encoding format input json output serialization ston text
## SublimishTheme
A dark theme for Pharo. If you like Sublime then you'll like
Sublimish
theme.
Project main page: *
https://github.com/sebastianconcept/SublimishTheme*
Post by Dimitris Chloupis
Post by H. Hirzel
Post by H. Hirzel
keywords: GUI IDE
## Tarantalk
Tarantalk is a Tarantool (Lua with DBMS) connector.
- Store/load tuples.
- Find tuples by multiple indices
- Evaluate Lua programs
keywords: KVS Lua NoSQL Tarantool Tuple database persistence
## Tarantube
Tarantool message queue wrapper based on Tarantalk.
- Supporting FIFO queue with priority, TTL, TTR, delay and sub queues.
- Need to install Tarantool + Tarantool queue module
(https://github.com/tarantool/queue)
keywords: Lua MQ NoSQL Tarantalk Tarantool queue
## Tealight
Tealight is a project defining a few extensions to the Teapot
framework to make the (tea) time you spend with the Pharo Teapot
system even easier..
keywords: api git github
## Teapot
Teapot is micro web framework on top of the Zinc HTTP components, that
focuses on simplicity and ease of use.
keywords: framework http micro sinatra web
## TestsUsageAnalyser
nil
## Trie
This package provides a trie implementation (as developed by Benoit
St-Jean. See https://en.wikipedia.org/wiki/Trie
keywords: collection containers retrieval trie
## Units
Units is a simple and powerful library to manage different units.
keywords: Comparison Meter Points Units
## VMProfiler
VMProfiler is a sampling profiler tracking down where the time is
spent in the VM when executing a specific portion of code. It computes
where the time is spent in the compiled C code of the VM, in the VM
plugins and in the native functions.
The results are available as a statistical report.
keywords: cog jit profiling virtual machine
## VerStix
A Vert.x TCP EventBus client for Pharo Smalltalk.
- interact with various Vert.x components (Web, Auth, DB, MQ, etc).
- interact with other Smalltalk images
- interact with various languages which support Vert.x EventBus
keywords: microservices network vertx
## VistaCursors
Provide a better looking cursor (similar to Windows Vista).
keywords: cursor theming ui windows
## VoyageMongo
Voyage-Mongo is an object persistence layer made for easy the work
with *MongoDB>http://www.mongodb.org*. It is an "ODM"
(Object-Document
Post by Dimitris Chloupis
Post by H. Hirzel
Post by H. Hirzel
Mapper), in the same spirit of the ORMs for relational approaches.
keywords: database mongodb nosql persistence
## VoyageUnqlite
Voyage-UnQLite is an object persistence layer made for easy the work
with *UnQLite>https://unqlite.org*. It is an "ODM"
(Object-Document
Mapper), in the same spirit of the ORMs for relational approaches.
keywords: database nosql persistence unqlite
## WKHTML2PDF
Render HTML into PDF and various image formats using the
(external)
Qt
WebKit rendering engine directly from Pharo.
keywords: html pdf reporting
## WebBrowser
General and platform independent WebBrowser access for Pharo 4.0
onwards based on NativeBoost, for Pharo 5.0 onwards based on UFFI
keywords: internet platform url utility web webbrowser
## XMI
A XMI wrapper for Pharo to easily access XML Metadata
informations.
keywords: omg uml xmi xml
## XMLParser
XMLParser provides validating SAX and DOM parsers for well-formed XML
documents on Pharo, Squeak, and Gemstone. It also provides a DOM API
for manipulating documents, namespace support, and an optional
XMLWriter for writing documents. Validation and namespace checking are
enabled by default, but not resolution of external entities.
http://www.w3.org/TR/REC-xml/
http://www.w3.org/TR/REC-xml-names/
http://www.w3.org/TR/xml-id/
http://www.w3.org/TR/xmlbase/
https://www.w3.org/TR/xml-c14n
keywords: DOM DTD HTML SAX XHTML XML document markup parser validation
web
## XMLParserHTML
XMLParserHTML provides SAX and DOM parsers for HTML that convert
possibly malformed HTML into well-formed XML.
keywords: DOM HTML SAX document markup parser web
## XMLParserStAX
XMLParserStAX is a pull parser for XMLParser that provides a streaming
interface for "pulling" XML events and also supports pull-style DOM
parsing for dynamically converting events into DOM nodes.
keywords: DOM DTD HTML StAX XHTML XML XMLPullParser document markup
parser pull pull-parser validation web
## XMLWriter
XMLWriter allows you to generate well-formed XML documents using an
API based on Seaside's canvas and tag brushes so all tags will be
nested properly and not left unclosed.
keywords: HTML XHTML XML document markup web writer
## XPath
An XPath library for Pharo, Squeak, and Gemstone leveraging the XML
parsing capabilities of XMLParser. Supports XPath 1.0 syntax with
extensions.
keywords: DOM HTML XHTML XML XPath document markup parser query web
## ZTimestamp
The ZTimestamp project groups a number of classes that form an
addition/alternative to DateAndTime/Timestamp. The core ZTimestamp
class represents a point in time, with second precision and always in
the UTC/GTM/Zulu timezone. It is faster and smaller.
ZTimestampFormat
is a formatter and parser that is example based. ZTimezone uses the
standard Olsone timezone database to compute the offset for local time
at specific points in time for a specified timezone.
ZTimestampSNTPClient is an SNTP client to check the local clock
against network time servers. This project is small and has no further
dependencies. It runs in Pharo 2 and 3.
keywords: chronology date formatting parsing sntp time timestamp timezone
## ZincHTTPComponents
Zinc HTTP Components is an open source Smalltalk framework to deal
with HTTP. It models most concepts of HTTP and its related standards
and offers both client and server functionality. One of its key goals
is to offer understandability (Smalltalk’s design principle number
one). Anyone with a basic understanding of Smalltalk and the HTTP
principles should be able to understand what is going on and
learn,
by
looking at the implementation.
keywords: character-encoding client http internet mime-type networking
request response server url
# Pharo 6 catalog list - description is missing
- CommandShell
- FamixDiff
- Ghost
- Hubcap
- LightPhaser
- Mustache
- OSOSX
- OSProcess
- RProjectConnector
- TestsUsageAnalyser
Post by H. Hirzel
This code snippet below gives a list of all Pharo 6.0 catalog entries
CatalogProvider default retrieveProjects select: [ :x |
(x at: 'repositoryUrl') =
'http://smalltalkhub.com/mc/Pharo/MetaRepoForPharo60/main' ].
Post by Dimitris Chloupis
absolutely , I will add Torsten's wonderful wiki and Grafoscopio
details,
keep them coming :)
Anything I miss, please alert me as Hizrel just did , I want to
link
to
anything Pharo related ,lets bring everything under one roof ;)
On Mon, Aug 21, 2017 at 9:15 AM H. Hirzel
Post by H. Hirzel
And add the overview to Grafoscopio
Aug 20, 2017
[Pharo-users] [Ann] [Grafoscopio] New release with major
improvements
Post by Dimitris Chloupis
Post by H. Hirzel
Post by H. Hirzel
Post by H. Hirzel
Post by Dimitris Chloupis
Post by H. Hirzel
Post by H. Hirzel
......
Post by Dimitris Chloupis
you make any submission you want here in this thread and I
will
port
it
to
wiki with copy paste and a bit of structuring :)
Dimitris,
Could you please do add a link in
https://github.com/SquareBracketAssociates/PharoWiki
to Torsten's wiki
http://wiki.astares.com/pharo
It has over 500 pages with good content I was not aware of....
Thanks,
Hannes
Dimitris Chloupis
2017-08-24 22:59:46 UTC
Permalink
Post by Stephane Ducasse
You have Netstyle/Workflow too.
done

"Why are you using markup documents to create the wiki when you could
use Github wiki itself?

For portability?"

good question. Yes for flexibility , another reason however is that Github
wiki is a separate repo and I did not want that because in the very back of
my head I am considering the option of creating software to allow access to
wiki from inside Pharo and I wanted to be all (content and code) in the
same repo. Its a very low priority for now.

Also Github wiki is basically the same as I am doing with some extra format
(table of contents) , in my case I dont care because Github allows me to
define HTML templates that will format the wiki webpage and make it look a
a lot more polished that pharo wiki looks like. Generally there are some
cool stuff you can do with Markdown and Github , plus the fact that
markdown can embed HTML etc.

There is also the option of Gitbook which has some nice features for
generating polished and well structured documentation.

So I like to keep my options open. For now I am focusing 100% on content.
H. Hirzel
2017-08-25 08:57:38 UTC
Permalink
Post by Dimitris Chloupis
Post by Stephane Ducasse
You have Netstyle/Workflow too.
done
"Why are you using markup documents to create the wiki when you could
use Github wiki itself?
For portability?"
good question. Yes for flexibility , another reason however is that Github
wiki is a separate repo and I did not want that because in the very back of
my head I am considering the option of creating software to allow access to
wiki from inside Pharo and I wanted to be all (content and code) in the
same repo. Its a very low priority for now.
Also Github wiki is basically the same as I am doing with some extra format
(table of contents) , in my case I dont care because Github allows me to
define HTML templates that will format the wiki webpage and make it look a
a lot more polished that pharo wiki looks like. Generally there are some
cool stuff you can do with Markdown and Github , plus the fact that
markdown can embed HTML etc.
+1
Post by Dimitris Chloupis
There is also the option of Gitbook which has some nice features for
generating polished and well structured documentation.
+1
Post by Dimitris Chloupis
So I like to keep my options open. For now I am focusing 100% on content.
+10
Offray Vladimir Luna Cárdenas
2017-08-25 23:17:08 UTC
Permalink
So, we're going to have Markdown for the wiki and probably for
documentation (via GitBooks)..., which is not surprising considering the
vast amount of support such documentation format has and the extensions
for a complete documentation toolchain and features. As I said, I think
that is an important syntax and we should put Scholarly/Pandoc Markdown
in the radar for documentation support in Pharo. Is what I'm doing with
Grafoscopio and now that Pillar support is again taking momentum, the
infrastructure there (parsers, highlighters, editors) could be extended
to support Pandoc's Markdown.

I'll keep you posted.

Cheers,

Offray
On Thu, Aug 24, 2017 at 11:32 PM Stephane Ducasse
You have Netstyle/Workflow too.
done
"Why are you using markup documents to create the wiki when you could
use Github wiki itself?
For portability?"
good question. Yes for flexibility , another reason however is that
Github wiki is a separate repo and I did not want that because in the
very back of my head I am considering the option of creating software
to allow access to wiki from inside Pharo and I wanted to be all
(content and code) in the same repo. Its a very low priority for now.
Also Github wiki is basically the same as I am doing with some extra
format (table of contents) , in my case I dont care because Github
allows me to define HTML templates that will format the wiki webpage
and make it look a a lot more polished that pharo wiki looks like.
Generally there are some cool stuff you can do with Markdown and
Github , plus the fact that markdown can embed HTML etc.
There is also the option of Gitbook which has some nice features for
generating polished and well structured documentation.
So I like to keep my options open. For now I am focusing 100% on content.
Dimitris Chloupis
2017-08-26 06:55:14 UTC
Permalink
As I said the format is not so important for me, the reason why I chose
markdown instead of pillar is because you can edit it using github web
interface making it easier. The books will continue to use Pillar, because
making a book is obviously a lot more sophisticated than creating a wiki
that mainly has web links to various internet locations. Pillar already can
export to markdown , latex, html and through latex it can also export to
pdf.

After Stef requested it, I moved the wiki inside the pharo git repository
here

https://github.com/pharo-project/pharo

I also added a link to it inside the git wiki of pharo

https://github.com/pharo-project/pharo/wiki


On Sat, Aug 26, 2017 at 2:17 AM Offray Vladimir Luna Cárdenas <
Post by Offray Vladimir Luna Cárdenas
So, we're going to have Markdown for the wiki and probably for
documentation (via GitBooks)..., which is not surprising considering the
vast amount of support such documentation format has and the extensions for
a complete documentation toolchain and features. As I said, I think that is
an important syntax and we should put Scholarly/Pandoc Markdown in the
radar for documentation support in Pharo. Is what I'm doing with
Grafoscopio and now that Pillar support is again taking momentum, the
infrastructure there (parsers, highlighters, editors) could be extended to
support Pandoc's Markdown.
I'll keep you posted.
Cheers,
Offray
Post by Stephane Ducasse
You have Netstyle/Workflow too.
done
"Why are you using markup documents to create the wiki when you could
use Github wiki itself?
For portability?"
good question. Yes for flexibility , another reason however is that Github
wiki is a separate repo and I did not want that because in the very back of
my head I am considering the option of creating software to allow access to
wiki from inside Pharo and I wanted to be all (content and code) in the
same repo. Its a very low priority for now.
Also Github wiki is basically the same as I am doing with some extra
format (table of contents) , in my case I dont care because Github allows
me to define HTML templates that will format the wiki webpage and make it
look a a lot more polished that pharo wiki looks like. Generally there are
some cool stuff you can do with Markdown and Github , plus the fact that
markdown can embed HTML etc.
There is also the option of Gitbook which has some nice features for
generating polished and well structured documentation.
So I like to keep my options open. For now I am focusing 100% on content.
H. Hirzel
2017-08-26 08:02:01 UTC
Permalink
Dimitris,

could you please add the three important Pillar links below I found
out about this week

Tutorial
https://ci.inria.fr/pharo-contribution/job/EnterprisePharoBook/lastSuccessfulBuild/artifact/book-result/PillarChap

Syntax summary
http://pillarhub.pharocloud.com/hub/pillarhub/pillarcheatsheet

Presentation
http://esug.org/data/ESUG2015/4%20thursday/1600-1630%20Pilar/Pillar.pdf

Thx
Hannes
Post by Dimitris Chloupis
As I said the format is not so important for me, the reason why I chose
markdown instead of pillar is because you can edit it using github web
interface making it easier. The books will continue to use Pillar, because
making a book is obviously a lot more sophisticated than creating a wiki
that mainly has web links to various internet locations. Pillar already can
export to markdown , latex, html and through latex it can also export to
pdf.
After Stef requested it, I moved the wiki inside the pharo git repository
here
https://github.com/pharo-project/pharo
I also added a link to it inside the git wiki of pharo
https://github.com/pharo-project/pharo/wiki
On Sat, Aug 26, 2017 at 2:17 AM Offray Vladimir Luna Cárdenas <
Post by Offray Vladimir Luna Cárdenas
So, we're going to have Markdown for the wiki and probably for
documentation (via GitBooks)..., which is not surprising considering the
vast amount of support such documentation format has and the extensions for
a complete documentation toolchain and features. As I said, I think that is
an important syntax and we should put Scholarly/Pandoc Markdown in the
radar for documentation support in Pharo. Is what I'm doing with
Grafoscopio and now that Pillar support is again taking momentum, the
infrastructure there (parsers, highlighters, editors) could be extended to
support Pandoc's Markdown.
I'll keep you posted.
Cheers,
Offray
On Thu, Aug 24, 2017 at 11:32 PM Stephane Ducasse
Post by Stephane Ducasse
You have Netstyle/Workflow too.
done
"Why are you using markup documents to create the wiki when you could
use Github wiki itself?
For portability?"
good question. Yes for flexibility , another reason however is that Github
wiki is a separate repo and I did not want that because in the very back of
my head I am considering the option of creating software to allow access to
wiki from inside Pharo and I wanted to be all (content and code) in the
same repo. Its a very low priority for now.
Also Github wiki is basically the same as I am doing with some extra
format (table of contents) , in my case I dont care because Github allows
me to define HTML templates that will format the wiki webpage and make it
look a a lot more polished that pharo wiki looks like. Generally there are
some cool stuff you can do with Markdown and Github , plus the fact that
markdown can embed HTML etc.
There is also the option of Gitbook which has some nice features for
generating polished and well structured documentation.
So I like to keep my options open. For now I am focusing 100% on content.
H. Hirzel
2017-08-26 08:31:46 UTC
Permalink
And

Main repository:
http://smalltalkhub.com/mc/Pier/Pillar/main/
Post by H. Hirzel
Dimitris,
could you please add the three important Pillar links below I found
out about this week
Tutorial
https://ci.inria.fr/pharo-contribution/job/EnterprisePharoBook/lastSuccessfulBuild/artifact/book-result/PillarChap
Syntax summary
http://pillarhub.pharocloud.com/hub/pillarhub/pillarcheatsheet
Presentation
http://esug.org/data/ESUG2015/4%20thursday/1600-1630%20Pilar/Pillar.pdf
Thx
Hannes
Post by Dimitris Chloupis
As I said the format is not so important for me, the reason why I chose
markdown instead of pillar is because you can edit it using github web
interface making it easier. The books will continue to use Pillar, because
making a book is obviously a lot more sophisticated than creating a wiki
that mainly has web links to various internet locations. Pillar already can
export to markdown , latex, html and through latex it can also export to
pdf.
After Stef requested it, I moved the wiki inside the pharo git repository
here
https://github.com/pharo-project/pharo
I also added a link to it inside the git wiki of pharo
https://github.com/pharo-project/pharo/wiki
On Sat, Aug 26, 2017 at 2:17 AM Offray Vladimir Luna Cárdenas <
Post by Offray Vladimir Luna Cárdenas
So, we're going to have Markdown for the wiki and probably for
documentation (via GitBooks)..., which is not surprising considering the
vast amount of support such documentation format has and the extensions for
a complete documentation toolchain and features. As I said, I think that is
an important syntax and we should put Scholarly/Pandoc Markdown in the
radar for documentation support in Pharo. Is what I'm doing with
Grafoscopio and now that Pillar support is again taking momentum, the
infrastructure there (parsers, highlighters, editors) could be extended to
support Pandoc's Markdown.
I'll keep you posted.
Cheers,
Offray
On Thu, Aug 24, 2017 at 11:32 PM Stephane Ducasse
Post by Stephane Ducasse
You have Netstyle/Workflow too.
done
"Why are you using markup documents to create the wiki when you could
use Github wiki itself?
For portability?"
good question. Yes for flexibility , another reason however is that Github
wiki is a separate repo and I did not want that because in the very back of
my head I am considering the option of creating software to allow access to
wiki from inside Pharo and I wanted to be all (content and code) in the
same repo. Its a very low priority for now.
Also Github wiki is basically the same as I am doing with some extra
format (table of contents) , in my case I dont care because Github allows
me to define HTML templates that will format the wiki webpage and make it
look a a lot more polished that pharo wiki looks like. Generally there are
some cool stuff you can do with Markdown and Github , plus the fact that
markdown can embed HTML etc.
There is also the option of Gitbook which has some nice features for
generating polished and well structured documentation.
So I like to keep my options open. For now I am focusing 100% on content.
H. Hirzel
2017-08-26 09:22:47 UTC
Permalink
Post by H. Hirzel
And
http://smalltalkhub.com/mc/Pier/Pillar/main/
And the three slides which give a high-level overview of the Pillar system

HH.
Dimitris Chloupis
2017-08-26 10:12:08 UTC
Permalink
i linked everything else to the wiki but not these pdfs, are they hosted
somewhere ? where you found them ?
Post by H. Hirzel
Post by H. Hirzel
And
http://smalltalkhub.com/mc/Pier/Pillar/main/
And the three slides which give a high-level overview of the Pillar system
HH.
H. Hirzel
2017-08-26 10:36:58 UTC
Permalink
Thanks for creating an overview paragraph about Pillar in the file

https://github.com/pharo-project/pharo/blob/master/wiki/contents/projects.md

The three slides which given an overview of Pillar are screen shots
taken from this document

http://esug.org/data/ESUG2015/4%20thursday/1600-1630%20Pilar/Pillar.pdf

I do not know if the source of this 'Pillar.pdf' presentation is
available somewhere.

Maybe for the moment you just refer to the slide numbers


Parsing slide 29
Transformation slide 30
Export slide 31

To keep this in mind is useful for the current Pillar discussions on this list.
Post by Dimitris Chloupis
i linked everything else to the wiki but not these pdfs, are they hosted
somewhere ? where you found them ?
Post by H. Hirzel
Post by H. Hirzel
And
http://smalltalkhub.com/mc/Pier/Pillar/main/
And the three slides which give a high-level overview of the Pillar system
HH.
H. Hirzel
2017-08-26 10:59:46 UTC
Permalink
Just realized that this diagram

Loading Image...

gives a good overview as well. Only the transformers are missing which
are rather important as well.
Post by H. Hirzel
Thanks for creating an overview paragraph about Pillar in the file
https://github.com/pharo-project/pharo/blob/master/wiki/contents/projects.md
The three slides which given an overview of Pillar are screen shots
taken from this document
http://esug.org/data/ESUG2015/4%20thursday/1600-1630%20Pilar/Pillar.pdf
I do not know if the source of this 'Pillar.pdf' presentation is
available somewhere.
Maybe for the moment you just refer to the slide numbers
Parsing slide 29
Transformation slide 30
Export slide 31
To keep this in mind is useful for the current Pillar discussions on this list.
Post by Dimitris Chloupis
i linked everything else to the wiki but not these pdfs, are they hosted
somewhere ? where you found them ?
Post by H. Hirzel
Post by H. Hirzel
And
http://smalltalkhub.com/mc/Pier/Pillar/main/
And the three slides which give a high-level overview of the Pillar system
HH.
Dimitris Chloupis
2017-08-26 11:29:59 UTC
Permalink
Thank you for pointing me to the right direction. Because your images come
from the presentation that is already linked in the wiki I do not think its
necessary to further link those pages too. If you have something to add
further to the documentation of Pillar I could make a separate page for
Pillar so that I don't cram the projects pages.

The Pillar tutorial is also linked in the how to section

https://github.com/pharo-project/pharo/blob/master/wiki/contents/howto.md

I really appreciate helping me with the wiki Hizrel , keep the info coming
:)
Post by H. Hirzel
Just realized that this diagram
https://ci.inria.fr/pharo-contribution/job/EnterprisePharoBook/lastSuccessfulBuild/artifact/book-result/PillarChap/figures/pillarOverview.png
gives a good overview as well. Only the transformers are missing which
are rather important as well.
Post by H. Hirzel
Thanks for creating an overview paragraph about Pillar in the file
https://github.com/pharo-project/pharo/blob/master/wiki/contents/projects.md
Post by H. Hirzel
The three slides which given an overview of Pillar are screen shots
taken from this document
http://esug.org/data/ESUG2015/4%20thursday/1600-1630%20Pilar/Pillar.pdf
I do not know if the source of this 'Pillar.pdf' presentation is
available somewhere.
Maybe for the moment you just refer to the slide numbers
Parsing slide 29
Transformation slide 30
Export slide 31
To keep this in mind is useful for the current Pillar discussions on this list.
Post by Dimitris Chloupis
i linked everything else to the wiki but not these pdfs, are they hosted
somewhere ? where you found them ?
Post by H. Hirzel
Post by H. Hirzel
And
http://smalltalkhub.com/mc/Pier/Pillar/main/
And the three slides which give a high-level overview of the Pillar system
HH.
Offray Vladimir Luna Cárdenas
2017-08-26 14:37:09 UTC
Permalink
Dimitris,

I understand your practical reasons to have Markdown over Pillar and in
fact I have advocated several of them. As I have said, Markdown ubiquity
for complete documentation workflows (including complete books) is
similar to git ubiquity for code. Despite having other personal
preferences in markup and DVCS, I think is strategic to give them
support in Pharo, without precluding any work on our own tools
(Monticello, Metacello, Pillar, etc.).

I'll try to make some experiments with integration of Documenter in
Grafoscopio and Markdown. They'll advance slowly, because time
constrains now that I'm trying to finish my thesis, but once a week I'll
try to show advancements and make questions.

Cheers,

Offray
Post by Dimitris Chloupis
As I said the format is not so important for me, the reason why I
chose markdown instead of pillar is because you can edit it using
github web interface making it easier. The books will continue to use
Pillar, because making a book is obviously a lot more sophisticated
than creating a wiki that mainly has web links to various internet
locations. Pillar already can export to markdown , latex, html and
through latex it can also export to pdf.
After Stef requested it, I moved the wiki inside the pharo git
repository here
https://github.com/pharo-project/pharo
I also added a link to it inside the git wiki of pharo
https://github.com/pharo-project/pharo/wiki
On Sat, Aug 26, 2017 at 2:17 AM Offray Vladimir Luna Cárdenas
So, we're going to have Markdown for the wiki and probably for
documentation (via GitBooks)..., which is not surprising
considering the vast amount of support such documentation format
has and the extensions for a complete documentation toolchain and
features. As I said, I think that is an important syntax and we
should put Scholarly/Pandoc Markdown in the radar for
documentation support in Pharo. Is what I'm doing with Grafoscopio
and now that Pillar support is again taking momentum, the
infrastructure there (parsers, highlighters, editors) could be
extended to support Pandoc's Markdown.
I'll keep you posted.
Cheers,
Offray
On Thu, Aug 24, 2017 at 11:32 PM Stephane Ducasse
You have Netstyle/Workflow too.
done
"Why are you using markup documents to create the wiki when you could
use Github wiki itself?
For portability?"
good question. Yes for flexibility , another reason however is
that Github wiki is a separate repo and I did not want that
because in the very back of my head I am considering the option
of creating software to allow access to wiki from inside Pharo
and I wanted to be all (content and code) in the same repo. Its a
very low priority for now.
Also Github wiki is basically the same as I am doing with some
extra format (table of contents) , in my case I dont care because
Github allows me to define HTML templates that will format the
wiki webpage and make it look a a lot more polished that pharo
wiki looks like. Generally there are some cool stuff you can do
with Markdown and Github , plus the fact that markdown can embed
HTML etc.
There is also the option of Gitbook which has some nice features
for generating polished and well structured documentation.
So I like to keep my options open. For now I am focusing 100% on content.
Dimitris Chloupis
2017-08-26 15:31:46 UTC
Permalink
Grafoscopio can display markdown files ?

On Sat, Aug 26, 2017 at 5:38 PM Offray Vladimir Luna Cárdenas <
Post by H. Hirzel
Dimitris,
I understand your practical reasons to have Markdown over Pillar and in
fact I have advocated several of them. As I have said, Markdown ubiquity
for complete documentation workflows (including complete books) is similar
to git ubiquity for code. Despite having other personal preferences in
markup and DVCS, I think is strategic to give them support in Pharo,
without precluding any work on our own tools (Monticello, Metacello,
Pillar, etc.).
I'll try to make some experiments with integration of Documenter in
Grafoscopio and Markdown. They'll advance slowly, because time constrains
now that I'm trying to finish my thesis, but once a week I'll try to show
advancements and make questions.
Cheers,
Offray
As I said the format is not so important for me, the reason why I chose
markdown instead of pillar is because you can edit it using github web
interface making it easier. The books will continue to use Pillar, because
making a book is obviously a lot more sophisticated than creating a wiki
that mainly has web links to various internet locations. Pillar already can
export to markdown , latex, html and through latex it can also export to
pdf.
After Stef requested it, I moved the wiki inside the pharo git repository
here
https://github.com/pharo-project/pharo
I also added a link to it inside the git wiki of pharo
https://github.com/pharo-project/pharo/wiki
On Sat, Aug 26, 2017 at 2:17 AM Offray Vladimir Luna Cárdenas <
Post by Offray Vladimir Luna Cárdenas
So, we're going to have Markdown for the wiki and probably for
documentation (via GitBooks)..., which is not surprising considering the
vast amount of support such documentation format has and the extensions for
a complete documentation toolchain and features. As I said, I think that is
an important syntax and we should put Scholarly/Pandoc Markdown in the
radar for documentation support in Pharo. Is what I'm doing with
Grafoscopio and now that Pillar support is again taking momentum, the
infrastructure there (parsers, highlighters, editors) could be extended to
support Pandoc's Markdown.
I'll keep you posted.
Cheers,
Offray
On Thu, Aug 24, 2017 at 11:32 PM Stephane Ducasse <
Post by Stephane Ducasse
You have Netstyle/Workflow too.
done
"Why are you using markup documents to create the wiki when you could
use Github wiki itself?
For portability?"
good question. Yes for flexibility , another reason however is that
Github wiki is a separate repo and I did not want that because in the very
back of my head I am considering the option of creating software to allow
access to wiki from inside Pharo and I wanted to be all (content and code)
in the same repo. Its a very low priority for now.
Also Github wiki is basically the same as I am doing with some extra
format (table of contents) , in my case I dont care because Github allows
me to define HTML templates that will format the wiki webpage and make it
look a a lot more polished that pharo wiki looks like. Generally there are
some cool stuff you can do with Markdown and Github , plus the fact that
markdown can embed HTML etc.
There is also the option of Gitbook which has some nice features for
generating polished and well structured documentation.
So I like to keep my options open. For now I am focusing 100% on content.
Offray Vladimir Luna Cárdenas
2017-08-26 15:55:57 UTC
Permalink
This post might be inappropriate. Click to display it.
Dimitris Chloupis
2017-08-26 17:28:14 UTC
Permalink
How would you feel if I took grafoscopio and made a custom GUI for it,
mainly for personal usage ? Does it use the MIT license ?

On Sat, Aug 26, 2017 at 6:56 PM Offray Vladimir Luna Cárdenas <
Post by Offray Vladimir Luna Cárdenas
No it can't. Grafoscopio Markdown nodes just plain text boxes with
Markdown code inside, but I would like to have at least syntax
hightlighting for it. What Grafoscopio can do is to traverse a tree and
process node headers as markdown titles, footnotes and others to produce a
flat Markdown file to be processed by Pandoc. Also, thanks to special
%metadata nodes in the tree, Grafoscopio can control & feedback the Pandoc
command line options *inside* the notebook, increasing reproducibility,
just by using plain Pharo dictionaries and dynamic arrays. Then, you can
use the Notebook menu to export as PDF by running such options from the GUI.
Cheers,
Offray
Grafoscopio can display markdown files ?
On Sat, Aug 26, 2017 at 5:38 PM Offray Vladimir Luna Cárdenas <
Post by H. Hirzel
Dimitris,
I understand your practical reasons to have Markdown over Pillar and in
fact I have advocated several of them. As I have said, Markdown ubiquity
for complete documentation workflows (including complete books) is similar
to git ubiquity for code. Despite having other personal preferences in
markup and DVCS, I think is strategic to give them support in Pharo,
without precluding any work on our own tools (Monticello, Metacello,
Pillar, etc.).
I'll try to make some experiments with integration of Documenter in
Grafoscopio and Markdown. They'll advance slowly, because time constrains
now that I'm trying to finish my thesis, but once a week I'll try to show
advancements and make questions.
Cheers,
Offray
As I said the format is not so important for me, the reason why I chose
markdown instead of pillar is because you can edit it using github web
interface making it easier. The books will continue to use Pillar, because
making a book is obviously a lot more sophisticated than creating a wiki
that mainly has web links to various internet locations. Pillar already can
export to markdown , latex, html and through latex it can also export to
pdf.
After Stef requested it, I moved the wiki inside the pharo git repository
here
https://github.com/pharo-project/pharo
I also added a link to it inside the git wiki of pharo
https://github.com/pharo-project/pharo/wiki
On Sat, Aug 26, 2017 at 2:17 AM Offray Vladimir Luna Cárdenas <
Post by Offray Vladimir Luna Cárdenas
So, we're going to have Markdown for the wiki and probably for
documentation (via GitBooks)..., which is not surprising considering the
vast amount of support such documentation format has and the extensions for
a complete documentation toolchain and features. As I said, I think that is
an important syntax and we should put Scholarly/Pandoc Markdown in the
radar for documentation support in Pharo. Is what I'm doing with
Grafoscopio and now that Pillar support is again taking momentum, the
infrastructure there (parsers, highlighters, editors) could be extended to
support Pandoc's Markdown.
I'll keep you posted.
Cheers,
Offray
On Thu, Aug 24, 2017 at 11:32 PM Stephane Ducasse <
Post by Stephane Ducasse
You have Netstyle/Workflow too.
done
"Why are you using markup documents to create the wiki when you could
use Github wiki itself?
For portability?"
good question. Yes for flexibility , another reason however is that
Github wiki is a separate repo and I did not want that because in the very
back of my head I am considering the option of creating software to allow
access to wiki from inside Pharo and I wanted to be all (content and code)
in the same repo. Its a very low priority for now.
Also Github wiki is basically the same as I am doing with some extra
format (table of contents) , in my case I dont care because Github allows
me to define HTML templates that will format the wiki webpage and make it
look a a lot more polished that pharo wiki looks like. Generally there are
some cool stuff you can do with Markdown and Github , plus the fact that
markdown can embed HTML etc.
There is also the option of Gitbook which has some nice features for
generating polished and well structured documentation.
So I like to keep my options open. For now I am focusing 100% on content.
Offray Vladimir Luna Cárdenas
2017-08-26 19:14:11 UTC
Permalink
That would be pretty interesting and yes, it is under MIT.

On custom GUI's I have thought about a mind mapping interface for
Grafoscopio, for presentations. I would like to stretch the tree/graph
metaphor so it can make what we do with different metaphors right now on
"offimatics" (writing, calculation and presentation), so this custom
metaphors are interesting to me.

Cheers,

Offray
Post by Dimitris Chloupis
How would you feel if I took grafoscopio and made a custom GUI for it,
mainly for personal usage ? Does it use the MIT license ?
On Sat, Aug 26, 2017 at 6:56 PM Offray Vladimir Luna Cárdenas
No it can't. Grafoscopio Markdown nodes just plain text boxes with
Markdown code inside, but I would like to have at least syntax
hightlighting for it. What Grafoscopio can do is to traverse a
tree and process node headers as markdown titles, footnotes and
others to produce a flat Markdown file to be processed by Pandoc.
Also, thanks to special %metadata nodes in the tree, Grafoscopio
can control & feedback the Pandoc command line options *inside*
the notebook, increasing reproducibility, just by using plain
Pharo dictionaries and dynamic arrays. Then, you can use the
Notebook menu to export as PDF by running such options from the GUI.
Cheers,
Offray
Post by Dimitris Chloupis
Grafoscopio can display markdown files ?
On Sat, Aug 26, 2017 at 5:38 PM Offray Vladimir Luna Cárdenas
Dimitris,
I understand your practical reasons to have Markdown over
Pillar and in fact I have advocated several of them. As I
have said, Markdown ubiquity for complete documentation
workflows (including complete books) is similar to git
ubiquity for code. Despite having other personal preferences
in markup and DVCS, I think is strategic to give them support
in Pharo, without precluding any work on our own tools
(Monticello, Metacello, Pillar, etc.).
I'll try to make some experiments with integration of
Documenter in Grafoscopio and Markdown. They'll advance
slowly, because time constrains now that I'm trying to finish
my thesis, but once a week I'll try to show advancements and
make questions.
Cheers,
Offray
Post by Dimitris Chloupis
As I said the format is not so important for me, the reason
why I chose markdown instead of pillar is because you can
edit it using github web interface making it easier. The
books will continue to use Pillar, because making a book is
obviously a lot more sophisticated than creating a wiki that
mainly has web links to various internet locations. Pillar
already can export to markdown , latex, html and through
latex it can also export to pdf.
After Stef requested it, I moved the wiki inside the pharo
git repository here
https://github.com/pharo-project/pharo
I also added a link to it inside the git wiki of pharo
https://github.com/pharo-project/pharo/wiki
On Sat, Aug 26, 2017 at 2:17 AM Offray Vladimir Luna
So, we're going to have Markdown for the wiki and
probably for documentation (via GitBooks)..., which is
not surprising considering the vast amount of support
such documentation format has and the extensions for a
complete documentation toolchain and features. As I
said, I think that is an important syntax and we should
put Scholarly/Pandoc Markdown in the radar for
documentation support in Pharo. Is what I'm doing with
Grafoscopio and now that Pillar support is again taking
momentum, the infrastructure there (parsers,
highlighters, editors) could be extended to support
Pandoc's Markdown.
I'll keep you posted.
Cheers,
Offray
On Thu, Aug 24, 2017 at 11:32 PM Stephane Ducasse
You have Netstyle/Workflow too.
done
"Why are you using markup documents to create the wiki
when you could
use Github wiki itself?
For portability?"
good question. Yes for flexibility , another reason
however is that Github wiki is a separate repo and I
did not want that because in the very back of my head I
am considering the option of creating software to allow
access to wiki from inside Pharo and I wanted to be all
(content and code) in the same repo. Its a very low
priority for now.
Also Github wiki is basically the same as I am doing
with some extra format (table of contents) , in my case
I dont care because Github allows me to define HTML
templates that will format the wiki webpage and make it
look a a lot more polished that pharo wiki looks like.
Generally there are some cool stuff you can do with
Markdown and Github , plus the fact that markdown can
embed HTML etc.
There is also the option of Gitbook which has some nice
features for generating polished and well structured
documentation.
So I like to keep my options open. For now I am
focusing 100% on content.
Dimitris Chloupis
2017-08-26 19:53:22 UTC
Permalink
mind mapping is an interest of mine too, though i never tried to make one
app for it yet. Ok will see if I will go down the Grafoscopio route and
will keep you posted. I was thinking using it as an in-image interface for
the wiki.

On Sat, Aug 26, 2017 at 10:15 PM Offray Vladimir Luna Cárdenas <
Post by Offray Vladimir Luna Cárdenas
That would be pretty interesting and yes, it is under MIT.
On custom GUI's I have thought about a mind mapping interface for
Grafoscopio, for presentations. I would like to stretch the tree/graph
metaphor so it can make what we do with different metaphors right now on
"offimatics" (writing, calculation and presentation), so this custom
metaphors are interesting to me.
Cheers,
Offray
How would you feel if I took grafoscopio and made a custom GUI for it,
mainly for personal usage ? Does it use the MIT license ?
On Sat, Aug 26, 2017 at 6:56 PM Offray Vladimir Luna Cárdenas <
Post by Offray Vladimir Luna Cárdenas
No it can't. Grafoscopio Markdown nodes just plain text boxes with
Markdown code inside, but I would like to have at least syntax
hightlighting for it. What Grafoscopio can do is to traverse a tree and
process node headers as markdown titles, footnotes and others to produce a
flat Markdown file to be processed by Pandoc. Also, thanks to special
%metadata nodes in the tree, Grafoscopio can control & feedback the Pandoc
command line options *inside* the notebook, increasing reproducibility,
just by using plain Pharo dictionaries and dynamic arrays. Then, you can
use the Notebook menu to export as PDF by running such options from the GUI.
Cheers,
Offray
Grafoscopio can display markdown files ?
On Sat, Aug 26, 2017 at 5:38 PM Offray Vladimir Luna Cárdenas <
Post by H. Hirzel
Dimitris,
I understand your practical reasons to have Markdown over Pillar and in
fact I have advocated several of them. As I have said, Markdown ubiquity
for complete documentation workflows (including complete books) is similar
to git ubiquity for code. Despite having other personal preferences in
markup and DVCS, I think is strategic to give them support in Pharo,
without precluding any work on our own tools (Monticello, Metacello,
Pillar, etc.).
I'll try to make some experiments with integration of Documenter in
Grafoscopio and Markdown. They'll advance slowly, because time constrains
now that I'm trying to finish my thesis, but once a week I'll try to show
advancements and make questions.
Cheers,
Offray
As I said the format is not so important for me, the reason why I chose
markdown instead of pillar is because you can edit it using github web
interface making it easier. The books will continue to use Pillar, because
making a book is obviously a lot more sophisticated than creating a wiki
that mainly has web links to various internet locations. Pillar already can
export to markdown , latex, html and through latex it can also export to
pdf.
After Stef requested it, I moved the wiki inside the pharo git
repository here
https://github.com/pharo-project/pharo
I also added a link to it inside the git wiki of pharo
https://github.com/pharo-project/pharo/wiki
On Sat, Aug 26, 2017 at 2:17 AM Offray Vladimir Luna Cárdenas <
Post by Offray Vladimir Luna Cárdenas
So, we're going to have Markdown for the wiki and probably for
documentation (via GitBooks)..., which is not surprising considering the
vast amount of support such documentation format has and the extensions for
a complete documentation toolchain and features. As I said, I think that is
an important syntax and we should put Scholarly/Pandoc Markdown in the
radar for documentation support in Pharo. Is what I'm doing with
Grafoscopio and now that Pillar support is again taking momentum, the
infrastructure there (parsers, highlighters, editors) could be extended to
support Pandoc's Markdown.
I'll keep you posted.
Cheers,
Offray
On Thu, Aug 24, 2017 at 11:32 PM Stephane Ducasse <
Post by Stephane Ducasse
You have Netstyle/Workflow too.
done
"Why are you using markup documents to create the wiki when you could
use Github wiki itself?
For portability?"
good question. Yes for flexibility , another reason however is that
Github wiki is a separate repo and I did not want that because in the very
back of my head I am considering the option of creating software to allow
access to wiki from inside Pharo and I wanted to be all (content and code)
in the same repo. Its a very low priority for now.
Also Github wiki is basically the same as I am doing with some extra
format (table of contents) , in my case I dont care because Github allows
me to define HTML templates that will format the wiki webpage and make it
look a a lot more polished that pharo wiki looks like. Generally there are
some cool stuff you can do with Markdown and Github , plus the fact that
markdown can embed HTML etc.
There is also the option of Gitbook which has some nice features for
generating polished and well structured documentation.
So I like to keep my options open. For now I am focusing 100% on content.
Offray Vladimir Luna Cárdenas
2017-08-26 20:17:55 UTC
Permalink
Thanks for keep me posted about your experiments. I would like to know
where the current interface doesn't suit your needs/tastes and how easy
was to use/extend the tool. I think that mind mapping problem would be
particularly well suited for your GUI approaches.

Cheers,

Offray
Post by Dimitris Chloupis
mind mapping is an interest of mine too, though i never tried to make
one app for it yet. Ok will see if I will go down the Grafoscopio
route and will keep you posted. I was thinking using it as an in-image
interface for the wiki.
On Sat, Aug 26, 2017 at 10:15 PM Offray Vladimir Luna Cárdenas
That would be pretty interesting and yes, it is under MIT.
On custom GUI's I have thought about a mind mapping interface for
Grafoscopio, for presentations. I would like to stretch the
tree/graph metaphor so it can make what we do with different
metaphors right now on "offimatics" (writing, calculation and
presentation), so this custom metaphors are interesting to me.
Cheers,
Offray
Post by Dimitris Chloupis
How would you feel if I took grafoscopio and made a custom GUI
for it, mainly for personal usage ? Does it use the MIT license ?
On Sat, Aug 26, 2017 at 6:56 PM Offray Vladimir Luna Cárdenas
No it can't. Grafoscopio Markdown nodes just plain text boxes
with Markdown code inside, but I would like to have at least
syntax hightlighting for it. What Grafoscopio can do is to
traverse a tree and process node headers as markdown titles,
footnotes and others to produce a flat Markdown file to be
processed by Pandoc. Also, thanks to special %metadata nodes
in the tree, Grafoscopio can control & feedback the Pandoc
command line options *inside* the notebook, increasing
reproducibility, just by using plain Pharo dictionaries and
dynamic arrays. Then, you can use the Notebook menu to export
as PDF by running such options from the GUI.
Cheers,
Offray
Post by Dimitris Chloupis
Grafoscopio can display markdown files ?
On Sat, Aug 26, 2017 at 5:38 PM Offray Vladimir Luna
Dimitris,
I understand your practical reasons to have Markdown
over Pillar and in fact I have advocated several of
them. As I have said, Markdown ubiquity for complete
documentation workflows (including complete books) is
similar to git ubiquity for code. Despite having other
personal preferences in markup and DVCS, I think is
strategic to give them support in Pharo, without
precluding any work on our own tools (Monticello,
Metacello, Pillar, etc.).
I'll try to make some experiments with integration of
Documenter in Grafoscopio and Markdown. They'll advance
slowly, because time constrains now that I'm trying to
finish my thesis, but once a week I'll try to show
advancements and make questions.
Cheers,
Offray
Post by Dimitris Chloupis
As I said the format is not so important for me, the
reason why I chose markdown instead of pillar is
because you can edit it using github web interface
making it easier. The books will continue to use
Pillar, because making a book is obviously a lot more
sophisticated than creating a wiki that mainly has web
links to various internet locations. Pillar already can
export to markdown , latex, html and through latex it
can also export to pdf.
After Stef requested it, I moved the wiki inside the
pharo git repository here
https://github.com/pharo-project/pharo
I also added a link to it inside the git wiki of pharo
https://github.com/pharo-project/pharo/wiki
On Sat, Aug 26, 2017 at 2:17 AM Offray Vladimir Luna
So, we're going to have Markdown for the wiki and
probably for documentation (via GitBooks)..., which
is not surprising considering the vast amount of
support such documentation format has and the
extensions for a complete documentation toolchain
and features. As I said, I think that is an
important syntax and we should put Scholarly/Pandoc
Markdown in the radar for documentation support in
Pharo. Is what I'm doing with Grafoscopio and now
that Pillar support is again taking momentum, the
infrastructure there (parsers, highlighters,
editors) could be extended to support Pandoc's
Markdown.
I'll keep you posted.
Cheers,
Offray
On Thu, Aug 24, 2017 at 11:32 PM Stephane Ducasse
You have Netstyle/Workflow too.
done
"Why are you using markup documents to create the
wiki when you could
use Github wiki itself?
For portability?"
good question. Yes for flexibility , another
reason however is that Github wiki is a separate
repo and I did not want that because in the very
back of my head I am considering the option of
creating software to allow access to wiki from
inside Pharo and I wanted to be all (content and
code) in the same repo. Its a very low priority
for now.
Also Github wiki is basically the same as I am
doing with some extra format (table of contents) ,
in my case I dont care because Github allows me to
define HTML templates that will format the wiki
webpage and make it look a a lot more polished
that pharo wiki looks like. Generally there are
some cool stuff you can do with Markdown and
Github , plus the fact that markdown can embed
HTML etc.
There is also the option of Gitbook which has some
nice features for generating polished and well
structured documentation.
So I like to keep my options open. For now I am
focusing 100% on content.
H. Hirzel
2017-08-28 11:37:18 UTC
Permalink
Dimitris

Please add a direct link to the Pillar chapter on the integration server

https://ci.inria.fr/pharo-contribution/job/EnterprisePharoBook/lastSuccessfulBuild/artifact/book-result/PillarChap/Pillar.html

The current link on the Pharo books web site is broken and this seems
to be the main piece of documentation about Pillar.

--Hannes
Post by Offray Vladimir Luna Cárdenas
Thanks for keep me posted about your experiments. I would like to know
where the current interface doesn't suit your needs/tastes and how easy
was to use/extend the tool. I think that mind mapping problem would be
particularly well suited for your GUI approaches.
Cheers,
Offray
Post by Dimitris Chloupis
mind mapping is an interest of mine too, though i never tried to make
one app for it yet. Ok will see if I will go down the Grafoscopio
route and will keep you posted. I was thinking using it as an in-image
interface for the wiki.
On Sat, Aug 26, 2017 at 10:15 PM Offray Vladimir Luna Cárdenas
That would be pretty interesting and yes, it is under MIT.
On custom GUI's I have thought about a mind mapping interface for
Grafoscopio, for presentations. I would like to stretch the
tree/graph metaphor so it can make what we do with different
metaphors right now on "offimatics" (writing, calculation and
presentation), so this custom metaphors are interesting to me.
Cheers,
Offray
Post by Dimitris Chloupis
How would you feel if I took grafoscopio and made a custom GUI
for it, mainly for personal usage ? Does it use the MIT license ?
On Sat, Aug 26, 2017 at 6:56 PM Offray Vladimir Luna Cárdenas
No it can't. Grafoscopio Markdown nodes just plain text boxes
with Markdown code inside, but I would like to have at least
syntax hightlighting for it. What Grafoscopio can do is to
traverse a tree and process node headers as markdown titles,
footnotes and others to produce a flat Markdown file to be
processed by Pandoc. Also, thanks to special %metadata nodes
in the tree, Grafoscopio can control & feedback the Pandoc
command line options *inside* the notebook, increasing
reproducibility, just by using plain Pharo dictionaries and
dynamic arrays. Then, you can use the Notebook menu to export
as PDF by running such options from the GUI.
Cheers,
Offray
Post by Dimitris Chloupis
Grafoscopio can display markdown files ?
On Sat, Aug 26, 2017 at 5:38 PM Offray Vladimir Luna
Dimitris,
I understand your practical reasons to have Markdown
over Pillar and in fact I have advocated several of
them. As I have said, Markdown ubiquity for complete
documentation workflows (including complete books) is
similar to git ubiquity for code. Despite having other
personal preferences in markup and DVCS, I think is
strategic to give them support in Pharo, without
precluding any work on our own tools (Monticello,
Metacello, Pillar, etc.).
I'll try to make some experiments with integration of
Documenter in Grafoscopio and Markdown. They'll advance
slowly, because time constrains now that I'm trying to
finish my thesis, but once a week I'll try to show
advancements and make questions.
Cheers,
Offray
Post by Dimitris Chloupis
As I said the format is not so important for me, the
reason why I chose markdown instead of pillar is
because you can edit it using github web interface
making it easier. The books will continue to use
Pillar, because making a book is obviously a lot more
sophisticated than creating a wiki that mainly has web
links to various internet locations. Pillar already can
export to markdown , latex, html and through latex it
can also export to pdf.
After Stef requested it, I moved the wiki inside the
pharo git repository here
https://github.com/pharo-project/pharo
I also added a link to it inside the git wiki of pharo
https://github.com/pharo-project/pharo/wiki
On Sat, Aug 26, 2017 at 2:17 AM Offray Vladimir Luna
So, we're going to have Markdown for the wiki and
probably for documentation (via GitBooks)..., which
is not surprising considering the vast amount of
support such documentation format has and the
extensions for a complete documentation toolchain
and features. As I said, I think that is an
important syntax and we should put Scholarly/Pandoc
Markdown in the radar for documentation support in
Pharo. Is what I'm doing with Grafoscopio and now
that Pillar support is again taking momentum, the
infrastructure there (parsers, highlighters,
editors) could be extended to support Pandoc's
Markdown.
I'll keep you posted.
Cheers,
Offray
On Thu, Aug 24, 2017 at 11:32 PM Stephane Ducasse
You have Netstyle/Workflow too.
done
"Why are you using markup documents to create the
wiki when you could
use Github wiki itself?
For portability?"
good question. Yes for flexibility , another
reason however is that Github wiki is a separate
repo and I did not want that because in the very
back of my head I am considering the option of
creating software to allow access to wiki from
inside Pharo and I wanted to be all (content and
code) in the same repo. Its a very low priority
for now.
Also Github wiki is basically the same as I am
doing with some extra format (table of contents) ,
in my case I dont care because Github allows me to
define HTML templates that will format the wiki
webpage and make it look a a lot more polished
that pharo wiki looks like. Generally there are
some cool stuff you can do with Markdown and
Github , plus the fact that markdown can embed
HTML etc.
There is also the option of Gitbook which has some
nice features for generating polished and well
structured documentation.
So I like to keep my options open. For now I am
focusing 100% on content.
Dimitris Chloupis
2017-08-28 19:14:29 UTC
Permalink
well i linked to the job so people can choose the format they like pdf or
html, so i see no need to change it.
Post by Stephane Ducasse
Dimitris
Please add a direct link to the Pillar chapter on the integration server
https://ci.inria.fr/pharo-contribution/job/EnterprisePharoBook/lastSuccessfulBuild/artifact/book-result/PillarChap/Pillar.html
The current link on the Pharo books web site is broken and this seems
to be the main piece of documentation about Pillar.
--Hannes
Post by Offray Vladimir Luna Cárdenas
Thanks for keep me posted about your experiments. I would like to know
where the current interface doesn't suit your needs/tastes and how easy
was to use/extend the tool. I think that mind mapping problem would be
particularly well suited for your GUI approaches.
Cheers,
Offray
Post by Dimitris Chloupis
mind mapping is an interest of mine too, though i never tried to make
one app for it yet. Ok will see if I will go down the Grafoscopio
route and will keep you posted. I was thinking using it as an in-image
interface for the wiki.
On Sat, Aug 26, 2017 at 10:15 PM Offray Vladimir Luna Cárdenas
That would be pretty interesting and yes, it is under MIT.
On custom GUI's I have thought about a mind mapping interface for
Grafoscopio, for presentations. I would like to stretch the
tree/graph metaphor so it can make what we do with different
metaphors right now on "offimatics" (writing, calculation and
presentation), so this custom metaphors are interesting to me.
Cheers,
Offray
Post by Dimitris Chloupis
How would you feel if I took grafoscopio and made a custom GUI
for it, mainly for personal usage ? Does it use the MIT license ?
On Sat, Aug 26, 2017 at 6:56 PM Offray Vladimir Luna Cárdenas
No it can't. Grafoscopio Markdown nodes just plain text boxes
with Markdown code inside, but I would like to have at least
syntax hightlighting for it. What Grafoscopio can do is to
traverse a tree and process node headers as markdown titles,
footnotes and others to produce a flat Markdown file to be
processed by Pandoc. Also, thanks to special %metadata nodes
in the tree, Grafoscopio can control & feedback the Pandoc
command line options *inside* the notebook, increasing
reproducibility, just by using plain Pharo dictionaries and
dynamic arrays. Then, you can use the Notebook menu to export
as PDF by running such options from the GUI.
Cheers,
Offray
Post by Dimitris Chloupis
Grafoscopio can display markdown files ?
On Sat, Aug 26, 2017 at 5:38 PM Offray Vladimir Luna
Dimitris,
I understand your practical reasons to have Markdown
over Pillar and in fact I have advocated several of
them. As I have said, Markdown ubiquity for complete
documentation workflows (including complete books) is
similar to git ubiquity for code. Despite having other
personal preferences in markup and DVCS, I think is
strategic to give them support in Pharo, without
precluding any work on our own tools (Monticello,
Metacello, Pillar, etc.).
I'll try to make some experiments with integration of
Documenter in Grafoscopio and Markdown. They'll advance
slowly, because time constrains now that I'm trying to
finish my thesis, but once a week I'll try to show
advancements and make questions.
Cheers,
Offray
Post by Dimitris Chloupis
As I said the format is not so important for me, the
reason why I chose markdown instead of pillar is
because you can edit it using github web interface
making it easier. The books will continue to use
Pillar, because making a book is obviously a lot more
sophisticated than creating a wiki that mainly has web
links to various internet locations. Pillar already can
export to markdown , latex, html and through latex it
can also export to pdf.
After Stef requested it, I moved the wiki inside the
pharo git repository here
https://github.com/pharo-project/pharo
I also added a link to it inside the git wiki of pharo
https://github.com/pharo-project/pharo/wiki
On Sat, Aug 26, 2017 at 2:17 AM Offray Vladimir Luna
So, we're going to have Markdown for the wiki and
probably for documentation (via GitBooks)..., which
is not surprising considering the vast amount of
support such documentation format has and the
extensions for a complete documentation toolchain
and features. As I said, I think that is an
important syntax and we should put Scholarly/Pandoc
Markdown in the radar for documentation support in
Pharo. Is what I'm doing with Grafoscopio and now
that Pillar support is again taking momentum, the
infrastructure there (parsers, highlighters,
editors) could be extended to support Pandoc's
Markdown.
I'll keep you posted.
Cheers,
Offray
On Thu, Aug 24, 2017 at 11:32 PM Stephane Ducasse
You have Netstyle/Workflow too.
done
"Why are you using markup documents to create the
wiki when you could
use Github wiki itself?
For portability?"
good question. Yes for flexibility , another
reason however is that Github wiki is a separate
repo and I did not want that because in the very
back of my head I am considering the option of
creating software to allow access to wiki from
inside Pharo and I wanted to be all (content and
code) in the same repo. Its a very low priority
for now.
Also Github wiki is basically the same as I am
doing with some extra format (table of contents) ,
in my case I dont care because Github allows me to
define HTML templates that will format the wiki
webpage and make it look a a lot more polished
that pharo wiki looks like. Generally there are
some cool stuff you can do with Markdown and
Github , plus the fact that markdown can embed
HTML etc.
There is also the option of Gitbook which has some
nice features for generating polished and well
structured documentation.
So I like to keep my options open. For now I am
focusing 100% on content.
Esteban A. Maringolo
2017-08-24 21:47:35 UTC
Permalink
Why are you using markup documents to create the wiki when you could
use Github wiki itself?

For portability?
Esteban A. Maringolo
Post by Dimitris Chloupis
Actually I have already done this
https://github.com/SquareBracketAssociates/PharoWiki/blob/master/contents/projects.md
when he announced the project on the mailing list, but thanks for trying to
inform me, I appreciate it. I will try to update the wiki each time
something new pops up in the mailing list that is usable which means
a) new project
b) some kind of news of general interest about pharo
c) some kind of documentation (article, pdf, power point, blog post etc)
about pharo or third party library/tool
Post by H. Hirzel
Another thing to add
link to
https://github.com/dionisiydk/TelePharo
with short description
remote playground
remote browser
remote debugger
remote inspector
remote process browser
Post by Dimitris Chloupis
absolutely
done !
https://github.com/SquareBracketAssociates/PharoWiki/blob/master/contents/projects.md
On Tue, Aug 22, 2017 at 10:28 PM Stephane Ducasse
Post by Stephane Ducasse
You should add the script that generate the list of catalog items so
that we can update it.
On Tue, Aug 22, 2017 at 8:18 PM, Dimitris Chloupis
Post by Dimitris Chloupis
Ok I restructured the wiki , giving it a table of contents.
Added Pharo 6 Catalog projects
Added PettitParser2
Added a sections for How tos , and a couple of them
Added a news section
Added a link to Grafoscopio homepage at its Catalaog section
Added a wikis section with a link to Astares Pharo wiki
Keep your suggestions coming , thank you Hirzel
https://squarebracketassociates.github.io/PharoWiki/
Post by H. Hirzel
Please add the reference to the PetitParser2 book
https://kursjan.github.io/petitparser2/pillar-book/build/book.html
Post by H. Hirzel
And this one produces a catalog list in markdown format
"Produce a list of Pharo 6 catalog entries (tag: 'Pharo 6.0')"
| catalog |
catalog := CatalogProvider default retrieveProjects select: [ :x |
(x at: 'repositoryUrl') =
'http://smalltalkhub.com/mc/Pharo/MetaRepoForPharo60/main' ].
Transcript show: '# Pharo 6 catalog list'; cr.
(catalog asSortedCollection: [ :a :b | (a at: 'name') < (b at: 'name')
]) do: [ :entry | Transcript show: '## ', (entry at: 'name') ; cr;
show: (entry at: 'description'); cr;cr.
Transcript show: 'keywords: '.
keyword; space ].
Transcript cr; cr].
Transcript show: '# Pharo 6 catalog list - description is missing';
cr.
Post by Dimitris Chloupis
Post by H. Hirzel
Post by H. Hirzel
(catalog asSortedCollection: [ :a :b | (a at: 'name') < (b at: 'name')
])
do: [:entry | (entry at: 'description') ifNil: [ Transcript show: '-
', (entry at: 'name'); cr ]
].
................................................................................................
Post by Dimitris Chloupis
Post by H. Hirzel
Post by H. Hirzel
# Pharo 6 catalog list
## Animation
Adds a delay operator turning any message send into a smooth
transition.
Post by Dimitris Chloupis
Post by H. Hirzel
Post by H. Hirzel
keywords: animation fun time
## Artefact
Artefact is a library to generate PDF documents. It provides a
document model and support the generation of PDF
keywords: PDF document layout
## AstaresDistribution
Several Pharo goodies like Pomodoro, DesktopManager, QuickAccess,
HubCap, ScriptManager, ... written by Torsten Bergmann (astares.com)
bundled for easy installation
keywords: custom distribution goodies pharo
## Atlas
A Python bridge (IPC - stream sockets) for Pharo, allowing Pharo to
use Python libraries , mix with Python code and vice versa
keywords: Atlas IPC atlas pharo python sockets
## BitmapCharacterSet
BitmapCharacterSet is a set for characters that uses a bitmap for
storing wide characters and an array of truth values for byte
characters. Used by XMLParser.
keywords: character collection set unicode
## Bootstrap
"Bootstrap for Seaside" is a project combining Seaside and Twitter
Bootstrap and easily use them to write professional looking web
applications.
keywords: Bootstrap HTML Seaside query web
## Bugzilla
Pharo wrapper for Bugzilla REST API
keywords: api bugzilla rest
## CPPBridge
CPP is a library that allows Pharo to share memory with a C++
application. This means that both can share the exact same data and
modify it. This also can allow Pharo and C++ to exacute one another
library and code. Example provided
keywords: ++ ++ C IPC bridge c cpp file mapped memory shared
## Calypso
Calypso is a new system browser based on new navigation model
keywords: IDE systemBrowser
## CheatSheet
Pharo Cheat Sheet.
*http://www.smalltalkhub.com/#!/~PharoExtras/CheatSheet*
keywords: examples syntax
## ChronosManager
ChronosManager is a time managment tool based on the pomodoro
technique offering a stopwatch and timer for keeping track of time
with tasks and goals
keywords: ChronosManager managment pomodoro time
## Citezen
Citezen is a library to parse, query and manage bibtex scientific
citations.
keywords: bibtex latex parser printer query
## CommandShell
nil
## Commander
Commander models application actions as first class objects.
Every action is implemented as separate command class (subclass of
CmdCommand) with #execute method and all state required for execution.
Commands are reusable objects and applications provide various
ways
to
access them. Such information is attached to command classes as
- CmdShortcutCommandActivator
- CmdContextMenuCommandActivator
- CmdDragAndDropCommandActivator
Activators are declared in command class side methods marked with
pragma #commandActivator. For example following method will allow
RenamePackageCommand to be executed by shortcut in possible system
RenamePackageCommand class>>packageBrowserShortcutActivator
<commandActivator>
PackageBrowserContext
RenamePackageCommand class>>packageBrowserMenuActivator
<commandActivator>
PackageBrowserContext
Activators are always declared with application context where they can
be applied (PackageBrowserContext in example). Application should
provide such contexts as subclasses of CmdToolContext with information
about application state. Every widget can bring own context to
interact with application as separate tool. For example system browser
shows multiple panes which provide package context, class context and
method context. And depending on context browser shows different menu
and provides different shortcuts
keywords: command command pattern tools
## Community
Community is a project to add some world menues to easily access some
community pages
keywords: community pharo
## Complex
Math-Complex brings back to Pharo the complex numbers like (1+2i)
which used to be in Squeak Kernel.
keywords: complex math number
## DacapoEnergyConsumption
This project run the Dacapo benchmarks, and monitor the energy
consumption of the CPU. It is for research purposes.
keywords: consumption energy java
## DarkMetalTheme
An alternative to DarkTheme, DarkMetalTheme offers "metalic"
tonalities
Post by Dimitris Chloupis
Post by H. Hirzel
Post by H. Hirzel
:)
keywords: theme ui
## DebuggerCritiques
Add inlined critiques into Pharo debugger
keywords: critiques debugger smallLint
## DesktopManager
A goodie to be able to manage multiple desktops in Pharo.
keywords: desktop goodie pharo tools
## DiscordSt
DiscordSt is a library for Discord service, see
https://discordapp.com
Post by Dimitris Chloupis
Post by H. Hirzel
Post by H. Hirzel
for basic information about Discord and
https://discordapp.com/developers/docs/intro for developer
information.
The stable version supports Discord Webhooks. See
https://github.com/JurajKubelka/DiscordSt for examples.
keywords: api chat client discord rest web webhook
## EventRecorder
Record and replay screen events.
keywords: recording screen
## FamixDiff
nil
## FlatQA
Hi, I'm your personal quality assistant. I run Smalllint rules on the
code that you modify, and notify you about quality changes.
https://github.com/Uko/QualityAssistant#qualityassistant
keywords: automatic critics quality smallint validation
## FogBugz
Access to FogBugz from within Pharo environment.
keywords: fun web
## Garage
Garage is the relational database driver for Pharo. Garage
provides
a
common API to connect with several database servers in a coherent way
(JDBC like). Along with Garage, we provide implementations of several
database drivers.
keywords: api database drivers
## GarageGlorp
This configuration loads the Garage database drivers along with the
Glorp Object-Relational Mapper. It is a convenience configuration used
to load both projects using a single config.
keywords: database driver orm persistence
## Gettext
Gettext is an implementaion of
https://www.gnu.org/software/gettext,
the standard l17n package.
keywords: gettext i18n internationalization l10n localization
## Ghost
nil
## GitFileTree
GitFileTree is an integration of Git commands below Monticello,
allowing a very simple and powerfull integration with a git repository
for tracking Monticello packages, allowing for example one to work
from github.com (including with configurations support) without any
use of the command line and with perfect support of whatever is the
structure of the project under git.
Works with any possible organisation of the git repository related to
the package (single language, multi language, single package, multiple
packages, single remote repo, multiple remote repositories, branches,
you name it).
GitFileTree: is integrated into FileTree, but not easily available.
This configuration allow for a one step loading with the dependencies.
keywords: FileTree Monticello OSProcess OSSubprocess Packages Pharo5
Pharo6
git
## GitHubAPI
A GitHub API Wrapper for Pharo to easily access informations from
GitHub right from your Pharo image.
keywords: api git github
## GitHubcello
Have it happened to you that you have your project on GitHub and it
has a baseline but now you have to write down the Metacello script to
load it? Not any more! Simply paste your repo URI into GTSpotter, wait
a bit, select the baseline you want to load, and you're done!
https://github.com/Uko/GitHubcello#githubcello-
keywords: github metacello spotter
## GlorpSQLite
GlorpSQLite is the integration of Glorp with SQLite. This
configuration loads UDBC, which contains SQLite, then loads Glorp.
Once GlorpSQLite is loaded, provided Pharo can find the SQLite
so/dylib/dll file on your system, start Test Runner and run the tests.
keywords: database orm persistence relational
## Grafoscopio
Grafoscopio is a tool to create interactive notebooks and
documentation for computer narratives and data visualization.
They are structured as outlines/trees containing textual and
code
Post by Dimitris Chloupis
Post by H. Hirzel
Post by H. Hirzel
nodes that can be exported to several formats: LaTeX, HTML
and pdf (via pandoc).
It can be used in several endeavors like: reproductible open
research
and science, data journalism, data activism among others
keywords: data-activism data-journalism data-science
data-visualization documentation interactive-notebook markdown markup
open-data open-research open-science reproducible-research
## Grease
The Grease Portability Library
keywords: framework portability
## Grid
This package provides a grid (2D array) implementation.
keywords: 2D-array collection container matrix
## Hashids
Hashids allow you to create URL friendly ids from sequential integer
ids. NB it is should not be considered as encryption but it does
provide a lightweight obfuscation of the underlying id.
https://github.com/alacap/hashids-pharo
keywords: hashing
## Hubcap
nil
## INIFile
A Parser for .INI files (as usually used on Windows)
keywords: configurations ini settings windows
## Iceberg
Iceberg is a set of tools that allow one to handle git repositories
directly from a Pharo image.
keywords: git vcs version control
## LightPhaser
nil
## MacroRecorder
MacroRecorder is a tool that allows the developer to
(i) record a sequence of transformations while they are applied
a
Post by Dimitris Chloupis
Post by H. Hirzel
Post by H. Hirzel
first time, either manually or with the assistance of refactoring
tools;
(ii) store and parameterize the transformations to allow their
generalization; and
(iii) apply automatically the sequence of transformations
afterwards
on different code locations.
For the last step, the developer could explicitly point to the
entities to transform.
keywords: code change code manipulation programming by demonstration
source code transformations
## MatchTool
MatchTool is a simple UI for experimenting with the matching
functionality of pattern code.
MatchTool can be open from the World Menu > Tools category. More
information can be read from within the tool by pressing help button.
keywords: code inspect match pattern rewrite rules
## MessageFlowBrowser
A message flow browse to browser senders, implementors and
messages
of
methods in a single window and folow the message flow
keywords: browser messageflow methods tools
## Mocketry
Mocketry is mock objects framework. It provides simplest way to stub
any message to any object and to verify any occurred behaviour.
mock := Mock new.
mock stub someMessage willReturn: 1000.
mock someMessage should be: 1000.
mock should receive someMessage.
rect stub width willReturn: 1000.
rect area should be: 3000 "area = width * height".
rect should receive width.
keywords: BDD SUnit TDD framework mocks
## MooseProject
MooseProject is a library to store many differents versions for a
project. It will persist everything on the disk and allow you easily
to recover the model associated to the desired version
keywords: Moose project version
## Mustache
nil
## NPMJS
Spotter search of NPM packages
keywords: javascript nodejs
## Neo4reSt
Neo4reSt is a rest client of Neo4j graph database.
(http://neo4j.org/
)
Post by Dimitris Chloupis
Post by H. Hirzel
Post by H. Hirzel
- Raw rest client
- Wrapper client which handles JSON well
- Object level wrapper classes (Node, Relationship, Property)
keywords: Neo4j database graph persistence
## NeoCSV
CSV (Comma Separated Values) is a popular data-interchange format.
NeoCSV is an elegant and efficient standalone framework to read and
write CSV converting to or from Smalltalk objects.
keywords: ascii comma-separated-values csv fields format input output
records rfc-4180 tab-separated-values tabular-data text tsv
## NeoJSON
JSON (JavaScript Object Notation) is a popular data-interchange
format. NeoJSON is an elegant and efficient standalone Smalltalk
framework to read and write JSON converting to or from Smalltalk
objects.
keywords: encoding format input javascript json output
serialization
text
## Nginx
Utility project to work with nginx from Pharo image (Windows only
so
far)
keywords: nginx server web windows
## OSLinuxCentOS
A part of the OS-XXX series to easier work with native operating
system platforms. Here for using CentOS Linux environments in Pharo.
keywords: centos linux native os unix
## OSLinuxUbuntu
A part of the OS-XXX series to easier work with native operating
system platforms. Here for using Ubuntu Linux environments in Pharo.
keywords: linux native os ubuntu unix
## OSOSX
nil
## OSProcess
nil
## OSRaspbian
A part of the OS-XXX series to easier work with native operating
system platforms. Here for using Raspbian environments in Pharo.
keywords: linux native os raspbian unix
## OSUnix
A part of the OS-XXX series to easier work with native operating
system platforms. Here for using Unix environments in Pharo.
keywords: native os unix
## OSWindows
API wrappers and tools for the Windows operating system
keywords: api native win32 windows
## ObjectStatistics
ObjectStatistics is tool to analyse set of objects by computing
different kind of metrics and look at them from different angles.
Imaging that we have collection of message sends and we want to know
number of message sends in dimension of receiver, receiver class and
message selector. We have different angles to look at this data: from
receiver class to selector and receiver or from selector to receiver
class and receiver or any other combination.
We also could analyze different kind of metrics which could be
computed on given objects. It could be number of unique receivers,
execution time, executed lines of code, etc.
This package implements computation of object statistics over declared
metrics and dimensions space.
stat := ObjectStatistics.
stat
countAllAs: 'sends';
'instances'.
stat
'classes';
with: [
stat dimension: [ :message | message
selector
]
named: 'msgs';
with: [
stat
'receivers';
#('instances')]];
'msgs';
Post by Dimitris Chloupis
Post by H. Hirzel
Post by H. Hirzel
with: [
stat dimension: [ :message | message receiver
class ] named: 'classes';
with: [
stat
'receivers']].
stat accumulateAll: messageSends.
keywords: analysis framework
## ObjectTravel
ObjectTravel implements traversal of full object graph. It enumerates
each reference in breadth-first direction and visit every reference
only once.
traveler moveToNextReference. "true".
traveler currentReference. "10"
traveler nextReference. "30"
traveler := ObjectTraveler on: #(10 20 30).
traveler nextReference "10"
traveler nextReference "20"
traveler replaceCurrentReferenceWith: #newReference.
keywords: objectsTraversal stream tool
## Octopus
A pharo tool that utilises Pillar library to process pillar text
copied to the clipboard and convert it to HTML
keywords: HTML markdown pillar
## OrderPreservingDictionary
This package has two ordered dictionary classes that behave like
OrderedDictionary and OrderedIdentityDictionary in Pharo but are
portable to Squeak and Gemstone, and other ordered dictionary classes
needed by XMLParser.
keywords: collection dictionary order-preserving ordered
## Orion
Orion is an interactive prototyping tool for reengineering, to
simulate changes and compare their impact on multiple versions of
software source code models.
keywords: Moose delta model versioning
## Pastell
Pastell is an add-on for XMLParser which adds some methods that make
navigation of an XML DOM tree much easier, it is a XMLPath-like
library.
keywords: xml xpath
## PharoSprint
The Pharo community regularly organize Pharo Sprint events. The Pharo
Sprint is a regular (monthly) event when developers and users meet
together to fix bugs. This usually takes place in a physical location,
but people are welcomed to participate from any place. This is a great
opportunity for novices to get involved and learn from experts!
For more information: http://bit.ly/SprintWeb and
http://pharo.org/contribute-events
keywords: Bug Discord FogBugz PharoSprint Sprint SprintDay
## Pillar
Pillar is a wiki-like syntax, its document model, a parser for it, and
a set of exporters (e.g., HTML, LaTeX, Markdown...). Pillar is
primarily used as the wiki syntax behind the *Pier
e.g., *the Enterprise Pharo book>http://books.pharo.org/*.
keywords: book document html latex markdown pier wiki
## PlotMorph
PlotMorph is a nice plotting system. It can plot multiple series with
different graphical attributes.
keywords: Morph UI graph plotting point series
## PolyMath
Tools for scientific computation in Smalltalk
keywords: ODE mathematics science
## Pomodoro
A pomodoro timer
keywords: GTD morphic pomodoro
## PunQLite
UnQLite binding for Pharo Smalltalk. UnQLite is a fast, lightweight,
portable, embedded KVS with a simple scripting engine (Jx9). By using
PunQLite, you can store/load lots of data as if just using a normal
Dictionary.
PunQLite uses UnQLite shared library. If you have no time to compile,
just get pre-built binary from the github project page
(https://github.com/mumez/PunQLite).
keywords: KVS NoSQL UFFI UnQLite database persistence
## QualityAssistant
Hi, I'm your personal quality assistant. I run Smalllint rules on the
code that you modify, and notify you about quality changes.
https://github.com/Uko/QualityAssistant#qualityassistant
keywords: automatic critics quality smallint validation
## QuickAccess
A manager for scripts with Quick access.
keywords: fun web
## RProjectConnector
nil
## RediStick
RediStick is a redis client which supports auto-reconnecting.
- Minimum dependencies (runs on Pharo without other libraries)
- Supports unicode strings
keywords: KVS NoSQL Redis database persistence
## ReferenceFinder
Finds reference paths between objects to help find memory leaks.
keywords: memory objects references tracing
## RegexTools
A tool to test and verify regular expressions
keywords: regex utilities
## Roassal2
Roassal is an agile visualization engine. Roassal graphically renders
objects using short and expressive Smalltalk expressions. A large set
of interaction facilities are provided for a better user experience.
Painting, brushing, interconnecting, zooming, drag and dropping will
just make you more intimate with any arbitrary object model.
keywords: charting data visualization
## SRT2VTT
This package convert SRT to VTT (subtitles for videos plugins)
keywords: browser plugin srt videos vtt web
## ScriptManager
A simple tool to manage scripts. Still based on Morphic. We would
recommend users to switch to QuickAccess which is a better script
manager than this tool.
keywords: fun script
## Seaside3
The framework for developing sophisticated web applications in
Smalltalk. See http://www.seaside.st
keywords: framework seaside web
## SimilarityFlooding
This project is an implementation of a FAMIX model difference
algorithm based on Similarity Flooding algorithm as defined by Sergey
A versatile graph matching algorithm and its application to schema
matching' and in the technical report associated.
Check the github repository for documentation
[https://github.com/juliendelplanque/SFDiff].
keywords: FAMIX SFDiff difference model similarity similarity flooding
## Spy2
Spy2 is a profiling framework. You can easily create profilers. You
can have a look at a description
http://bergel.eu/download/papers/Berg10f-Spy.pdf
The Hapao test coverage tool is included.
keywords: Hapao Memory Performance Profiling Roassal Spy
## Stamp
Stamp is an implementation of STOMP 1.2, a protocol to access message
oriented middleware like RabbitMQ.
keywords: client format messaging middleware queueing rabbitmq stomp
## StateSpecs
StateSpecs is object state specification framework. It describes
particular object states by first class specifications. For example
there are SpecOfCollectionItem, SpecOfObjectClass and
SpecOfObjectSuperclass. They can match and validate given objects. In
case when object is not satisfied specification you will get failure
result with detailed information about problem.
spec matches: anObject.
spec validate: anObject. "it returns validation result which
can
be
success or particular failure"
To easily create specifications and validate objects by them
StateSpecs provides two kind DSL: should expressions and "word"
classes.
1 should be: 2
1 should equal: 10
Kind of: Number
Instance of: String
Equal to: 'test'
keywords: BDD SUnit TDD framework validation
## Ston
Smalltalk Object Notation (STON) is a lightweight, text-based,
human-readable data interchange format for class-based object-oriented
languages like Smalltalk. It can be used to serialize domain level
objects, either for persistency or network transport. As its name
suggests, it is based on JSON (Javascript Object Notation). It adds
symbols as a primitive value, class tags for object values and
references.
keywords: encoding format input json output serialization ston text
## SublimishTheme
A dark theme for Pharo. If you like Sublime then you'll like
Sublimish
theme.
Project main page: *
https://github.com/sebastianconcept/SublimishTheme*
Post by Dimitris Chloupis
Post by H. Hirzel
Post by H. Hirzel
keywords: GUI IDE
## Tarantalk
Tarantalk is a Tarantool (Lua with DBMS) connector.
- Store/load tuples.
- Find tuples by multiple indices
- Evaluate Lua programs
keywords: KVS Lua NoSQL Tarantool Tuple database persistence
## Tarantube
Tarantool message queue wrapper based on Tarantalk.
- Supporting FIFO queue with priority, TTL, TTR, delay and sub queues.
- Need to install Tarantool + Tarantool queue module
(https://github.com/tarantool/queue)
keywords: Lua MQ NoSQL Tarantalk Tarantool queue
## Tealight
Tealight is a project defining a few extensions to the Teapot
framework to make the (tea) time you spend with the Pharo Teapot
system even easier..
keywords: api git github
## Teapot
Teapot is micro web framework on top of the Zinc HTTP components, that
focuses on simplicity and ease of use.
keywords: framework http micro sinatra web
## TestsUsageAnalyser
nil
## Trie
This package provides a trie implementation (as developed by Benoit
St-Jean. See https://en.wikipedia.org/wiki/Trie
keywords: collection containers retrieval trie
## Units
Units is a simple and powerful library to manage different units.
keywords: Comparison Meter Points Units
## VMProfiler
VMProfiler is a sampling profiler tracking down where the time is
spent in the VM when executing a specific portion of code. It computes
where the time is spent in the compiled C code of the VM, in the VM
plugins and in the native functions.
The results are available as a statistical report.
keywords: cog jit profiling virtual machine
## VerStix
A Vert.x TCP EventBus client for Pharo Smalltalk.
- interact with various Vert.x components (Web, Auth, DB, MQ, etc).
- interact with other Smalltalk images
- interact with various languages which support Vert.x EventBus
keywords: microservices network vertx
## VistaCursors
Provide a better looking cursor (similar to Windows Vista).
keywords: cursor theming ui windows
## VoyageMongo
Voyage-Mongo is an object persistence layer made for easy the work
with *MongoDB>http://www.mongodb.org*. It is an "ODM"
(Object-Document
Post by Dimitris Chloupis
Post by H. Hirzel
Post by H. Hirzel
Mapper), in the same spirit of the ORMs for relational approaches.
keywords: database mongodb nosql persistence
## VoyageUnqlite
Voyage-UnQLite is an object persistence layer made for easy the work
with *UnQLite>https://unqlite.org*. It is an "ODM"
(Object-Document
Mapper), in the same spirit of the ORMs for relational approaches.
keywords: database nosql persistence unqlite
## WKHTML2PDF
Render HTML into PDF and various image formats using the
(external)
Qt
WebKit rendering engine directly from Pharo.
keywords: html pdf reporting
## WebBrowser
General and platform independent WebBrowser access for Pharo 4.0
onwards based on NativeBoost, for Pharo 5.0 onwards based on UFFI
keywords: internet platform url utility web webbrowser
## XMI
A XMI wrapper for Pharo to easily access XML Metadata
informations.
keywords: omg uml xmi xml
## XMLParser
XMLParser provides validating SAX and DOM parsers for well-formed XML
documents on Pharo, Squeak, and Gemstone. It also provides a DOM API
for manipulating documents, namespace support, and an optional
XMLWriter for writing documents. Validation and namespace checking are
enabled by default, but not resolution of external entities.
http://www.w3.org/TR/REC-xml/
http://www.w3.org/TR/REC-xml-names/
http://www.w3.org/TR/xml-id/
http://www.w3.org/TR/xmlbase/
https://www.w3.org/TR/xml-c14n
keywords: DOM DTD HTML SAX XHTML XML document markup parser validation
web
## XMLParserHTML
XMLParserHTML provides SAX and DOM parsers for HTML that convert
possibly malformed HTML into well-formed XML.
keywords: DOM HTML SAX document markup parser web
## XMLParserStAX
XMLParserStAX is a pull parser for XMLParser that provides a streaming
interface for "pulling" XML events and also supports pull-style DOM
parsing for dynamically converting events into DOM nodes.
keywords: DOM DTD HTML StAX XHTML XML XMLPullParser document markup
parser pull pull-parser validation web
## XMLWriter
XMLWriter allows you to generate well-formed XML documents using an
API based on Seaside's canvas and tag brushes so all tags will be
nested properly and not left unclosed.
keywords: HTML XHTML XML document markup web writer
## XPath
An XPath library for Pharo, Squeak, and Gemstone leveraging the XML
parsing capabilities of XMLParser. Supports XPath 1.0 syntax with
extensions.
keywords: DOM HTML XHTML XML XPath document markup parser query web
## ZTimestamp
The ZTimestamp project groups a number of classes that form an
addition/alternative to DateAndTime/Timestamp. The core ZTimestamp
class represents a point in time, with second precision and always in
the UTC/GTM/Zulu timezone. It is faster and smaller.
ZTimestampFormat
is a formatter and parser that is example based. ZTimezone uses the
standard Olsone timezone database to compute the offset for local time
at specific points in time for a specified timezone.
ZTimestampSNTPClient is an SNTP client to check the local clock
against network time servers. This project is small and has no further
dependencies. It runs in Pharo 2 and 3.
keywords: chronology date formatting parsing sntp time timestamp timezone
## ZincHTTPComponents
Zinc HTTP Components is an open source Smalltalk framework to deal
with HTTP. It models most concepts of HTTP and its related standards
and offers both client and server functionality. One of its key goals
is to offer understandability (Smalltalk’s design principle number
one). Anyone with a basic understanding of Smalltalk and the HTTP
principles should be able to understand what is going on and
learn,
by
looking at the implementation.
keywords: character-encoding client http internet mime-type networking
request response server url
# Pharo 6 catalog list - description is missing
- CommandShell
- FamixDiff
- Ghost
- Hubcap
- LightPhaser
- Mustache
- OSOSX
- OSProcess
- RProjectConnector
- TestsUsageAnalyser
Post by H. Hirzel
This code snippet below gives a list of all Pharo 6.0 catalog entries
CatalogProvider default retrieveProjects select: [ :x |
(x at: 'repositoryUrl') =
'http://smalltalkhub.com/mc/Pharo/MetaRepoForPharo60/main' ].
Post by Dimitris Chloupis
absolutely , I will add Torsten's wonderful wiki and Grafoscopio
details,
keep them coming :)
Anything I miss, please alert me as Hizrel just did , I want to
link
to
anything Pharo related ,lets bring everything under one roof ;)
On Mon, Aug 21, 2017 at 9:15 AM H. Hirzel
Post by H. Hirzel
And add the overview to Grafoscopio
Aug 20, 2017
[Pharo-users] [Ann] [Grafoscopio] New release with major
improvements
Post by Dimitris Chloupis
Post by H. Hirzel
Post by H. Hirzel
Post by H. Hirzel
Post by Dimitris Chloupis
Post by H. Hirzel
Post by H. Hirzel
......
Post by Dimitris Chloupis
you make any submission you want here in this thread and I
will
port
it
to
wiki with copy paste and a bit of structuring :)
Dimitris,
Could you please do add a link in
https://github.com/SquareBracketAssociates/PharoWiki
to Torsten's wiki
http://wiki.astares.com/pharo
It has over 500 pages with good content I was not aware of....
Thanks,
Hannes
Torsten Bergmann
2017-08-20 09:43:40 UTC
Permalink
Post by Dimitris Chloupis
Many seemed to like the idea of a Pharo wiki , I like it too. I created
one, can be found here and super easy to contribute to.
https://github.com/SquareBracketAssociates/PharoWiki
I still prefer to have one based on Smalltalk and as there never was an official one
maintain my own private hosted Pharo wiki since 2015

http://wiki.astares.com/pharo

including lots of useful informations.

It us a Swiki server ("Winterlong" release) - so it is based on Squeak + Comanche.
http://wiki.squeak.org/swiki/

I once offered it to the community but there were doubts as Swiki is not more
maintained and a Pharo solutions would be preferable.

Unfortunately there never was a Pharo based wiki implementation although we have all the bits
and pieces (Pillar, Teapot/Tealight, Zinc, ...) to write one.

I have several swikis running over the years and all of them run very very stable and
without any problems. Even in case of trouble they are easy to repair and extend as the
content is written into XML files.

Also it has an UNZIP and go concept - so it is easy to install/run and maintain or move
to a different server. Squeak community is running their swiki for years already.
The only problem there is that it is not well maintained and lost of pages are outdated
- but this is a problem independent from the wiki technology used.

So creating a wiki is quick and easy - be able to maintain up to date infos another issue.

Thanks
T.
Dimitris Chloupis
2017-08-20 11:07:08 UTC
Permalink
Completely up to you , personal I love having many options.

This is my wiki thus will be maintained by me.

Basically it occurred to me that because I already spent time reading
mailing list posts , then why not copy paste this extremely valuable posts
to a wiki with some structure that is much easier to navigate for newcomers
compared to archives of mailing lists.

I have no intention of maintaining the content to keep it up to date
because I agree that Pharo books should remain as the single source of
polished official documentation.

The wiki is there to act as a clipboard for content that may or may not
enter into one of the books.

My No1 goal is a zero maintenance , zero cost , zero learning curve wiki (
assuming you are already a github user). Because also is part of our github
group for the books all contributors have already immediate access to it.
So I think for my goals this solution is by far the best.

I have no intention of creating a swiki for Pharo because as you so
correctly said , software won't be much of a problem, keeping the content
up to date will be.

Keeping up to date Content is something I deal with only Updated Pharo By
Example. It's Definetly far harder than copy pasting stuff.
Post by Torsten Bergmann
Post by Dimitris Chloupis
Many seemed to like the idea of a Pharo wiki , I like it too. I created
one, can be found here and super easy to contribute to.
https://github.com/SquareBracketAssociates/PharoWiki
I still prefer to have one based on Smalltalk and as there never was an official one
maintain my own private hosted Pharo wiki since 2015
http://wiki.astares.com/pharo
including lots of useful informations.
It us a Swiki server ("Winterlong" release) - so it is based on Squeak + Comanche.
http://wiki.squeak.org/swiki/
I once offered it to the community but there were doubts as Swiki is not more
maintained and a Pharo solutions would be preferable.
Unfortunately there never was a Pharo based wiki implementation although
we have all the bits
and pieces (Pillar, Teapot/Tealight, Zinc, ...) to write one.
I have several swikis running over the years and all of them run very very stable and
without any problems. Even in case of trouble they are easy to repair and extend as the
content is written into XML files.
Also it has an UNZIP and go concept - so it is easy to install/run and maintain or move
to a different server. Squeak community is running their swiki for years already.
The only problem there is that it is not well maintained and lost of pages are outdated
- but this is a problem independent from the wiki technology used.
So creating a wiki is quick and easy - be able to maintain up to date infos another issue.
Thanks
T.
Esteban A. Maringolo
2017-08-21 13:19:15 UTC
Permalink
In my previous company we ran Swiki served wikis for most of our
customers during years of uninterrupted uptime, it has proven to be
really stable, and a single image could handle lots of simultaneous
users.

We ended up moving to Atlassian Confluence because of a better
granularity of user permissions and some "enterprisey" features, but
we all missed the simplicity of Swiki. To migrate the content from
Swiki to Confluence what we did was to implement a crawler/spider that
navigated the wiki contents and recreated the pages in the new server
(with some replacements because of different syntax).

So if Torsten's wiki has lots of contents (I wasn't aware of it), and
most people want to move to a new wiki server, we should consider
recovering Swiki's content. It's a fun project as well (if you have
the time).

Regards,

Esteban A. Maringolo
Post by Torsten Bergmann
Post by Dimitris Chloupis
Many seemed to like the idea of a Pharo wiki , I like it too. I created
one, can be found here and super easy to contribute to.
https://github.com/SquareBracketAssociates/PharoWiki
I still prefer to have one based on Smalltalk and as there never was an official one
maintain my own private hosted Pharo wiki since 2015
http://wiki.astares.com/pharo
including lots of useful informations.
It us a Swiki server ("Winterlong" release) - so it is based on Squeak + Comanche.
http://wiki.squeak.org/swiki/
I once offered it to the community but there were doubts as Swiki is not more
maintained and a Pharo solutions would be preferable.
Unfortunately there never was a Pharo based wiki implementation although we have all the bits
and pieces (Pillar, Teapot/Tealight, Zinc, ...) to write one.
I have several swikis running over the years and all of them run very very stable and
without any problems. Even in case of trouble they are easy to repair and extend as the
content is written into XML files.
Also it has an UNZIP and go concept - so it is easy to install/run and maintain or move
to a different server. Squeak community is running their swiki for years already.
The only problem there is that it is not well maintained and lost of pages are outdated
- but this is a problem independent from the wiki technology used.
So creating a wiki is quick and easy - be able to maintain up to date infos another issue.
Thanks
T.
Dimitris Chloupis
2017-08-21 19:57:41 UTC
Permalink
Yes Torsten wiki is in a very good state and very well made :)

Will definitely link to it and use it as source

As I said , I like to keep this as simple as possible, we are already
hosted on github for documentation. A wiki there will be easier to find and
easier to use and easier to maintain.
Post by Esteban A. Maringolo
In my previous company we ran Swiki served wikis for most of our
customers during years of uninterrupted uptime, it has proven to be
really stable, and a single image could handle lots of simultaneous
users.
We ended up moving to Atlassian Confluence because of a better
granularity of user permissions and some "enterprisey" features, but
we all missed the simplicity of Swiki. To migrate the content from
Swiki to Confluence what we did was to implement a crawler/spider that
navigated the wiki contents and recreated the pages in the new server
(with some replacements because of different syntax).
So if Torsten's wiki has lots of contents (I wasn't aware of it), and
most people want to move to a new wiki server, we should consider
recovering Swiki's content. It's a fun project as well (if you have
the time).
Regards,
Esteban A. Maringolo
Post by Torsten Bergmann
Post by Dimitris Chloupis
Many seemed to like the idea of a Pharo wiki , I like it too. I created
one, can be found here and super easy to contribute to.
https://github.com/SquareBracketAssociates/PharoWiki
I still prefer to have one based on Smalltalk and as there never was an
official one
Post by Torsten Bergmann
maintain my own private hosted Pharo wiki since 2015
http://wiki.astares.com/pharo
including lots of useful informations.
It us a Swiki server ("Winterlong" release) - so it is based on Squeak +
Comanche.
Post by Torsten Bergmann
http://wiki.squeak.org/swiki/
I once offered it to the community but there were doubts as Swiki is not
more
Post by Torsten Bergmann
maintained and a Pharo solutions would be preferable.
Unfortunately there never was a Pharo based wiki implementation although
we have all the bits
Post by Torsten Bergmann
and pieces (Pillar, Teapot/Tealight, Zinc, ...) to write one.
I have several swikis running over the years and all of them run very
very stable and
Post by Torsten Bergmann
without any problems. Even in case of trouble they are easy to repair
and extend as the
Post by Torsten Bergmann
content is written into XML files.
Also it has an UNZIP and go concept - so it is easy to install/run and
maintain or move
Post by Torsten Bergmann
to a different server. Squeak community is running their swiki for years
already.
Post by Torsten Bergmann
The only problem there is that it is not well maintained and lost of
pages are outdated
Post by Torsten Bergmann
- but this is a problem independent from the wiki technology used.
So creating a wiki is quick and easy - be able to maintain up to date
infos another issue.
Post by Torsten Bergmann
Thanks
T.
Dimitris Chloupis
2017-08-22 18:43:32 UTC
Permalink
Also if someone else wants to come and port the content to asteres wiki,
its just markdown with a tons of parsers for it around I am sure it will be
trivial for one that understands how swiki works. Plus markdown is very
simple syntax anyway. I care more about the content, if ones wants to wrap
it around a much better pharo software I certainly would not complain.

For example maybe we can have a wiki tool from inside Pharo image that
gives easy access to my wiki , we have the tools to deal with github repos
already and parsing markdown is rather trivia.

My goal is to take all this unknown documentation like astares wiki, all
these hidden gems and expose them to the users because I think the mailing
list and the web is very easy to hide things or difficult to find them.
This way we can have a main hub that keeps all this content easily
accessible inside a nicely structured table of contents with simple links
and nothing gets lost. In a format that is very easy to contribute, modify
and improve and port to whatever software we want ;)
Post by Dimitris Chloupis
Yes Torsten wiki is in a very good state and very well made :)
Will definitely link to it and use it as source
As I said , I like to keep this as simple as possible, we are already
hosted on github for documentation. A wiki there will be easier to find and
easier to use and easier to maintain.
Post by Esteban A. Maringolo
In my previous company we ran Swiki served wikis for most of our
customers during years of uninterrupted uptime, it has proven to be
really stable, and a single image could handle lots of simultaneous
users.
We ended up moving to Atlassian Confluence because of a better
granularity of user permissions and some "enterprisey" features, but
we all missed the simplicity of Swiki. To migrate the content from
Swiki to Confluence what we did was to implement a crawler/spider that
navigated the wiki contents and recreated the pages in the new server
(with some replacements because of different syntax).
So if Torsten's wiki has lots of contents (I wasn't aware of it), and
most people want to move to a new wiki server, we should consider
recovering Swiki's content. It's a fun project as well (if you have
the time).
Regards,
Esteban A. Maringolo
Post by Torsten Bergmann
Post by Dimitris Chloupis
Many seemed to like the idea of a Pharo wiki , I like it too. I
created
Post by Torsten Bergmann
Post by Dimitris Chloupis
one, can be found here and super easy to contribute to.
https://github.com/SquareBracketAssociates/PharoWiki
I still prefer to have one based on Smalltalk and as there never was an
official one
Post by Torsten Bergmann
maintain my own private hosted Pharo wiki since 2015
http://wiki.astares.com/pharo
including lots of useful informations.
It us a Swiki server ("Winterlong" release) - so it is based on Squeak
+ Comanche.
Post by Torsten Bergmann
http://wiki.squeak.org/swiki/
I once offered it to the community but there were doubts as Swiki is
not more
Post by Torsten Bergmann
maintained and a Pharo solutions would be preferable.
Unfortunately there never was a Pharo based wiki implementation
although we have all the bits
Post by Torsten Bergmann
and pieces (Pillar, Teapot/Tealight, Zinc, ...) to write one.
I have several swikis running over the years and all of them run very
very stable and
Post by Torsten Bergmann
without any problems. Even in case of trouble they are easy to repair
and extend as the
Post by Torsten Bergmann
content is written into XML files.
Also it has an UNZIP and go concept - so it is easy to install/run and
maintain or move
Post by Torsten Bergmann
to a different server. Squeak community is running their swiki for
years already.
Post by Torsten Bergmann
The only problem there is that it is not well maintained and lost of
pages are outdated
Post by Torsten Bergmann
- but this is a problem independent from the wiki technology used.
So creating a wiki is quick and easy - be able to maintain up to date
infos another issue.
Post by Torsten Bergmann
Thanks
T.
Continue reading on narkive:
Loading...