[Pharo-users] Re: Run old 32-Bit image on 64-Bit macOS
I had a similar issue and ended up installing an ubuntu VM under VMWare Fusion and running older versions of Pharo there. > On 3 Feb 2022, at 12:34 am, Steffen Märcker wrote: > > Hi, > I am looking for a way to run an old 32-Bit image on a modern Mac > (Montery). Pharo launcher gives me the following error: > > Cannot run Prism Grammar (Pharo 6.1)! > This image requires a 32-Bit VM to run and 32-Bit applications are not > supported on this Operating System. > > Is there a way to run it nevertheless? I want to extract some old app/code > from the image for further use. > > Best, Steffen
[Pharo-users] [ANN] When Pigeons Talk: The Evolution of Programming Education
I’d like to give a shout out to David Buck’s latest project: https://richardeng.medium.com/when-pigeons-talk-the-evolution-of-programming-education-6a12790ec5ea I think it’s a very worthy project and it deserves your support. By the way, he’s one of the four keynote speakers at Camp Smalltalk Supreme. Don’t forget to register your presentations before the mid-March deadline. Thanks, Richard
[Pharo-users] Re: Run old 32-Bit image on 64-Bit macOS
Hello, I'm sorry, you can't :( macOS transitioned to 64bit without backwards compatibility so is not possible to read a 32bit images there right now. The easiest solution is to run your image in a linux 32bit virtual machine and recover your code there. Esteban ps: Yes, other solutions are possible, but this is the easiest. On Feb 2 2022, at 2:34 pm, Steffen Märcker wrote: > Hi, > I am looking for a way to run an old 32-Bit image on a modern Mac > (Montery). Pharo launcher gives me the following error: > > Cannot run Prism Grammar (Pharo 6.1)! > This image requires a 32-Bit VM to run and 32-Bit applications are not > supported on this Operating System. > > Is there a way to run it nevertheless? I want to extract some old app/code > from the image for further use. > > Best, Steffen
[Pharo-users] Run old 32-Bit image on 64-Bit macOS
Hi, I am looking for a way to run an old 32-Bit image on a modern Mac (Montery). Pharo launcher gives me the following error: Cannot run Prism Grammar (Pharo 6.1)! This image requires a 32-Bit VM to run and 32-Bit applications are not supported on this Operating System. Is there a way to run it nevertheless? I want to extract some old app/code from the image for further use. Best, Steffen
[Pharo-users] mentor wanted for a web application
Hello, I like Pharo a lot and I like to make a web site with it for a volunteer organisation. For the web site I need a login system. And some products which can be "borrowed" by a client which has a subscription. We have also some volunteer in the "shop" where a client can also "borrow" some toys. So a client can "borrow" some toys in the "shop" and also on the internet. So I hope someone can and will be a mentor for me so we discuss the best way to make such a website. So which "framework" to use and which database to use and which classes I need Regards, Roelof
[Pharo-users] Re: What is "Fluid"?
> On 2 Feb 2022, at 09:04, contac...@kathe.in wrote: > > I have attached 2 cropped screen-captures of the same class displayed in the > class browser; > class-smalltalk.png is the regular class syntax, > class-fluid.png is the same class but with the "Fluid" checkbox selected, and > shows a different syntax. > This is no different syntax, as there is no Syntax (in the sense of Grammar) to define classes. These are all message sends, just like before. > May I know what that is all about? > > There's a different terminology too, something called "slot", which I have > faint memories of being quite like that in "Self" environments. > The Fluid class definition has two goals: 1) be extensible. With the ST80 way, any new parameter would mean adding *a lot* of methods. And every new parameter needs all the other variations, it’s a serious combinatorial explosion. Just an example: CompiledMethods and CompiledBlock use CompiledMethodLayout. But they are created with: CompiledCode variableByteSubclass: #CompiledMethod instanceVariableNames: '' classVariableNames: '' package: 'Kernel-Methods' So the system checks for the name and uses the CompiledMethodLayout instead of ByteLayout. This is hacked in to the system really with “if the name is CompiledMethod, do not use ByteLayout but CompiledMethodLayout.” But now CompiledCode classLayout ==> "a CompiledMethodLayout” Which means yes, we have a class that we can not define! With the new class definition, this is explicit: CompiledCode << #CompiledBlock layout: CompiledMethodLayout; slots: {}; tag: 'Methods'; package: ‘Kernel' Now of course we could have added ~20 methods (not sure if that is enough…) of a compiledMethodSubclass:, and added a version with the layout as a parameter (another 20+1 variants). But what if we want to add yet another parameter? What is *you* want to do that? With Fluid, class defintions are extensible, and we can easily extend them. 2) Why are variables not a list of names in a String anymore? Because we have “First Class Variables”: every variable in the system has a meta-object, which is implemented by a class. Point instanceVariables first "#x => InstanceVariableSlot” So yes, there is an Object that represents “the variable #x in Point”. With an api. The compiler delegates code generation to it fore read and write. You can think of it as a Meta Object Protocol for Variables... (I sometimes wonder if the name Slot was good, we could just think of it as “InstanceVariable” in the sense of the Variable being modelled as an object, instead of a String). This is a big topic, but the idea is: let’s use Objects, not Strings! We can define our own kind of Variable (see the hierarchy of Variable), and the use of the array {} now allows us to actually define a class that uses this special kind of Variable. There is a presentation I did about it last year: https://vimeo.com/603398445 Marcus
[Pharo-users] Re: What can you do with Pharo?
Cheers I restarted with smalltalk in the form of Pharo a few years back, so in a somewhat similar situation. I have done several different things: Contributed to a number of different things in the Pharo community, fixing issues, commented on issues, and been involved in one of the sub-areas of Pharo (markdown support in the system itself) We own a small hobby farm of 30 sheeps with 50-60 lambs a year. I have made a tool to help all the management of this. I am responsible for memberships and fees in our kayakclub. I have made a system which help me keep information consistent across the few platforms we use to make sure all are billed the right amount. My wife and I keep track of our pension stock portefolio ourselves using a system I built (rather specific to the csv files I am able to pull from the bank). So, I believe one can build anything. The learning curve is somewhat steep, and many libraries have odd names, the code quality varies from elegant to over-engineered (in my view). But there is always friendly help on discord which is very nice. Best, Kasper > On 2 Feb 2022, at 08.55, contac...@kathe.in wrote: > > I am new to Pharo, so pardon my ignorance. > > I used to be a professional developer between 1996 and 2007 during which time > I developed personal Management Information Systems for employees at my > company's HRD using Microsoft Access, then moved on to leading a team of C++ > developers to build a graphical operating environment atop the bare Linux > kernel, then took up rapid prototyping using PHP at various Web-related > startups. > > I have been aware of Smalltalk since 1999 and have only fiddled-around with > it, though have failed to learn how to produce software due to the different > syntax (as compared to C++ and PHP). > > I would like to focus on Smalltalk more seriously and found the cleanness of > Pharo to be quite refreshing. > My problem is that I can't figure out what I could build using the wonderful > tools in the amazing environment that is Pharo. > > Project ideas are most welcome, though, I no longer wish to develop for the > Web. > > Best regards, > > ~Kathe >
[Pharo-users] What is "Fluid"?
I have attached 2 cropped screen-captures of the same class displayed in the class browser; class-smalltalk.png is the regular class syntax, class-fluid.png is the same class but with the "Fluid" checkbox selected, and shows a different syntax. May I know what that is all about? There's a different terminology too, something called "slot", which I have faint memories of being quite like that in "Self" environments. Thank you, ~Kathe