Pharo-users
By thread
pharo-users@lists.pharo.org
By month
Messages by month
- ----- 2026 -----
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- 7 participants
- 50354 messages
Re: [Pharo-users] [ANN] Pharo wiki , is here
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
<kilon.alios(a)gmail.com> wrote:
> 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/
>
>
> On Mon, Aug 21, 2017 at 7:19 PM H. Hirzel <hannes.hirzel(a)gmail.com> wrote:
>>
>> Please add the reference to the PetitParser2 book
>>
>> https://kursjan.github.io/petitparser2/pillar-book/build/book.html
>>
>> On 8/21/17, H. Hirzel <hannes.hirzel(a)gmail.com> wrote:
>> > 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@0 corner: 2@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: 10@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
>> >
>> >
>> > On 8/21/17, H. Hirzel <hannes.hirzel(a)gmail.com> wrote:
>> >> 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' ].
>> >>
>> >>
>> >>
>> >> On 8/21/17, Dimitris Chloupis <kilon.alios(a)gmail.com> wrote:
>> >>> 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 <hannes.hirzel(a)gmail.com>
>> >>> wrote:
>> >>>
>> >>>> And add the overview to Grafoscopio
>> >>>>
>> >>>> Aug 20, 2017
>> >>>> [Pharo-users] [Ann] [Grafoscopio] New release with major improvements
>> >>>>
>> >>>> On 8/21/17, H. Hirzel <hannes.hirzel(a)gmail.com> wrote:
>> >>>> > On 8/20/17, Dimitris Chloupis <kilon.alios(a)gmail.com> wrote:
>> >>>> > ......
>> >>>> >>
>> >>>> >> 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
>> >>>> >
>> >>>>
>> >>>>
>> >>>
>> >>
>> >
>>
>
Aug. 22, 2017
Re: [Pharo-users] [ANN] Pharo wiki , is here
by Dimitris Chloupis
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 ;)
On Mon, Aug 21, 2017 at 10:57 PM Dimitris Chloupis <kilon.alios(a)gmail.com>
wrote:
> 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.
>
> On Mon, Aug 21, 2017 at 4:20 PM Esteban A. Maringolo <emaringolo(a)gmail.com>
> wrote:
>
>> 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
>>
>>
>> 2017-08-20 6:43 GMT-03:00 Torsten Bergmann <astares(a)gmx.de>:
>> >>> 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.
>> >
>> >
>> >
>> >
>> >
>>
>>
Aug. 22, 2017
Re: [Pharo-users] [ANN] Pharo wiki , is here
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/
On Mon, Aug 21, 2017 at 7:19 PM H. Hirzel <hannes.hirzel(a)gmail.com> wrote:
> Please add the reference to the PetitParser2 book
>
> https://kursjan.github.io/petitparser2/pillar-book/build/book.html
>
> On 8/21/17, H. Hirzel <hannes.hirzel(a)gmail.com> wrote:
> > 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@0 corner: 2@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: 10@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
> >
> >
> > On 8/21/17, H. Hirzel <hannes.hirzel(a)gmail.com> wrote:
> >> 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' ].
> >>
> >>
> >>
> >> On 8/21/17, Dimitris Chloupis <kilon.alios(a)gmail.com> wrote:
> >>> 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 <hannes.hirzel(a)gmail.com>
> >>> wrote:
> >>>
> >>>> And add the overview to Grafoscopio
> >>>>
> >>>> Aug 20, 2017
> >>>> [Pharo-users] [Ann] [Grafoscopio] New release with major improvements
> >>>>
> >>>> On 8/21/17, H. Hirzel <hannes.hirzel(a)gmail.com> wrote:
> >>>> > On 8/20/17, Dimitris Chloupis <kilon.alios(a)gmail.com> wrote:
> >>>> > ......
> >>>> >>
> >>>> >> 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
> >>>> >
> >>>>
> >>>>
> >>>
> >>
> >
>
>
Aug. 22, 2017
Re: [Pharo-users] [Pharo-dev] TechTalk Dates for the rest of 2017
by Ben Coman
I have an interest.
cheers -ben
On Tue, Aug 22, 2017 at 12:38 AM, Alexandre Bergel <alexandre.bergel(a)me.com>
wrote:
> Hi!
>
> I am currently giving a lecture on Neural Networks and Genetic
> Algorithm/Programming.
> Maybe I could turn this into an express 2 hours mini-lecture. Would this
> work?
>
> Anyone is interesting in programming, from scratch, a small artificial
> intelligence?
>
> Cheers,
> Alexandre
>
>
> > On Aug 21, 2017, at 10:32 AM, Marcus Denker <marcus.denker(a)inria.fr>
> wrote:
> >
> > Hi,
> >
> > We have added dates for tech talk discussions / Demos for the rest of
> 2017:
> > https://association.pharo.org/events
> >
> > We need to find some topics. In the past we had often formal âtalksâ or
> demos about
> > a topic with discussion afterwards, but a more relaxed form of just an
> open discussion
> > about a topic is possible, too,
> >
> > If you like to lead one of the dates (all but the November dates are
> available still), this
> > would be great.
> >
> > If a date does find a topic, we keep it as an open discussion round.
> >
> > Marcus
>
> --
> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
> Alexandre Bergel http://www.bergel.eu
> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>
>
>
>
>
Aug. 22, 2017
Re: [Pharo-users] The Wisdom of the Crowd Redux
by Ben Coman
nice article. thanks for sharing.
cheers -ben
On Tue, Aug 22, 2017 at 4:14 AM, horrido <horrido.hobbies(a)gmail.com> wrote:
> I'm glad people in the programming community are recognizing the value of
> Smalltalk: The Wisdom of the Crowd
> <https://medium.com/@richardeng/the-wisdom-of-the-crowd-c7aff954bd5f> . I
> was very pleasantly surprised by this.
>
>
>
> --
> View this message in context: http://forum.world.st/The-
> Wisdom-of-the-Crowd-Redux-tp4963261.html
> Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.
>
>
Aug. 22, 2017
Re: [Pharo-users] Parser failure on FFI pragmas declaration in Pharo 5
by Stephane Ducasse
Hi
in fact I was wrong we do not support pragma for FFI and we could have
deprecated them but we did not.
Stef
On Tue, Aug 22, 2017 at 5:15 PM, Stephane Ducasse
<stepharo.self(a)gmail.com> wrote:
> Tx for the report
>
>
> On Wed, Aug 16, 2017 at 11:31 PM, bdurin <bruno.durin(a)gmail.com> wrote:
>> Hi,
>>
>> I stumbled upon what seems to me a strange issue in Pharo 5. The RBParser
>> fails to correctly parse the legacy FFI pragmas. This completely breaks down
>> the browser, the inspector and debugger (because as far as I understand all
>> use RBParser to correctly highlight syntax). I had the image crashed and
>> some red boxes at some point while insisting to inspect and debug. Overall
>> this is not a big issue but it raises some more general bells to me.
>>
>> In order to reproduce this:
>> - load the official Pharo 5 (curl get.pharo.org/50+vm | bash)
>> - launch the image (./pharo-ui Pharo.image &)
>> - add the following repository
>> MCSmalltalkhubRepository
>> owner: 'panuw'
>> project: 'zeromq'
>> user: ''
>> password: ''
>> - load the last versions of ZeroMQ and ConfigurationOfZeroMQ (not sure if
>> the latter is needed)
>> - open a Nautilus Browser and look at the class method apiZmqBind:to: of the
>> ZmqApi class in the ZeroMQ package: you get a MessageNotUnderstood error
>> (receiver of keywords is nil). You can get past this by clicking on
>> "Abandon" but the source code is displayed in a corrupted way:
>> apiZmqBind: s
>> ocket to: endpoint <cdecl
>> - repeat a few times by looking at other methods until you get a red box:
>> then you cannot look at source code any more with this browser. If you are
>> obstinate and "lucky" you will succeed in crashing the image.
>> - you can pin the problem by running in a Playground
>> RBParser parseFaultyMethod: 'apiZmqBind: socket to: endpoint
>> <cdecl: long ''zmq_bind'' (ZmqApiSocket* char*) module:''zmq''>
>> ^self externalCallFailed'.
>> and you'll see that the pragmas is not correctly parsed. (The root cause is
>> that the legacy adapter RBFFICallPragma does not follow the API defined by
>> its super class RBPragmaNode (selector, arguments, positions) and so is not
>> a properly defined node. I corrected the problem by computing and setting
>> the corresponding instance variables.)
>
>
>
>> 1) As a beginner at Pharo, I find it difficult to deal with the various
>> versions of Pharo. ZeroMQ is the (only) Smalltalk-Pharo binding for zmq. It
>> dates back to Feb 2014 so I expected it to work in Pharo as of 3 years and a
>> half later (Pharo 6 dates back to June 2017).
>
> We maintain actively 2 versions on 5 OSes.
> On many system old libraries do not work on new versions.
> By definition I never believe that a version of Mac OS 9 is working on
> Mac OS 11 and Mac has a lot of money.
> A lot more than us.
>
>
>> I naively tried to load the package in a Pharo 6 image and it failed because
>> of a syntax error. As I had read a lot about the various FFI mechanisms, I
>> quickly understood that it must be because the FFI declarations in pragma
>> are not supported anymore.
>
> They still are but you probably hit an edge case.
>
>> I then loaded the package in a Pharo 5 image and I got the error that I
>> described. After finding the error and solving it, I guess that the FFI
>> declaration in pragma was barely supported in Pharo 5, which has already
>> switched to UFFI and that it is something dating back to Pharo 4. (I did not
>> try with Pharo 4 as I do not want to work with versions before 5).
>
> Normally we took care to be backward compatible to ease moving from
> one version to the other
> one. Esteban was on vacation and I asked him to have a look.
>
>
>> Is there a way to know for a package what the compatible Pharo version is?
>> It seems that currently I have to look at dates, look at the features used
>> by the package and look for the history of development (fortunately the
>> mailing lists are easy to search) to understand which version is likely to
>> work.
>
> People should
> - publish their package in the catalog of a given version.
> - have test
> - have a configuration because this configuration list also the
> version of Pharo.
>
>
>> Are not deprecations a bit too fast if a package written 3 years ago cannot
>> work in the latest Pharo version and trigger bugs in Pharo 5, which dates
>> back to May 2016 (so only a bit more than 2 years after)?
>
> This is not a deprecation. This is probably just a case that was not handle.
> We spent 8 months developing a new FFI and there is still points to be added.
>
>> I find it a bit too fast as compared to mainstream languages. To my mind,
>> either deprecations should be slower or a version/dependencies system should
>> be there to help users.
>
> Please do not generalise from one case.
> We pay attention to make sure that people can move. Now
>
>>
>> 2) Another question about versions: Pharo 6 is out since June, Pharo 7 is
>> under development. What is the status of Pharo 5? Already history or still
>> relevant?
>
> We do not actively back port fix to Pharo 50. But you can execute
> Pharo 50 and we build regularly vms.
>
>
>
>> I am asking because I corrected the problem of FFI declaration in pragma,
>> but it seems to me that it is not useful to publish this change as starting
>> from Pharo 6 this way to do FFI is not supported. So should I contribute?
>
> Please send your fixes so that we can have a look at it.
>
>> yes, how to "attach" the patch to Pharo 5?
>
> You can
> - open a bug entry and publish a slice in the Pharo50Inbox
> - fileout your changes and send them to the mailing-list to start with.
>
>
>>
>> 3) As explained above, in Pharo 5, looking at the source trigger an error.
>> Even if this looks like a rare corner case, I think that the developer tools
>> should not trigger bugs when looking at source code, even less trigger a red
>> box in the source code viewer (in the browser, but the problem also occurs
>> --less strongly-- when looking at the object in an inspector: there should
>> not be "error printing" when it is only a syntax highlight problem). If the
>> code is malformed and the parser used to highlight syntax fails, there
>> should be a fallback such as the source code being displayed without any
>> highlight. It sends a very bad impression to have this kind of bugs when one
>> simply wants to look at code, not even running it.
>
> Yes you are correct.
>
>
>> I have not dug enough in this area of Pharo, but it seems to me that the
>> parser that is used to build the AST for code execution / method compilation
>> should not be the same as the parser used to highligh syntax. (Of course I
>> am not saying that there should be 2 distincts code base for the 2 parsers,
>> but they should at least run differently.) The first one must be strict with
>> errors as a malformed AST cannot be executed. The second one must be
>> lenient, as a malformed AST does not prevent to print the string of the
>> source code. Of course, at the end if the code is malformed there will be an
>> error at execution, but if the source code can be displayed even when it is
>> malformed, at least I have the opportunity to correct it so that it runs
>> correctly. (In this case, convert the old FFI pragma declaration into a
>> fficall:)
>
> This is more than that.
> A parser error should not blow up the UI. This is a problem in the
> current architecture.
> Pharo is not perfect but we are working on it.
>
>
>> I may be missing something here but if this works the same in the most
>> up-to-date version of Pharo, the same kind of error might appear again.
>> What do you think?
>
> We have a long list of improvements that we should do.
> Pharo is not perfect. It is what we have now and that we use daily,
> improve daily
> but developing robust and good quality software is taking a lot of time.
> We have to prioritize for each version.
> Now we make progress. Each version of Pharo is getting better.
>
>
>>
>> 4) A final remark: let us classify people as Beginner/Confirmed in
>> programming and B/C in Pharo (A BB is a beginner in programming and in
>> Pharo, a CC confirmed in both, a BC cannot exists and CB are those who
>> discover Pharo while knowing well other languages). Pharo seems to be great
>> for BB and CC. I went through the MOOC and the various books which are
>> great. My first steps in Pharo environment were great.
>> As a CC it seems to be great also as in the very small area of the system
>> where I took the time to drill into all the details, I could very easily
>> change things (and correct a bug), that would have been very difficult to
>> understand and change in a lot of other languages. Even hacking the VM seems
>> to be possible for a non-VM expert.
>> But I consider myself rather as a CB. As such I tend to try and do complex
>> things that I usually do in other languages and run into tricky problems.
>> These problems are rather dealt with and corrected by Pharo developers but
>> that as a user I would expect them to remain hidden to me or to be clearly
>> advertised in the docs. As compared to a BB, a CB is not going to stay in a
>> well delimited area where everything is smooth.
>> True, in a way it is a very strong incentive to become a Pharo expert! But I
>> am wondering if this aspect could be improved.
>
> Freedom of action is a two edge sword.
> We are concerned by that aspect. Now often it is not easily to hide
> and reveal on demand
> a reflective system.
>
> Stef
>
>
>>
>> Thanks,
>> Bruno
>>
>>
>>
>> --
>> View this message in context: http://forum.world.st/Parser-failure-on-FFI-pragmas-declaration-in-Pharo-5-…
>> Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.
>>
Aug. 22, 2017
Re: [Pharo-users] Parser failure on FFI pragmas declaration in Pharo 5
by Stephane Ducasse
Tx for the report
On Wed, Aug 16, 2017 at 11:31 PM, bdurin <bruno.durin(a)gmail.com> wrote:
> Hi,
>
> I stumbled upon what seems to me a strange issue in Pharo 5. The RBParser
> fails to correctly parse the legacy FFI pragmas. This completely breaks down
> the browser, the inspector and debugger (because as far as I understand all
> use RBParser to correctly highlight syntax). I had the image crashed and
> some red boxes at some point while insisting to inspect and debug. Overall
> this is not a big issue but it raises some more general bells to me.
>
> In order to reproduce this:
> - load the official Pharo 5 (curl get.pharo.org/50+vm | bash)
> - launch the image (./pharo-ui Pharo.image &)
> - add the following repository
> MCSmalltalkhubRepository
> owner: 'panuw'
> project: 'zeromq'
> user: ''
> password: ''
> - load the last versions of ZeroMQ and ConfigurationOfZeroMQ (not sure if
> the latter is needed)
> - open a Nautilus Browser and look at the class method apiZmqBind:to: of the
> ZmqApi class in the ZeroMQ package: you get a MessageNotUnderstood error
> (receiver of keywords is nil). You can get past this by clicking on
> "Abandon" but the source code is displayed in a corrupted way:
> apiZmqBind: s
> ocket to: endpoint <cdecl
> - repeat a few times by looking at other methods until you get a red box:
> then you cannot look at source code any more with this browser. If you are
> obstinate and "lucky" you will succeed in crashing the image.
> - you can pin the problem by running in a Playground
> RBParser parseFaultyMethod: 'apiZmqBind: socket to: endpoint
> <cdecl: long ''zmq_bind'' (ZmqApiSocket* char*) module:''zmq''>
> ^self externalCallFailed'.
> and you'll see that the pragmas is not correctly parsed. (The root cause is
> that the legacy adapter RBFFICallPragma does not follow the API defined by
> its super class RBPragmaNode (selector, arguments, positions) and so is not
> a properly defined node. I corrected the problem by computing and setting
> the corresponding instance variables.)
> 1) As a beginner at Pharo, I find it difficult to deal with the various
> versions of Pharo. ZeroMQ is the (only) Smalltalk-Pharo binding for zmq. It
> dates back to Feb 2014 so I expected it to work in Pharo as of 3 years and a
> half later (Pharo 6 dates back to June 2017).
We maintain actively 2 versions on 5 OSes.
On many system old libraries do not work on new versions.
By definition I never believe that a version of Mac OS 9 is working on
Mac OS 11 and Mac has a lot of money.
A lot more than us.
> I naively tried to load the package in a Pharo 6 image and it failed because
> of a syntax error. As I had read a lot about the various FFI mechanisms, I
> quickly understood that it must be because the FFI declarations in pragma
> are not supported anymore.
They still are but you probably hit an edge case.
> I then loaded the package in a Pharo 5 image and I got the error that I
> described. After finding the error and solving it, I guess that the FFI
> declaration in pragma was barely supported in Pharo 5, which has already
> switched to UFFI and that it is something dating back to Pharo 4. (I did not
> try with Pharo 4 as I do not want to work with versions before 5).
Normally we took care to be backward compatible to ease moving from
one version to the other
one. Esteban was on vacation and I asked him to have a look.
> Is there a way to know for a package what the compatible Pharo version is?
> It seems that currently I have to look at dates, look at the features used
> by the package and look for the history of development (fortunately the
> mailing lists are easy to search) to understand which version is likely to
> work.
People should
- publish their package in the catalog of a given version.
- have test
- have a configuration because this configuration list also the
version of Pharo.
> Are not deprecations a bit too fast if a package written 3 years ago cannot
> work in the latest Pharo version and trigger bugs in Pharo 5, which dates
> back to May 2016 (so only a bit more than 2 years after)?
This is not a deprecation. This is probably just a case that was not handle.
We spent 8 months developing a new FFI and there is still points to be added.
> I find it a bit too fast as compared to mainstream languages. To my mind,
> either deprecations should be slower or a version/dependencies system should
> be there to help users.
Please do not generalise from one case.
We pay attention to make sure that people can move. Now
>
> 2) Another question about versions: Pharo 6 is out since June, Pharo 7 is
> under development. What is the status of Pharo 5? Already history or still
> relevant?
We do not actively back port fix to Pharo 50. But you can execute
Pharo 50 and we build regularly vms.
> I am asking because I corrected the problem of FFI declaration in pragma,
> but it seems to me that it is not useful to publish this change as starting
> from Pharo 6 this way to do FFI is not supported. So should I contribute?
Please send your fixes so that we can have a look at it.
> yes, how to "attach" the patch to Pharo 5?
You can
- open a bug entry and publish a slice in the Pharo50Inbox
- fileout your changes and send them to the mailing-list to start with.
>
> 3) As explained above, in Pharo 5, looking at the source trigger an error.
> Even if this looks like a rare corner case, I think that the developer tools
> should not trigger bugs when looking at source code, even less trigger a red
> box in the source code viewer (in the browser, but the problem also occurs
> --less strongly-- when looking at the object in an inspector: there should
> not be "error printing" when it is only a syntax highlight problem). If the
> code is malformed and the parser used to highlight syntax fails, there
> should be a fallback such as the source code being displayed without any
> highlight. It sends a very bad impression to have this kind of bugs when one
> simply wants to look at code, not even running it.
Yes you are correct.
> I have not dug enough in this area of Pharo, but it seems to me that the
> parser that is used to build the AST for code execution / method compilation
> should not be the same as the parser used to highligh syntax. (Of course I
> am not saying that there should be 2 distincts code base for the 2 parsers,
> but they should at least run differently.) The first one must be strict with
> errors as a malformed AST cannot be executed. The second one must be
> lenient, as a malformed AST does not prevent to print the string of the
> source code. Of course, at the end if the code is malformed there will be an
> error at execution, but if the source code can be displayed even when it is
> malformed, at least I have the opportunity to correct it so that it runs
> correctly. (In this case, convert the old FFI pragma declaration into a
> fficall:)
This is more than that.
A parser error should not blow up the UI. This is a problem in the
current architecture.
Pharo is not perfect but we are working on it.
> I may be missing something here but if this works the same in the most
> up-to-date version of Pharo, the same kind of error might appear again.
> What do you think?
We have a long list of improvements that we should do.
Pharo is not perfect. It is what we have now and that we use daily,
improve daily
but developing robust and good quality software is taking a lot of time.
We have to prioritize for each version.
Now we make progress. Each version of Pharo is getting better.
>
> 4) A final remark: let us classify people as Beginner/Confirmed in
> programming and B/C in Pharo (A BB is a beginner in programming and in
> Pharo, a CC confirmed in both, a BC cannot exists and CB are those who
> discover Pharo while knowing well other languages). Pharo seems to be great
> for BB and CC. I went through the MOOC and the various books which are
> great. My first steps in Pharo environment were great.
> As a CC it seems to be great also as in the very small area of the system
> where I took the time to drill into all the details, I could very easily
> change things (and correct a bug), that would have been very difficult to
> understand and change in a lot of other languages. Even hacking the VM seems
> to be possible for a non-VM expert.
> But I consider myself rather as a CB. As such I tend to try and do complex
> things that I usually do in other languages and run into tricky problems.
> These problems are rather dealt with and corrected by Pharo developers but
> that as a user I would expect them to remain hidden to me or to be clearly
> advertised in the docs. As compared to a BB, a CB is not going to stay in a
> well delimited area where everything is smooth.
> True, in a way it is a very strong incentive to become a Pharo expert! But I
> am wondering if this aspect could be improved.
Freedom of action is a two edge sword.
We are concerned by that aspect. Now often it is not easily to hide
and reveal on demand
a reflective system.
Stef
>
> Thanks,
> Bruno
>
>
>
> --
> View this message in context: http://forum.world.st/Parser-failure-on-FFI-pragmas-declaration-in-Pharo-5-…
> Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.
>
Aug. 22, 2017
Re: [Pharo-users] Parser failure on FFI pragmas declaration in Pharo 5
by Marcus Denker
>
> On Tue, Aug 22, 2017 at 4:35 PM, bdurin <bruno.durin(a)gmail.com> wrote:
>> Hi Hannes,
>>
>> Thanks for your help! I agree that loading in Pharo 4 (I guess) and
>> following your recipe works and is easy.
>> My concern is not specific to ZeroMQ though. In fact I discovered that
>> ZeroMQ package is just a very low-level bindings of Zeromq C API whereas I
>> thought it was something more like the python bindings of 0mq that provides
>> higher-level abstractions that are more useful. Besides the problem of
>> persisting the state of a 0mq application in the image is quite hard to
>> solve (and this was noted by the author of the Zeromq package). So I
>> probably shall go with python this time.
>> Beyond the specific problem of Zeromq package, I think there is something
>> inconsistent in trying to develop Smalltalk/Pharo as a self-contained
>> environment and not being able to load old code. In other languages, text
>> editor or IDE are external tools but they usually open any source code.
>> (That is why the title of my note is "Parser failure on FFI pragmas
>> declaration in Pharo 5" and not "Cannot load ZeroMQ package source code".)
>> I also wanted to point out that for people that are used to programming and
>> as such could rapidly wander in corner areas of the language, I felt a tool
>> / a procedure to manage dependencies and versions was missing.
I am working on and off on an experiment to allow to load (and compile!) syntactically
wrong code.
(the idea is that it compiles a runtime error what would normally be a static syntax error,
this is available by turning on the "Allow code with syntax errorsâ Setting).
This might not solve the FFI problem (need to look at that), but it will make loading strange
code easierâ¦
Marcus
Aug. 22, 2017
Re: [Pharo-users] Parser failure on FFI pragmas declaration in Pharo 5
by Stephane Ducasse
Bruno
There was a huge change in the FFI (in fact it was rewritten from the
ground) and you face a case where we were not backward compatible.
Nobody reported it to us before.
Now if you unzip the mcz you get the pharo text in plain mode.
It does not solve the problem of parsing but in that case you are
exactly in the same situation than other languages or I did not
understand your problem.
We are managing version and dependencies since years :) luckily.
The part that is missing is that every package loaded in the pharo
image cannot be used as dependent for external packages because of
lack of metadata.
We are working on having metadata for any package (being inside Pharo
or external).
I do not know what is used in ZeroMQ.
Now two questions:
- what are the abstractions that the python binding offers?
- what is the state of a 0mq application? Because we can serialise and
reload execution stack.
So the only things that we cannot serialize are active process so far.
Stef
On Tue, Aug 22, 2017 at 4:35 PM, bdurin <bruno.durin(a)gmail.com> wrote:
> Hi Hannes,
>
> Thanks for your help! I agree that loading in Pharo 4 (I guess) and
> following your recipe works and is easy.
> My concern is not specific to ZeroMQ though. In fact I discovered that
> ZeroMQ package is just a very low-level bindings of Zeromq C API whereas I
> thought it was something more like the python bindings of 0mq that provides
> higher-level abstractions that are more useful. Besides the problem of
> persisting the state of a 0mq application in the image is quite hard to
> solve (and this was noted by the author of the Zeromq package). So I
> probably shall go with python this time.
> Beyond the specific problem of Zeromq package, I think there is something
> inconsistent in trying to develop Smalltalk/Pharo as a self-contained
> environment and not being able to load old code. In other languages, text
> editor or IDE are external tools but they usually open any source code.
> (That is why the title of my note is "Parser failure on FFI pragmas
> declaration in Pharo 5" and not "Cannot load ZeroMQ package source code".)
> I also wanted to point out that for people that are used to programming and
> as such could rapidly wander in corner areas of the language, I felt a tool
> / a procedure to manage dependencies and versions was missing.
>
> Regards,
> Bruno
>
>
>
> --
> View this message in context: http://forum.world.st/Parser-failure-on-FFI-pragmas-declaration-in-Pharo-5-…
> Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.
>
Aug. 22, 2017
Re: [Pharo-users] Parser failure on FFI pragmas declaration in Pharo 5
by bdurin
Hi Hannes,
Thanks for your help! I agree that loading in Pharo 4 (I guess) and
following your recipe works and is easy.
My concern is not specific to ZeroMQ though. In fact I discovered that
ZeroMQ package is just a very low-level bindings of Zeromq C API whereas I
thought it was something more like the python bindings of 0mq that provides
higher-level abstractions that are more useful. Besides the problem of
persisting the state of a 0mq application in the image is quite hard to
solve (and this was noted by the author of the Zeromq package). So I
probably shall go with python this time.
Beyond the specific problem of Zeromq package, I think there is something
inconsistent in trying to develop Smalltalk/Pharo as a self-contained
environment and not being able to load old code. In other languages, text
editor or IDE are external tools but they usually open any source code.
(That is why the title of my note is "Parser failure on FFI pragmas
declaration in Pharo 5" and not "Cannot load ZeroMQ package source code".)
I also wanted to point out that for people that are used to programming and
as such could rapidly wander in corner areas of the language, I felt a tool
/ a procedure to manage dependencies and versions was missing.
Regards,
Bruno
--
View this message in context: http://forum.world.st/Parser-failure-on-FFI-pragmas-declaration-in-Pharo-5-…
Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.
Aug. 22, 2017