Hello,
I like Pharo a lot but I hit a wall very often. With complex problems I do not see how to solve things in small steps. Is there somewhere who is willing to mentor me in how I can overcome that problem. Roelof |
Administrator
|
On Thu, Apr 23, 2020 at 3:32 AM Roelof Wobben via Pharo-users <[hidden email]> wrote: Hello, I would be happy to help with the Smalltalk and problem analysis aspects. Unfortunately, I don't use Pharo much, so I cannot help with it.
|
Op 23-4-2020 om 20:52 schreef Richard
Sargent:
Pity, but if you could help me to learn how to divide a complex problem in smaller steps , then I think I can make it work in Pharo. My problem is more that then how to do it in Pharo. Do you then use gemtalk a lot. Pity that I cannot make exercism challenges on that. And AdventOfCode do seem to difficult for a beginner. Roelof |
Administrator
|
In reply to this post by Richard Sargent
On Thu, Apr 23, 2020 at 12:00 PM Roelof Wobben <[hidden email]> wrote:
Yes, I can help with those areas. I've been programming professionally and virtually exclusively in Smalltalk since 1991. I've been using GemStone/S since 2009 and now work for the manufacturer. I've been working with VA Smalltalk and its predecessors since 1994 and with VisualWorks since 2009. I hear you about using GemStone/S. For most of its life, the assumption was that you would use a client Smalltalk like VA Smalltalk or VisualWorks to do your development work. Although, recently we've been working on Jadeite (https://github.com/GemTalk/Jadeite) to provide a development environment independent of GBS (which is what we used to connect VA Smalltalk and VisualWorks to GemStone/S).
|
Op 23-4-2020 om 21:09 schreef Richard
Sargent:
Oke, I have heard of it but because I could not find a course or book about gemstone and found a mooc about Pharo I choose that one. But is there then much difference between Pharo and Gemstone or can I make a solution to a problem and use the same code for both. For me programming is a hobby. In the Netherlands most companies use c# and with 53 and no XP I do not think its wise to think I find a job as developer. Roelof |
Administrator
|
In reply to this post by Richard Sargent
On Thu, Apr 23, 2020 at 12:14 PM Roelof Wobben <[hidden email]> wrote:
Pharo is an excellent choice and the MOOC should help.
There are many differences. Most notably, GemStone doesn't have a GUI. However, there are many people using what's called "Develop in Pharo, deploy in GemStone" with Seaside.
It's a good hobby. I wouldn't plan on finding a job, if I were you, but you never know. Opportunities come along, especially if you are ready for one.
|
Op 23-4-2020 om 23:00 schreef Richard
Sargent:
Oke, if you still wanted , it is fine with me that you mentor me. But I think we need to find a way to make it work and I do not know if posting on the pharo ml is a good way to make it work because then we pollute the ML and other people can interfer. Do you have any ideas ? For me its fine that you send emails to my personal email. Roelof |
Administrator
|
In reply to this post by Richard Sargent
On Thu, Apr 23, 2020 at 2:42 PM Roelof Wobben <[hidden email]> wrote:
Either way works for me, but I think discussing the issues on list will be beneficial. There are a lot of other people out there who will have ideas and different perspectives. And some of them might be able to answer your questions more quickly than I could get to them.
|
Op 23-4-2020 om 23:53 schreef Richard
Sargent:
That is also true but I also think that the maintainers of the pharo track are not happy when solutions of their challenges could be find on a ML. Roelof |
In reply to this post by Pharo Smalltalk Users mailing list
Hi Roelof,
I remember about a Smalltalk book presenting the CRC concept precisely used to cut complex problem in small chunks. I can't find the reference right now but it is very likely among those books available online (http://stephane.ducasse.free.fr/FreeBooks.html). May be a member of the list remember about it. Hilaire Le 23/04/2020 à 12:31, Roelof Wobben via Pharo-users a écrit : > With complex problems I do not see how to solve things in small steps. -- Dr. Geo http://drgeo.eu |
Hi,
Maybe you meant this one ? There is a chapter on CRC I don’t think it is available online. Cheers, Cédrick
|
In reply to this post by HilaireFernandes
Find it.
It is a chapter of the book Squeak, Open Personal Computing and Multimedia <http://sdmeta.gforge.inria.fr/FreeBooks/CollectiveNBlueBook/> http://sdmeta.gforge.inria.fr/FreeBooks/GuzdialBookDrafts/DesignObjects-ch4.pdf Le 24/04/2020 à 09:39, Hilaire a écrit : > I remember about a Smalltalk book presenting the CRC concept precisely > used to cut complex problem in small chunks. -- Dr. Geo http://drgeo.eu |
Op 24-4-2020 om 09:49 schreef Hilaire:
> Find it. > > It is a chapter of the book Squeak, Open Personal Computing and > Multimedia <http://sdmeta.gforge.inria.fr/FreeBooks/CollectiveNBlueBook/> > > http://sdmeta.gforge.inria.fr/FreeBooks/GuzdialBookDrafts/DesignObjects-ch4.pdf > > > Le 24/04/2020 à 09:39, Hilaire a écrit : >> I remember about a Smalltalk book presenting the CRC concept >> precisely used to cut complex problem in small chunks. > Hilaire and Cedric thanks, I will also study those. |
In reply to this post by Pharo Smalltalk Users mailing list
Roelof, I don't think CRC cards or the GRASP patterns or anything like that
addresses your immediate needs. Based on other questions of yours it seems to me that your problem is not *organising* the responsibilities in an OO program, but decomposing a problem into responsibilities in the first place. I think this is perhaps the most important part of programming, and the hardest to learn, not least because very few of us are good at teaching it. We're not very good at teaching it in mathematics either. I do not think your issues are anything to do with Pharo, Smalltalk, OOP, or programming as such. One symptom of the general problem that I've noticed is that I see code as a very fluid sort of thing where pieces can be moved around and recombined, while many people think of code as something solid and rather brittle. I was thinking of writing up a short description of what I was thinking for a RosettaCode example anyway. Would that help? On Thu, 23 Apr 2020 at 23:16, Roelof Wobben via Pharo-users <[hidden email]> wrote: > > Hello, > > I like Pharo a lot but I hit a wall very often. > With complex problems I do not see how to solve things in small steps. > > Is there somewhere who is willing to mentor me in how I can overcome > that problem. > > Roelof > > |
Administrator
|
On Fri, Apr 24, 2020, 22:25 Richard O'Keefe <[hidden email]> wrote: Roelof, I don't think CRC cards or the GRASP patterns or anything like that Thank you, Richard. I appreciate your offering this. I am not a teacher, so your help is truly appreciated!
|
Op 25-4-2020 om 08:30 schreef Richard
Sargent:
Moment, I have to look if I understand you right. I think you have some strong points but the last one I did not understand well. Do I have to write for example for a exercism challenge a short description of that problem like people do with rosetta code challenges and example code ? Roelof |
Roelof, *I* was offering to write something.
On Sat, 25 Apr 2020 at 19:47, Roelof Wobben via Pharo-users <[hidden email]> wrote: > > Op 25-4-2020 om 08:30 schreef Richard Sargent: > > On Fri, Apr 24, 2020, 22:25 Richard O'Keefe <[hidden email]> wrote: >> >> Roelof, I don't think CRC cards or the GRASP patterns or anything like that >> addresses your immediate needs. Based on other questions of yours it >> seems to me that your problem is not *organising* the responsibilities in an >> OO program, but decomposing a problem into responsibilities in the first >> place. I think this is perhaps the most important part of programming, and >> the hardest to learn, not least because very few of us are good at teaching >> it. We're not very good at teaching it in mathematics either. I do not think >> your issues are anything to do with Pharo, Smalltalk, OOP, or programming >> as such. >> >> One symptom of the general problem that I've noticed is that I see code as >> a very fluid sort of thing where pieces can be moved around and recombined, >> while many people think of code as something solid and rather brittle. >> >> I was thinking of writing up a short description of what I was thinking for a >> RosettaCode example anyway. Would that help? > > > Thank you, Richard. I appreciate your offering this. I am not a teacher, so your help is truly appreciated! > > > > Moment, I have to look if I understand you right. > I think you have some strong points but the last one I did not understand well. > > Do I have to write for example for a exercism challenge a short description of that problem like people do with rosetta code challenges and example code ? > > Roelof > |
Op 26-4-2020 om 06:30 schreef Richard O'Keefe:
> Roelof, *I* was offering to write something. > > On Sat, 25 Apr 2020 at 19:47, Roelof Wobben via Pharo-users > <[hidden email]> wrote: >> Op 25-4-2020 om 08:30 schreef Richard Sargent: >> >> On Fri, Apr 24, 2020, 22:25 Richard O'Keefe <[hidden email]> wrote: >>> Roelof, I don't think CRC cards or the GRASP patterns or anything like that >>> addresses your immediate needs. Based on other questions of yours it >>> seems to me that your problem is not *organising* the responsibilities in an >>> OO program, but decomposing a problem into responsibilities in the first >>> place. I think this is perhaps the most important part of programming, and >>> the hardest to learn, not least because very few of us are good at teaching >>> it. We're not very good at teaching it in mathematics either. I do not think >>> your issues are anything to do with Pharo, Smalltalk, OOP, or programming >>> as such. >>> >>> One symptom of the general problem that I've noticed is that I see code as >>> a very fluid sort of thing where pieces can be moved around and recombined, >>> while many people think of code as something solid and rather brittle. >>> >>> I was thinking of writing up a short description of what I was thinking for a >>> RosettaCode example anyway. Would that help? >> >> Thank you, Richard. I appreciate your offering this. I am not a teacher, so your help is truly appreciated! >> >> >> >> Moment, I have to look if I understand you right. >> I think you have some strong points but the last one I did not understand well. >> >> Do I have to write for example for a exercism challenge a short description of that problem like people do with rosetta code challenges and example code ? >> >> Roelof >> oke, I also accept this offer also. The more angles I learn to solve this , the more I can use that in later challenges. and if I understand everything right , the solution is very simple linksTowards: anAddress do: aBlock "Simple flood algorithm: route via all outgoing links. However, just loopback if the receiver node is the routing destination." address = anAddress ifTrue: [ aBlock evaluate: loopback ] ifFalse: [ outgoingLinks do: aBlock ] and the flow is this : send: aPacket "Send aPacket, leaving the responsibility of routing to the node." self linksTowards: aPacket destinationAddress do: [ :link | self send: aPacket via: link ] so for linkTwowards the anAddress is the `aPacket destinationAdress ` and the aBlock is ` [:link | self send: aPacket via: link ` so if the address is the loopback one it would be ` self send: aPacket via: loopback ` and send is this : send: aPacket via: aLink aLink emit: aPacket so that would be ` loopback emit : aPackage ` and that would lead to : emit: aPacket "Packets are not transmitted right away, but stored. Transmission is explicitly triggered later, by sending #transmit:." packetsToTransmit add: aPacket where packetsToTransmit is a OrderedCollection where the packet is added Waiting till the transmit method is called where the sending of a package is simulated. Roelof |
Free forum by Nabble | Edit this page |