Monthly Archives: October 2022

[Ann] Bloc v1.0

Hi all 

At ESUG and after about a year of development, the Pharo consortium was happy to announce 
a first version of the Bloc graphics framework as available in

https://github.com/pharo-graphics/bloc

Here is the video of the ESUG presentation 

We are now opening the internal mailing-list and feel free to join. 
We will be soon describing the roadmap for the next 6 months. 

https://sympa.inria.fr/sympa/info/lse-openbloc

S

[Bloc Update]: harfbuzz

Since last week, in summary:

– We had the meeting to discuss the roadmap for next 6 months. Basically, will work low-level and more on widgets. I still have a couple of emails pending to write after this meeting.

– I’m scheduling with Alain a call to sync on widgets

– Harfbuzz and Freetype: I added some FFI calls and tests. Browsed Pango C code to check how they use it.

– Fixed two bugs on the fonts scanner. It was reading by duplicate fonts, and 

– Coded and debugged with Pablo

– Attacked broken CI (more below)

– Windows and Linux: check loading error since Harfbuzz (more below)

– Refactoring in Alexandrie (still to commit)

– More details –

Loading on Windows and Linux:

There was an error in Windows and Linux. 

Problem: Need to have harfbuzz library + In our Pharo bindings we used a handy function that was implemented in version 2.8.2.

Solution: updating the vm libraries. For the moment, I did it manually.

– For ubuntu, I was able to build the lib, with its dependencies (cairo, freetype, others).

– For windows, I failed to do the build… I installed MSYS2 and other required stuff that’s new to me. Then, I tried a different approach: to download the DLLs. There is a zip linked from the README of Spec-GTK. This zip comes with DLLs that correspond to gtk+3. But version was too old (1.7.4). Finally, I discovered that the releases of harfbuzz in the official github repo provide a zip that comes with all dependencies (cairo, freetype), and these DLLs are updated and make our bindings work on windows.

So! all this worked on my machine (TM), but now needed to make it available for everybody and have a green CI… this leads to next title…

Fixing the CI: 

– On ubuntu: The harfbuzz lib is 2.6.4 and we need >= 2.8.2. So the CI would need to download the harfbuzz code and build the lib… that sounded too complex, so I tried another option to run the Github Actions:

– On windows: I tried to download the zip with updated libs, as I did in my computer… but it wasn’t as simple as I thought. 

This lead to next topic…

Release pharo VMs with updated libs:

Anyway, it is necessary to release new pharo-vms for all platforms, with updated graphic libs, because:

– Cairo and SDL2 improve speed

– Freetype supports color emojis

– Windows, Linux and Mac: each pharo-VM comes with different versions

On Friday, we worked on this with Pablo. We created a new VM for Mac — only using it locally for testing it. In effect, there is a strange error only with the emoji example. We were debugging it today and will continue tomorrow. Still pending to do it for windows and Linux.

Martín

[Ann] BytePairEncoding for Pharo

Just to announce a first implementation of BytePairEncoding (a king of subword identification and text compression for Pharo). More precisely: it is a Subword-based tokenization algorithm.

https://github.com/Ducasse/BytePairEncoder/

Stef

This week (42/2022) on the Pharo Issue Tracker

This week (42/2022) on the Pharo Issue Tracker

We merged 9 PRs this week

Features
=======

– Add a shortcut to extract method refactoring #11814
https://github.com/pharo-project/pharo/pull/11814

Fixes
=====

– Fix : missing isScripting method in LessonView #11815
https://github.com/pharo-project/pharo/pull/11815

– Update comment to reflect refactoring actions #11778
https://github.com/pharo-project/pharo/pull/11778

– CI: when getting pharo version/prefix on PR, do not use –first-parent #11780
https://github.com/pharo-project/pharo/pull/11780

– Pharo11: 6191 find between substrings freezes the image #11771
https://github.com/pharo-project/pharo/pull/11771

Cleanups
========

– 11792-FFIConstantHandleTest-calls-deprecated-method-FFIExternalReferencehandle #11793
https://github.com/pharo-project/pharo/pull/11793

– moved the condition creation from the calypso package to the breakpoint #11807
https://github.com/pharo-project/pharo/pull/11807

Tests
=====

– This adds an example and a test for Fluid Slot definitions #11786
https://github.com/pharo-project/pharo/pull/11786


Pharo10
=======

– Pharo10: CI: when getting pharo version/prefix on PR, do not use –first-parent #11785
https://github.com/pharo-project/pharo/pull/11785

Sponsoring a new cool mooc

Since more than a year we have been working on a new mooc called: “Advanced Object-oriented Design and Development”

About this new mooc

We think that it will be quite good. We are bullet proofing it with a new lecture here at Lille. It will not focus on Pharo but on object-oriented design, tests, design patterns. 

It will present

  • Test and test-driven 
  • Essential aspects of OOP 
  • Basic and universal principles 
  • Double dispatch 
  • Case studies in Pharo
  • Some design patterns 
  • Some coding idioms

and we will composed of 8 modules

Currently it has around 50 lectures and we expect around 60 + exercises. You can access some drafts of the support here: https://rmod-files.lille.inria.fr/?dir=DesignCoffeeClub

The production cost of this mooc is around 200 K Euros financed by Inria and it will be filmed in January. We hope to deploy it in April or May 2023. The mooc will be produced in english (and may be dub in french). 

It occurred to me in this difficult time to find good developers that some of you may want to sponsor this mooc to get exposure.

You can be associated with some of the best OO teachers: me, Guillermo Polito and Pablo Tesone. We have together more than 40 years of teaching experience. Several books on OO design. Yes at the end of the day we should sale a bit our expertise – check below our track record with the previous mooc. 

As sponsor

As a sponsor you will get your logo and links on all the supports: Slides and videos. Note that this mooc is designated to have a live time of 10 years or more. It is teaching fundamental points of OOP but also advanced points. Note that there are no other lectures like this one.

So this is a unique opportunity to market your company to people wanted to learn advanced OOP 

We have two levels of sponsoring:

  • 2000 Euros for platinum sponsor
  • 1000 Euros for plain sponsor

Let us know if you want. Contact me at stephane.ducasse@inria.fr

About the previous mooc

Just a little reminder of the previous Mooc on Pharo. It has more than 8 years. 

For the record, some youtube videos (that we published after 4 years of running the pharo mooc) got more than 6000 views and this is by developers. We got around 10000 followers not counting the people watching the mooc on youtube and here are some of the testimonies we collected over the years.

J’ai trouvé ça très intéressant, beaucoup plus que prévu ! je regrette de ne pas m’y être mis plus tôt. J’ai enfin l’impression de vraiment faire de la POO ! Ou à l’inverse je me rend que je n’en faisais pas vraiment… – Anonymous, 2019

I have just completed week seven of the Pharo Mooc (beginner and object oriented tracks) I am starting a redo of the Mooc with the web track (TinyBlog project). I have already learned so much ! I have spent the last 20 years or so in software development and, following this Mooc, I realized I hadn’t really grasped the essence of object oriented design. – Anonymous 

« Really one of the best mooc I have ever attended. And I have attended quite a few (openSAP, openHPI). As an old fashioned ABAP developer I want to be reborn as Pharo developer in my next life 🙂 » – Anonymous

Hi! I finished the MOOC some weeks ago and I would like to congratulate everybody involved! After a decade+ of Python programming I think I found my new favorite language :). I’m making a small Teapot server for Slack command bots, I’m goona push it to Github (yay Iceberg), if anyone is interested. – EduardoPadoan

I just completed the @pharoproject Mooc the best investment I have ever made of my time. MAQBOOL 

Hey all – I’ve just finished the Mooc – thanks for an excellent course and a thouroughly interesting look at a new way to program 🙂 Looking forward to starting to play with Pharo on some upcoming ideas I’ve had. – Tieryn

As much as I thought I understand object-orientation, it is very clear NOW that without a truly useable Smalltalk, which Pharo is, it is impossible to really understand and exercise object-orientation. Thank you all soooo much. – Mike D. 06/12/2020

I finished the Pharo MOOC a few days ago. Thank you very much to Damien, Stephane, and Luc for their work on the material! I enjoyed it very much – Anonymous

Hey all – I’ve just finished the Mooc – thanks for an excellent course and a thouroughly interesting look at a new way to program 🙂 Looking forward to starting to play with Pharo on some upcoming ideas I’ve had 👌3 – Anonymous

I already had previous Smalltalk experience, but yes, I’m extremely happy Chapter 7 has been extremely fulfilling – Anonymous

A general comment I wanted to make is that the MOOC so far has been great. Impressed with the quality and content, and grateful that it is available and free. Many thanks! – Aryeh

IMHO the videos were very well done. I would even say shockingly well done… for a bunch of programmers who are supposed to be clueless about design – SeanDeNigris – 10/26/2017

The more I learning about @pharoproject the more I appreciate it’s beauty and simplicity, finally, object-oriented programming is done right – MAQBOOL

Mooc absolument remarquable. Superbe voyage autour de Pharo. Le paradigme objet qui (re)prend enfin du sens ! – Anonymous – 01/03/2019