Chrysal is a library to express and manage external configurations expressed as STON files. Chrysal is the successor of Cocoon but it does not use any magical things like DNU and Magritte. Chrysal is purely static, it means that given a list of items, a reader class is generated that manages the conversion between the two worlds (what the end-users is declaring and what the application needs). At runtime a generated Chrysal configuration can be a subclass of a domain subclass of Chrysal configuration. This way we can define behavior that will not be lost during the recompilation of the chrysal configuration (the one based on the actual description).
Chrysal creates at compile time a reader that is responsible for mapping end-user expressed configurations to their internal representations (for example a ‘a/b/c.html’ into a file reference object).
In addition at runtime a configuration object can customize the default behavior of the generated reader.
Finally the configuration developer can extend Chrysal to support new data.
PharoJS V22 is available on SmalltalkHub. From the release notes: RELEASE V22 Added statistics package. Generates statistics about Pharo classes used by an app and the size of generated JS code Fixed default app folder parent to fit the modification in github repo = non-pharo code moved to HTML folder This is like the last version done on Pharo 5 and SmalltalkHub as Noury will switch to GitHub now.
by Torsten (email@example.com) at September 20, 2018 06:46 AM
Following what I had in my todo list for when coming back from ESUG, I promoted a new stable VM for Pharo 6.1.
This is the VM that has been tested during almost two months for Pharo 7.0, so it should be fine, but let me know if there is any problem.
by Stéphane Ducasse at September 18, 2018 07:55 PM
Great news that PhaROS got the 3rd price of the Innovation Technology Awards @ ESUG 2018. Santiago Bragagnolo, Luc Fabresse, Pablo Estéfo, Sang Xuan Le and Noury Bouraqadi. Congrats to all contributors!
This blog is implemented in Pharo and is the natural choice for my Docker
example application. I already have a Smalltalk snippet to load this blog's
code and its dependencies into a pristine Pharo image, so I'll be using
that. Also, as a matter of course, I build the Pharo VM from source, and my
VM installation also contains self-built shared libraries like libsqlite.so
Outside of Docker, prepare a custom Pharo image:
gofaro is a simple shell script which purpose is to make sure the Pharo VM
loads my custom shared libraries, co-located with the standard VM files, at
loadSCMS1.st looks like this:
Before describing my Dockerfile, here are my conventions for inside the
VM goes into /pkg/vm.
Application artifacts including the image and changes files go into /pkg/image.
For this blog application, the blog's content is in /pkg/cms.
Starting with Ubuntu 18.04, install libfreetype6. The other lines are
copied from Torsten's tutorial.
Next, install the Pharo VM.
Now copy over the prepared Pharo image.
Finally, set the Docker container running. Here we create a UID/GID pair to
run the application. Said UID owns the mutable Pharo files in /pkg/image
and also the /pkg/image directory itself, in case the application needs to
create other files such as SQLite databases.
runSCMS1.st runs the blog application. In my current non-Dockerized
installation, the runSCMS1.st-equivalent snippet is in a workspace; for
Docker, to become DevOps/agile/CI/CD buzzwords-compliant, this snippet is
run from the command line. This is one Dockerization adaptation I had to
make to my application.
Now we build the Docker image.
The Docker image has been created, but it is not ready to run yet, because
the web content is not in the image. I'll put the content in a Docker
volume. Below, the first -v
mounts my host's content directory into /tmp/webcontent in the container;
the second -v mounts the volume smdw-content into /pkg/cms in the
container; I'm running the busybox image to get a shell prompt; and within
the container I copy the web content from the source to the destination.
Finally, run the Docker image, taking care to mount the volume
smdw-content, now with this blog's content:
Verified with a web browser. This works on my computer. :-)
Geranium is an agent-based simulator with a dedicated DSL, for analyzing energy consumption in residential urban environments. The model takes into account structural, social and micro-climate characteristics. It is written using Pharo and here is a video session:
First I would like thank you. And I would like to show you that your membership in the Pharo association is really
helping Pharo. We are creating a precise report but the main message is the same.
You concretely help Pharo.
First, we would like to really thank you for your support because as you will see it is important. Your contributions are making an impact.
Until now, the association did not make visible how was spent the money from your membership. It’s time to fix this.
In the first place, the support we got from last year enable the creation of monthly activities helping with the development of Pharo. The association is now the support for the following ones:
Sprint organisations: Every month sprints to correct Pharo bugs are organised. You can join remotely or organise one at your location
TechTalks: Every month a technical talk is been done to give visibility on Pharo process and Pharo projects and interact with the community to get feedback
Next, your association contributions are securing vital Pharo infrastructures. It pays:
The domains such as pharo.org.
The hosting files.pharo.org: This year we moved out of Inria infrastructure because we could not identify the cause of a huge network latency. It got resolved – it was a fiber which was in bad condition but not cut. This was fixed at the level of Renater national back-bone layer, but we decided to stay outside. We plan to migrate to a better service.
The wild apricot software which manages the association. It will enable us to do more with the association. (40$/month)
If you want to migrate projects from SmalltalkHub (or any MCZ-based repo) to GitHub to profit from new git integration in Pharo then use Peters "git-migration" tool.
The tool is now using the Tonel format to store the code. Tonel is a file-per-class format, that means a class and all methods are stored in a single file. This is faster than having a file for each method but also prevents some trouble with git on Windows due to number of files and subdirectory depth.
by Torsten (firstname.lastname@example.org) at August 30, 2018 06:55 AM