Pharo-users
By thread
pharo-users@lists.pharo.org
By month
Messages by month
- ----- 2026 -----
- 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
December 2023
- 11 participants
- 18 messages
Re: [Pharo-dev] [ANN] success story: ApptiveGrid
by Norbert Hartl
Thanks to all of you for the nice comments.
I wish you, pharo and the community all the best for 2024. In 2024 there will be a soil release that I promised for this year but I didnât make it.
Norbert
> Am 14.12.2023 um 15:19 schrieb Sven Van Caekenberghe <sven(a)stfx.eu>:
>
> Yes, this is a really nice project, the front end as well.
>
> It reminds me a bit of FileMaker, but for the web.
>
> I am hoping you have commercial success with ApptiveGrid !
>
>> On 12 Dec 2023, at 13:02, Norbert Hartl <norbert(a)hartl.name> wrote:
>>
>> I wanted to write this for a very long time nowâ¦so finallyâ¦Iâm very proud to announce a new success story: ApptiveGrid
>>
>> ApptiveGrid is a SaaS tool to digitalize and automatize business processes.
>>
>> On the one hand ApptiveGrid is visual database that enables you to model your database via web frontend. At the same time this model is available via REST API.
>>
>> <BildschirmÂfoto 2023-12-12 um 12.39.29.png>
>>
>> On top of the data model a form creator turns your model into a form that you can send e.g. via email to inquire data from other peopleâ¦
>>
>> <BildschirmÂfoto 2023-12-12 um 12.40.48.png>
>>
>> On the other hand ApptiveGrid is a workflow system where you can define your work flow in the web frontend and connect to events. These events are either internal (resulting from a change in your data model) or external where you can use web hooks to kick of work flows.
>>
>> <BildschirmÂfoto 2023-12-12 um 12.44.10.png>
>>
>> With the combination of both parts ApptiveGrid is able to solve many of modern digital workflows. It enables to make it for low cost and in almost no time which are two pretty good reasons to use it. If you want to use it just visit: http://www.apptivegrid.de. ApptiveGrid provides a start plan at no cost where most of the functionalities are available. If you have additional needs just write me. For the people in the pharo community Iâm sure we can provide a bit more on top.
>>
>> About the tech stack:
>>
>> - The business backend of ApptiveGrid is 100% pharo
>> - It uses https://github.com/svenvc/zinc components for the HTTP frontend
>> - and https://github.com/ApptiveGrid/Soil as the persistence solution.
>> - Each user has its own database (an empty soil database is 24kb on disk, could be made even approx. 5kb). There are over 3100 databases in the system right now
>> - one pharo image holds multiple soil databases open and provides memory caching for the objects
>> - routing of requests is done with haproxy connection persistence
>> - the web frontend is made with Vue.js and a pharo library that we transpile to JS with PharoJS
>>
>> If you are interested you can also watch my ESUG videos at https://www.youtube.com/@esugboard. All talks in the last 2 years were about ApptiveGrid
>>
>> If you have question, donât hesitate to ask, Iâm happy to answer!
>>
>> Norbert
>>
Dec. 29, 2023
Re: Smallscript - A Smalltalk-Inspired Scripting Language
by Richard O'Keefe
Does anyone else remember F-Script? A "Smalltalk-inspired scripting
language" for MacOS X,
providing full interoperation with Objective C and the whole Cocoa
frameworks system.
The last update was 5 years ago, which is a pity, because
1. It was so well integrated with MacOS X (as it was then) that it
needs rebuilding wih each macOS release.
2. It was so well integrated with MacOS X that it was restricted to
MacOS X; there wasn't anything to port to Windows or Unix.
3. It was Smalltalk - *inspired* but not Smalltalk, so there was no
flow of ideas or code between Smalltalk and F-Script.
For example, there never was an SUnit for F-Script.
Does anyone else remember Susie? (Scripting using a Smalltalk
Interpreter engine.) I've been meaning to fix the problem with a
64-bit build but wondering who to tell. It seems as if reviving Susie
or GST ought to pay off more sooner than starting from scratch.
If you want a "class-less" language inspired by Smalltalk with
minimalist syntax, you really MUST look at Self.
I used to use XLisp/Stat a lot, and while I loved it, I can't say that
not having classes struck me as a strength.
Curly braces trace back to BCPL -- which I once set out to write a
compiler for. They were and are a bad idea.
If you want a scripting language inspired by JavaScript, with braces
and sans classes,
may I suggest JavaScript? It satisfies 8 out of your criteria
out-of-the-box, and node.js with a vast library of stuff to script
with, including testing frameworks, already exists. I'm not sure if
it satisfies criterion 6 or not, but then I'm not sure what criterion
6 means or why you would care.
There are programming languages I dislike *as* languages but use for
the sake of the libraries they give me access to,
S, for example, ticks quite a few of your boxes. As a language, it's
pretty awful. (In large part *because* it ticks those boxes.)
BUT the packages! Oh gosh, the *packages* !
All the work I don't have to do! All the work I *COULDN'T* have done!
So, one approach is to build your new teenage mutant ninja scripting
language on top of something like node.js. Go nuts with your syntax,
but make the data structures fully JavaScript-compatible so that you
can use existing npm packages from your language.
I wish GNU Smalltalk were still maintained. One day I must try to
figure out why printing floats crashes.
On Sat, 2 Dec 2023 at 00:11, Craig Johnson <craig(a)hivemind.net> wrote:
>
> for those who are interested.
>
> https://www.codeproject.com/Articles/5373567/Smallscript-A-Smalltalk-Inspir…
>
Dec. 28, 2023
Re: Smallscript - A Smalltalk-Inspired Scripting Language
by Offray Vladimir Luna Cárdenas
On 1/12/23 6:11, Craig Johnson wrote:
> for those who are interested.
>
> https://www.codeproject.com/Articles/5373567/Smallscript-A-Smalltalk-Inspir…
>
>
Thanks. It looks interesting indeed. So much that, what was a short
answer became a long reflection on minimal environments that provide
support for diverse learners (beyond developers or computer scientists)
via data storytelling and computational notebook. Here it comes.
======
I have been using Nim integrated with Pharo/GT when I need go to the
console, performance optimizations or use a library/functionality not
yet in Pharo, and I would like a better shell and external programs
story in Pharo/GT (I know the second is build on the first, despite
having different agendas, but that's the combination I use and for me,
GT's power provides from being done in Pharo).
I would like something fast and self contained / portable that can be
run from the terminal, but it is also able bootstrap a more complex
environment and GUI as needs require it, as I'm interested in data
storytelling for diverse learners (mainly non-developers) and
computational notebooks, that run in restricted/bureaucratic
institutional environments with low/restricted/intermittent connectivity
(for example university labs).
I will compare what is available AFAIK in the Pharo ecosystem, with what
I have found recently Pluto.jl[1][1a] (and others), which brings this
kind of bootstrappable computational notebook experience, thinking in
how Pharoers, could benefit from a bootstrapable experience from shell
at the end.
1. Pluto can run from a portable program that doesn't require admin
permission to install: just uncompress and run (like Pharo).
2. Pluto provides an interactive programming Julia shell where you can
load more packages and launch the WUI (Web UI). In Pharo's case, there
are Coral[2] and Scale[2a], with the second pretty close to a shell +
loadable graphical interface, but both seem unmaintained.
3. Pluto provides an interactive notebook interface (like GT), but it is
reactive, non-blocking and stores a computational graph of related
variables/expressions.
4. Pluto stores its notebooks as human/diff friendly plain text and, in
fact, they're just Julia scripts[3] (like Clojure's Clerk[3a][3b]). As I
told in ESUG 2023, we have been porting some lessons from Grafoscopio to
Lepiter about having human/diff friendly formats to store computational
notebooks using Markdeep[4], which is similar to the approach taken by
Elixir's LiveBook[3c]. See for example this documents, and their source
code, on building modular parsers with PetitParser[4a] (ported from the
chapter in Pharo books) or on migrating from WordPress to
TiddlyWiki[4b]. Such formats are in contrast with long nested diff/human
unfriendly JSON documents of Jupyter or Lepiter, and pretty readable
outside Pluto, Clerk, LiveBook or Lepiter, just with a plain text editor
or a web browser (in Markdeep's case).
So, how could we to have a pretty minimal Smalltalk/Pharo powered shell
language/mini-image that can execute .st scripts (like with Coral and
Scale) and launch a notebook, being it native (like Lepiter, with its
wonderful one single rendering tree, but more minimalist and with async
snippets/code execution by default) or web UI (still to be created,
maybe with HTMX)? My approach, for the moment, is to develop MiniDocs[4]
to provide support for minimalist documentation tools (starting with
Markdeep and some Pandoc support) and some notebook web rendering (via
Zinc) and export. Pandoc's Markdown export with metadata to make
notebooks collaborative (as we are doing with Markdeep) is yet to be
done (but soon in the radar). Also Brea[5] will be (slowly) used/revied
to explore building web sites/interfaces (now that HTMX is available to
avoid JS)
Still, the question of how minimal Pharo or GT can be made to run from
shell or integrate with external software ecosystems is an open question
for me. Seems that the best approach would be to revive Scale (or Coral)
and to see which minimal elements of a computational notebook experience
can be bootstrapped from there and which lessons from more (b)loaded
environments can we port to such minimal systems, while still interop
with the wider Pharo ecosystem or even with other languages (like Nim or
Julia). Maybe PharoIoT or other minimalist images could be a starting
point also (but pharoiot.org seems also unmaintained).
I'll keep the community posted on the experiments sketched above.
Cheers, happy new year and thanks for the Pharo community, ecosystem and
all the hard work and good vibe behind.
Offray
== Links
[1] https://plutojl.org/
[1a] https://www.youtube.com/watch?v=Rg3r3gG4nQo
[2] https://speakerdeck.com/cdlm/coral-esug-2011?slide=2
[2a] https://github.com/guillep/Scale
[3] https://featured.plutojl.org/
[3a] https://clerk.vision/
[3b] https://book.clerk.vision/
[3c] https://livebook.dev/
[4] https://code.sustrato.red/Offray/MiniDocs/
[4a]
http://mutabit.com/repos.fossil/mutabit/doc/trunk/wiki/en/petitparser-build…
[4b]
https://mutabit.com/repos.fossil/gig/doc/trunk/wiki/en/gig-portable-wiki--1…
[5] https://code.sustrato.red/Offray/Brea
[5a] https://mutabit.com/repos.fossil/indieweb/
[5b] https://mutabit.com/repos.fossil/brea/
Dec. 27, 2023
PhD on Pharo completion with machine learning
by stephane ducasse
Code completion for large projects and small languages
https://recrutement.inria.fr/public/classic/fr/offres/2023-07003
S
--------------------------------------------
Stéphane Ducasse
http://stephane.ducasse.free.fr / http://www.pharo.org
03 59 35 87 52
Assistant: Aurore Dalle
FAX 03 59 57 78 50
TEL 03 59 35 86 16
S. Ducasse - Inria
40, avenue Halley,
Parc Scientifique de la Haute Borne, Bât.A, Park Plaza
Villeneuve d'Ascq 59650
France
Dec. 22, 2023
This week (50/2023) on the Pharo Issue Tracker
by Marcus Denker
# Pharo 11
- 15769-Backport-15767--Pharo11-Fix-hasSameDefinitionAs-for-IndexedSlot #15785
https://github.com/pharo-project/pharo/pull/15785
- 15096-Backport-Pharo11-AdditionalMethodState-do-not-copy-the-AssociationsPragmas-when-growing-or-shrinking-15090 #15786
https://github.com/pharo-project/pharo/pull/15786
# Fixes
- Position temp definition before first occurrence of extracted expression, and always in outer scope (fixes #14611) #15781
https://github.com/pharo-project/pharo/pull/15781
- Allow using ProfilerPresenter on code blocks #15772
https://github.com/pharo-project/pharo/pull/15772
- (Re)Moved Profile It command #1491
https://github.com/pharo-spec/Spec/pull/1491
- Fixed SubscriptionRegistry inspection freezing image #644
https://github.com/pharo-spec/NewTools/pull/644
# Rendering / Fonts
- Make FreeTypeFont reuse instances #15756
https://github.com/pharo-project/pharo/pull/15756
- Fix #removeAllForFont: and #removeAllForType: on FreeTypeCache to support different scales #15752
https://github.com/pharo-project/pharo/pull/15752
# Spec
- Add a Spec component list example #1488
https://github.com/pharo-spec/Spec/pull/1488
- Make sure that the first item is selected when opening a select dial⦠#1489
https://github.com/pharo-spec/Spec/pull/1489
# Refactoring Engine
- RBCondition directlydefines -> RBDirectlyDefines #15755
https://github.com/pharo-project/pharo/pull/15755
- New Refactoring Driver for Renaming Shared Variables #15774
https://github.com/pharo-project/pharo/pull/15774
# ClassBuilder / Installer
- ShiftClassInstaller: remove unused ivar #15748
https://github.com/pharo-project/pharo/pull/15748
- ClassBuilder: cleanups and #hasSameDefinitionAs: #15747
https://github.com/pharo-project/pharo/pull/15747
- 15758-duplicateClassWithNewName-leads-to-wrong-packageTag #15760
https://github.com/pharo-project/pharo/pull/15760
- ClassInstaller: clients can use #update:to: instead of #fillFor: #15765
https://github.com/pharo-project/pharo/pull/15765
- Try the ShAbstractClassChangeDetector new compare implementation #15776
https://github.com/pharo-project/pharo/pull/15776
- some small cleanups related to ClassBuilder / ClassVariables #15784
https://github.com/pharo-project/pharo/pull/15784
- ClassFactoryForTestCase #update:to: #15787
https://github.com/pharo-project/pharo/pull/15787
- Cleanup: old instance migration code (from before Shift) #15789
https://github.com/pharo-project/pharo/pull/15789
# Variables
- Move-Slot-Exceptions #15743
https://github.com/pharo-project/pharo/pull/15743
- Remove the empty package Slot-Core #15757
https://github.com/pharo-project/pharo/pull/15757
- Fix: #hasSameDefinitionAs: for IndexedSlot #15767
https://github.com/pharo-project/pharo/pull/15767
- deprecate #anyUserOfClassVarNamed: #15788
https://github.com/pharo-project/pharo/pull/15788
# Fluid
- Ring:â¯Use Fluid syntax for definition string #15763
https://github.com/pharo-project/pharo/pull/15763
- Ring: Migrate traits definition to fluid class syntax #15766
https://github.com/pharo-project/pharo/pull/15766
- 8055-RGClassStrategy-is-the-last-caller-of-definitionWithSlots #15775
https://github.com/pharo-project/pharo/pull/15775
# Tools
- Remove change sorter #645
https://github.com/pharo-spec/NewTools/pull/645
- Creates Scopes Editor #585
https://github.com/pharo-spec/NewTools/pull/585
- 248-Definition-pane-on-class-inspector-should-let-the-user-edit-the-text-and-the-context-should-be-the-class- #636
https://github.com/pharo-spec/NewTools/pull/636
- Meta inspector tab unselection makes codepane nil #641
https://github.com/pharo-spec/NewTools/pull/641
# Cleanup
- Remove not loaded packages #15793
https://github.com/pharo-project/pharo/pull/15793
- Reduce users of ChangeSet #15791
https://github.com/pharo-project/pharo/pull/15791
- Cleanup: setSourcePointer: vs sourcePointer #15762
https://github.com/pharo-project/pharo/pull/15762
- Repackage layout definitions symbols #15764
https://github.com/pharo-project/pharo/pull/15764
Dec. 18, 2023
Re: [Pharo-dev] [ANN] success story: ApptiveGrid
by Noury Bouraqadi
That's one cool success story. Kudos!
Noury
On Dec 12 2023, at 1:02 pm, Norbert Hartl <norbert(a)hartl.name> wrote:
> I wanted to write this for a very long time nowâ¦so finallyâ¦Iâm very proud to announce a new success story: ApptiveGrid
>
> ApptiveGrid is a SaaS tool to digitalize and automatize business processes.
> On the one hand ApptiveGrid is visual database that enables you to model your database via web frontend. At the same time this model is available via REST API.
>
>
> On top of the data model a form creator turns your model into a form that you can send e.g. via email to inquire data from other peopleâ¦
>
>
> On the other hand ApptiveGrid is a workflow system where you can define your work flow in the web frontend and connect to events. These events are either internal (resulting from a change in your data model) or external where you can use web hooks to kick of work flows.
>
>
> With the combination of both parts ApptiveGrid is able to solve many of modern digital workflows. It enables to make it for low cost and in almost no time which are two pretty good reasons to use it. If you want to use it just visit: http://www.apptivegrid.de. ApptiveGrid provides a start plan at no cost where most of the functionalities are available. If you have additional needs just write me. For the people in the pharo community Iâm sure we can provide a bit more on top.
> About the tech stack:
> - The business backend of ApptiveGrid is 100% pharo
> - It uses https://github.com/svenvc/zinc components for the HTTP frontend
> - and https://github.com/ApptiveGrid/Soil as the persistence solution.
> - Each user has its own database (an empty soil database is 24kb on disk, could be made even approx. 5kb). There are over 3100 databases in the system right now
> - one pharo image holds multiple soil databases open and provides memory caching for the objects
> - routing of requests is done with haproxy connection persistence
> - the web frontend is made with Vue.js and a pharo library that we transpile to JS with PharoJS
>
> If you are interested you can also watch my ESUG videos at https://www.youtube.com/@esugboard. All talks in the last 2 years were about ApptiveGrid
> If you have question, donât hesitate to ask, Iâm happy to answer!
> Norbert
Dec. 14, 2023
[ANN] success story: ApptiveGrid
by Norbert Hartl
I wanted to write this for a very long time nowâ¦so finallyâ¦Iâm very proud to announce a new success story: ApptiveGrid
ApptiveGrid is a SaaS tool to digitalize and automatize business processes.
On the one hand ApptiveGrid is visual database that enables you to model your database via web frontend. At the same time this model is available via REST API.
On top of the data model a form creator turns your model into a form that you can send e.g. via email to inquire data from other peopleâ¦
On the other hand ApptiveGrid is a workflow system where you can define your work flow in the web frontend and connect to events. These events are either internal (resulting from a change in your data model) or external where you can use web hooks to kick of work flows.
With the combination of both parts ApptiveGrid is able to solve many of modern digital workflows. It enables to make it for low cost and in almost no time which are two pretty good reasons to use it. If you want to use it just visit: http://www.apptivegrid.de. ApptiveGrid provides a start plan at no cost where most of the functionalities are available. If you have additional needs just write me. For the people in the pharo community Iâm sure we can provide a bit more on top.
About the tech stack:
- The business backend of ApptiveGrid is 100% pharo
- It uses https://github.com/svenvc/zinc components for the HTTP frontend
- and https://github.com/ApptiveGrid/Soil as the persistence solution.
- Each user has its own database (an empty soil database is 24kb on disk, could be made even approx. 5kb). There are over 3100 databases in the system right now
- one pharo image holds multiple soil databases open and provides memory caching for the objects
- routing of requests is done with haproxy connection persistence
- the web frontend is made with Vue.js and a pharo library that we transpile to JS with PharoJS
If you are interested you can also watch my ESUG videos at https://www.youtube.com/@esugboard. All talks in the last 2 years were about ApptiveGrid
If you have question, donât hesitate to ask, Iâm happy to answer!
Norbert
Dec. 12, 2023
This week (49/2023) on the Pharo Issue Tracker
by Marcus Denker
# Features
- Add class comment as tooltip in Calypso. #15660
https://github.com/pharo-project/pharo/pull/15660
- Add file out for Epicea entries #15644
https://github.com/pharo-project/pharo/pull/15644
- Debugger: Integrating assertion rewriting (2nd attempt) #626
https://github.com/pharo-spec/NewTools/pull/626
# Fixes
- Prevent font chooser open error listing #638
https://github.com/pharo-spec/NewTools/pull/638
- Preventing "Run to" debugger command from raising update events, in order to prevent unnecessary (and broken) updates #642
https://github.com/pharo-spec/NewTools/pull/642
- Traits: Fix wrong source pointer (v2) #15741
https://github.com/pharo-project/pharo/pull/15741
- Fix: Syntax highlight of inst vars in inspector eval pane #15723
https://github.com/pharo-project/pharo/pull/15723
- Calypso: Do not crash if a baseline is wrongly defined #15711
https://github.com/pharo-project/pharo/pull/15711
- Fix ephemeron support in Fuel #15670
https://github.com/pharo-project/pharo/pull/15670
- Change to size_t for ffi calls that currently use ulong for pointers. #15696
https://github.com/pharo-project/pharo/pull/15696
- Fix a ZeroDivide exception when scroll target is 0 calculating scroll deltas #15702
https://github.com/pharo-project/pharo/pull/15702
- Fix/baseline repo #15629
https://github.com/pharo-project/pharo/pull/15629
# Rendering / Graphics
- Rework #nonCachingFullDrawOn: on HandMorph to use a matching ScalingCanvas for the shadow form #15736
https://github.com/pharo-project/pharo/pull/15736
- Add #drawFormSet:at: and #translucentFormSet:at: to AthensCanvasWrapper #15735
https://github.com/pharo-project/pharo/pull/15735
- Add ScalingCanvas and #canvasScaleFactor for OSWorldRenderer #15647
https://github.com/pharo-project/pharo/pull/15647
- Add initialization of ScalingCanvas to BaselineOfMorphic #15672
https://github.com/pharo-project/pharo/pull/15672
- Fix #checkForNewScreenSize on OSWorldRenderer to also check the #actualScreenSize #15673
https://github.com/pharo-project/pharo/pull/15673
- Make MorphTreeNodeMorph and IndentingListItemMorph use a FormSet for the expand/collapse toggle #15676
https://github.com/pharo-project/pharo/pull/15676
- Refactor IconicButtonMorph to support use of a FormSet #15680
https://github.com/pharo-project/pharo/pull/15680
# Refactoring Engine
- Tests and enhancements for RenameInstanceVariableDriver #15703
https://github.com/pharo-project/pharo/pull/15703
- Refactor: extract method third pass #15693
https://github.com/pharo-project/pharo/pull/15693
- New Refactoring Driver to rename variables #15617
https://github.com/pharo-project/pharo/pull/15617
- Cleanup/extract method first pass #15674
https://github.com/pharo-project/pharo/pull/15674
- Test: removal of non-empty class with subclasses #15671
https://github.com/pharo-project/pharo/pull/15671
- Refactor: extract method transformation cleanup #15675
https://github.com/pharo-project/pharo/pull/15675
- Enhance driver #15679
https://github.com/pharo-project/pharo/pull/15679
# Variables
- 15665-Not-possible-to-edit-slots-when-using-new-definition-format--RBLiteralValueNode-DNU-name #15667
https://github.com/pharo-project/pharo/pull/15667
- Do not use #classVarNamed: / #classVarNamed:put: #15685
https://github.com/pharo-project/pharo/pull/15685
- refactor more #classPool users #15710
https://github.com/pharo-project/pharo/pull/15710
- rewrite #anyUserOfClassVarNamed: using the Variable API #15717
https://github.com/pharo-project/pharo/pull/15717
- Cleanup: move extension methods Slot package to where the classes are #15742
https://github.com/pharo-project/pharo/pull/15742
# Compiler / Compilation / CompiledMethods
- 15697-Playground-need-to-color-not-yet-created-bindings-red #15698
https://github.com/pharo-project/pharo/pull/15698
- move error handling from CompiledMethod to CompiledCode and rename #15651
https://github.com/pharo-project/pharo/pull/15651
- 15640-Objectclone-has-code-for-CompiledCode #15648
https://github.com/pharo-project/pharo/pull/15648
- 15126-IRSequencenotEmpty-should-be-isNotEmpty #15714
https://github.com/pharo-project/pharo/pull/15714
- deprecate #noPattern and noPattern: #15715
https://github.com/pharo-project/pharo/pull/15715
- 6470-Improve-the-class-comment-of-RBScanner #15716
https://github.com/pharo-project/pharo/pull/15716
- 15596-Cleanup-respondsTo-check-for-doItReceiver #15712
https://github.com/pharo-project/pharo/pull/15712
- cleanup #doitReceiver check #1485
https://github.com/pharo-spec/Spec/pull/1485
# Class Builder / Class Installer
- Merge package Shift-Changes into the main Shift-ClassBuilder package #15663
https://github.com/pharo-project/pharo/pull/15663
- check if we can have WeakLayout as a subclass of VariableLayout #15658
https://github.com/pharo-project/pharo/pull/15658
- reduce the senders of #asSlotCollection #15659
https://github.com/pharo-project/pharo/pull/15659
- do not use #slotsFromString: / sharedVariablesFromString: #15654
https://github.com/pharo-project/pharo/pull/15654
- Small cleanup ClassInstaller #15686
https://github.com/pharo-project/pharo/pull/15686
- ClassBuilder: remove Ficus from Shift baseline #15690
https://github.com/pharo-project/pharo/pull/15690
- Classbuilder: rewrite users of #sharedPools: with string arguments #15695
https://github.com/pharo-project/pharo/pull/15695
- use sharedPoolsFromString: in old style class defs and Hermes #15706
https://github.com/pharo-project/pharo/pull/15706
- Deprecate old API for traits #15713
https://github.com/pharo-project/pharo/pull/15713
- simplify and comment #sharedVariablesFromString #15692
https://github.com/pharo-project/pharo/pull/15692
- move ClassInstaller into the Builder package #15727
https://github.com/pharo-project/pharo/pull/15727
- ClassInstaller: use the oldClass of the builder #15739
https://github.com/pharo-project/pharo/pull/15739
# Bootstrap / Full Image Load
- Introduce Kernel-CodeModel package #15583
https://github.com/pharo-project/pharo/pull/15583
- Update BaselineOfPharoBootstrapProcess.class.st #15691
https://github.com/pharo-project/pharo/pull/15691
- Extract ClassDefinitionPrinters from the Kernel #15656
https://github.com/pharo-project/pharo/pull/15656
# CI/Tests
- No rule check for non-existing super implementor (Second PR) #15705
https://github.com/pharo-project/pharo/pull/15705
- Better name for testNoSentButNotImplementedSelectors #15720
https://github.com/pharo-project/pharo/pull/15720
- ReSuperSendsNewRule has a typo in description (#initiailize -> #initi⦠#15725
https://github.com/pharo-project/pharo/pull/15725
# Cleanup
- Remove ChangeSorter from loading #634
https://github.com/pharo-spec/NewTools/pull/634
- Harvested and improved some changes proposed in a PR that was also re⦠#15745
https://github.com/pharo-project/pharo/pull/15745
- Startup preferences shoud not be in morphic baseline #15731
https://github.com/pharo-project/pharo/pull/15731
- Fix a deprecated send in testComparisonToSimilarQueryButWithDifferentTag #15661
https://github.com/pharo-project/pharo/pull/15661
- Merge package ParametrizedTests into SUnit #15662
https://github.com/pharo-project/pharo/pull/15662
Dec. 11, 2023
Re: How to open files in the underlying OS
by Rui Viana Pereira
@John: That solves the problem, in fact. Many thanks.
I'm a bit ashamed that I couldn't find such a simple solution.
But I'm happy, because now I can get back on track.
*Rui Viana Pereira*
John Aspinall <john.aspinall(a)gmail.com> escreveu no dia quarta, 6/12/2023
à (s) 16:13:
> Hi Rui - on my system (Windows 10, Pharo 11 with Pharo-OS-Windows package)
> both of the following work fine:
>
> WinShell shellOpen: 'd:\temp\test audio.mp3â.
>
> WinShell shellOpen: 'd:/temp/test audio.mp3â.
>
> Evaluating either one from a Playground opens the mp3 file with the
> registered app (VLC in this case).
>
> WinExplorer explore: does nothing when passed a filename, but with just a
> pathname (e.g. âd:/tempâ) opens a Windows Explorer on that path
>
> Hope this helps?
>
> John
>
>
>
> On 6 Dec 2023, at 15:56, Rui Viana Pereira <ruivianapereira(a)gmail.com>
> wrote:
>
> @Guillermo: Very useful remark, it made me review my code. First of all, I
> refactored it to assure the address is written correctly, that is, with a
> separator '\' instead of '/'. (I suppose there is a method to convert
> paths from Pharo to DOS, but I couldn't find it, so I reinvented the wheel.)
> Still, nothing happens.
>
> Then, I evaluated
> WinExplorer explore: 'D:\Sonoteca_sample\CRIANCAS\criancas_001.wav'
> putting the argument by hand. This is a file that exists and the argument
> worked well when introduced directly on the Win explorer search bar,
> without complaints from Windows. Still nothing happens, and the Inspector
> tells a WinHandle(@ 16r0000001F).
>
> Is the #explore: method the right one to use? (I mean, to open the file
> with the registered program in Windows).
>
> This is quite annoying, because apart from that the app is working well in
> Pharo, even if it needs some cleaning. But after a lot of weeks of work
> (I'm a beginner, I go very slowly in my spare time) I came to the
> conclusion that it was useless work, because I can't communicate with
> Windows shell, which is a very important part of my aims.
>
> [Side note:
> What I'm building is a very simple app, ment to organize and classify my
> field sound recordings. A kind of database for a sound library. It has only
> 2 classes: SoundRecording and SoundLibrary. And a few presenters.
> SoundLibrary holds <recordings> (aSet), <tags> (aSet) and <directory>
> (aFileReference, which allows the library folder to be movable). A
> SoundRecording holds a bunch of properties needed for professional
> information and editing on sound files, plus an <address> (a relative
> FileReference), which is the central piece for identifying each
> recording/file. There is some automatic methods, including a scanner to
> search for files in the library and automatically create SoundRecording
> objects from each file found. This is crucial, because by now I have
> thousands of recordings.
> Next step would be to do the same with my books/docs library, which also
> goes by thousands and is an awful amount of garbage - non organized,
> classified and cross referenced information is nothing more than garbage]
>
> *Rui Viana Pereira*
>
>
> Guillermo Polito <guillermopolito(a)gmail.com> escreveu no dia quarta,
> 6/12/2023 Ã (s) 08:23:
>
>> Hi Rui,
>>
>> Just a quick look at the Win32 error codes
>>
>>
>> https://learn.microsoft.com/en-us/windows/win32/debug/system-error-codes--0…
>>
>> It tells me that 16r00000002 means âFile not foundâ.
>> Are you sure that c:\pharo.pdf is there and that you have permission to
>> open it?
>>
>> G
>>
>> El 5 dic. 2023, a las 21:12, Rui Viana Pereira <ruivianapereira(a)gmail.com>
>> escribió:
>>
>> I'm building an app with Pharo 11.
>> The OS (for the moment) is Windows 10 home.
>> At a certain point I need to open several types of files (pdf, wav, url,
>> etc.) with the registered apps in Windows (or any other OS) and keep
>> working in Pharo, in parallel.
>> I couldn't find the way to do it - that is, to use the Windows shell.
>>
>> I loaded the Pharo-OS-Windows package, but when I evaluate something like
>> WinShell shellOpen: 'c:\pharo.pdf'
>> apparently nothing happens.
>> The inspector gives me
>> a WinHandle(@ 16r00000002)
>> Which is the right way to do it?
>> Rui Viana Pereira
>>
>>
>>
>
Dec. 6, 2023
Re: How to open files in the underlying OS
by John Aspinall
Hi Rui - on my system (Windows 10, Pharo 11 with Pharo-OS-Windows package) both of the following work fine:
WinShell shellOpen: 'd:\temp\test audio.mp3â.
WinShell shellOpen: 'd:/temp/test audio.mp3â.
Evaluating either one from a Playground opens the mp3 file with the registered app (VLC in this case).
WinExplorer explore: does nothing when passed a filename, but with just a pathname (e.g. âd:/tempâ) opens a Windows Explorer on that path
Hope this helps?
John
> On 6 Dec 2023, at 15:56, Rui Viana Pereira <ruivianapereira(a)gmail.com> wrote:
>
> @Guillermo: Very useful remark, it made me review my code. First of all, I refactored it to assure the address is written correctly, that is, with a separator '\' instead of '/'. (I suppose there is a method to convert paths from Pharo to DOS, but I couldn't find it, so I reinvented the wheel.)
> Still, nothing happens.
>
> Then, I evaluated
> WinExplorer explore: 'D:\Sonoteca_sample\CRIANCAS\criancas_001.wav'
> putting the argument by hand. This is a file that exists and the argument worked well when introduced directly on the Win explorer search bar, without complaints from Windows. Still nothing happens, and the Inspector tells a WinHandle(@ 16r0000001F).
>
> Is the #explore: method the right one to use? (I mean, to open the file with the registered program in Windows).
>
> This is quite annoying, because apart from that the app is working well in Pharo, even if it needs some cleaning. But after a lot of weeks of work (I'm a beginner, I go very slowly in my spare time) I came to the conclusion that it was useless work, because I can't communicate with Windows shell, which is a very important part of my aims.
>
> [Side note:
> What I'm building is a very simple app, ment to organize and classify my field sound recordings. A kind of database for a sound library. It has only 2 classes: SoundRecording and SoundLibrary. And a few presenters. SoundLibrary holds <recordings> (aSet), <tags> (aSet) and <directory> (aFileReference, which allows the library folder to be movable). A SoundRecording holds a bunch of properties needed for professional information and editing on sound files, plus an <address> (a relative FileReference), which is the central piece for identifying each recording/file. There is some automatic methods, including a scanner to search for files in the library and automatically create SoundRecording objects from each file found. This is crucial, because by now I have thousands of recordings.
> Next step would be to do the same with my books/docs library, which also goes by thousands and is an awful amount of garbage - non organized, classified and cross referenced information is nothing more than garbage]
>
> Rui Viana Pereira
>
>
> Guillermo Polito <guillermopolito(a)gmail.com <mailto:guillermopolito@gmail.com>> escreveu no dia quarta, 6/12/2023 Ã (s) 08:23:
> Hi Rui,
>
> Just a quick look at the Win32 error codes
>
> https://learn.microsoft.com/en-us/windows/win32/debug/system-error-codes--0… <https://learn.microsoft.com/en-us/windows/win32/debug/system-error-codes--0…>
>
> It tells me that 16r00000002 means âFile not foundâ.
> Are you sure that c:\pharo.pdf is there and that you have permission to open it?
>
> G
>
>> El 5 dic. 2023, a las 21:12, Rui Viana Pereira <ruivianapereira(a)gmail.com <mailto:ruivianapereira@gmail.com>> escribió:
>>
>> I'm building an app with Pharo 11.
>> The OS (for the moment) is Windows 10 home.
>> At a certain point I need to open several types of files (pdf, wav, url, etc.) with the registered apps in Windows (or any other OS) and keep working in Pharo, in parallel.
>> I couldn't find the way to do it - that is, to use the Windows shell.
>>
>> I loaded the Pharo-OS-Windows package, but when I evaluate something like
>> WinShell shellOpen: 'c:\pharo.pdf'
>> apparently nothing happens.
>> The inspector gives me
>> a WinHandle(@ 16r00000002)
>> Which is the right way to do it?
>> Rui Viana Pereira
>
Dec. 6, 2023