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
August 2016
- 68 participants
- 301 messages
Re: [Pharo-users] More reliable VCS, Project management and tools?
by Vitor Medina Cruz
Hello,
Thanks for the answers!
stepharo
I used Kommiter to commit onto smalltalkhub and Monticello to copy changes
> to my local file tree until I got and error using Komiter.
>
> which one?
I don't remember. When the error occurred I just proceed to see what would
happened. if you go to http://smalltalkhub.com/#!/
~vitormcruz/Katas-and-Challenges/packages/TwitterChallenge-Tests you will
see that version 6 is missing, and in my image it was there until I Flush
cached version.
[image: Inline image 1]
I suspect that for some reason coping the version to smalltalkhub didn't
work and the system couldn't recover from this propoerly. I would expect
the rollback of the entire commit operation, but the procedure commit the
other packages and, as it seemed to me, put one of them in a cached ok
status while nothing happened on the remote repository.
What I liked about Kommiter is the possibility to commit multiple packages
at once, in Monticello I haven't see a way to do this and as the number of
packages increases committing becomes very bureaucrat. Versioner can do the
same, it is
Ben Coman
"Oh, and Monticello sometimes says there are changes to pakages that I
> > haven't changed, when I click on changes it discover that there are no
> > changes and remover the "*" mark of it.
>
This is an old niggle. I've not found this one to impact overall
> reliability of Monticello."
Yes, but I get nervous when I see this glitch in a system or framework
package since I should not be messing around with that stuff :)
"> 1- Shouldn't I be using Windows? Pharo isn't stable on a Windows
> platform?
> Pharo has traditionally been very stable of Windows - but Pharo 5 had
> a major change to move to the Spur VM and change in FFI, so perhaps
> there are some things to iron out. Please help us to identify them."
I will try :)
"> 4- I don't believe those problems are normal, otherwise there wouldn't
> be so
> > many places using Pharo for production purpose, any hints of what I may
> be
> > doing wrong? :(
> Often newcomers bump into problems because your usage is slightly
> different; or the rest of use have learned to unconsciously step over
> them like a wobbly slab in your garden path; or the rest of us live
> with / work around minor problems because they are outweighed by the
> benefits we gain from Pharo (that of course newcomers are yet to fully
> appreciate and the niggles are more obvious and a greater concern)."
Let me tell you, I really like Smalltalk and it's vision, and I think Pharo
has doing a great job, however, understanding this vision and start to take
advantage of the system is hard, very hard. I can tell that because I have
tried to explain it to some people and it is not something immediate
obvious. I am convinced that only by using the system most people will
really "get" it, you know what I mean? (just a fraction "get" before using
it) So I agree with you, those niggles are a great concern while trying to
bring newcomers :( . Another problem, however, is the difference between
programming in Pharo and in other systems. I mean, now Pharo can execute
from console (is there a console REPL?) , there is a web REPL and a bunch
of nice frameworks to do a lot of stuff, but programming in Nautilus and
with the whole image is waaaay different, there is the good stuff like the
debugger and and the Dynamic system which makes you freeking productive,
but there are really annoying stuff related to usability. For example,
Nautilus take a good chunk of screen and many many things are done by
clicking. You can't imagine how exasperating it is for someone used to
IntelliJ having to switch methods by click, or having tons of screens that
you have to manage by hand. Have you considered those kind of stuff
already? I know you have tons of things to do, but I think those kind of
stuff in sum with those niggles are a great barrier for newcomers... :(
Hernán
"However, for anyone to load my configurations and projects, I could not
> use filetree with a local directory, so I created a smalltalkhub repository
> and started to commit there and on my local filetree directory. I used
> Kommiter to commit onto smalltalkhub and Monticello to copy changes to my
> local file tree until I got and error using Komiter. I tried to proceed
> instead of abort and one of the packages didn't commit correctly. Trying to
> access it on the smalltalkhub site I got an error....
> Maybe you mean Versionner? There is an issue in Pharo 5. Quick fix:"
No, it was Komiter, but I experience problems with Versioner too, it get in
a infinite loop when I try to do any kind of patch. I started a new fresh
image, load my code and Versioner is working know, I don't understand what
happened.
Also, my image don't have KomStagingArea class, it was supposed to exist?
Thanks again!
Vitor
On Fri, Aug 26, 2016 at 2:02 PM, Hernán Morales Durand <
hernan.morales(a)gmail.com> wrote:
> Hello Vitor
>
> 2016-08-25 23:16 GMT-03:00 Vitor Medina Cruz <vitormcruz(a)gmail.com>:
>
>> Hello,
>>
>> I am doing some katas and challenges using pharo 5, and I got a bad
>> impression from the VCS and Project management as a whole. I got a bunch of
>> problems with, as it seems to me, simple stuff, and so I loose a lot of
>> confidence with the system :( I get myself saving the image a lot and
>> double checking anything done with version control. I am going to tell more
>> or less what I have done in the last days for you to get an idea of the
>> problems I had and then ask some questions.
>>
>> I am using Pharo 5 in a Windows 10 system and I was first trying to use
>> GIT as the underlying provider for monticello. I know gitfiletree has
>> problems in a windows system, but I tried to use it anyway to see what
>> happens and I got an image unusable, with Nautilus package view messed up
>> with red blocks and yellow crosses.... scary. I am not sure if that problem
>> with Nautilus was actually caused by gitfiletree since I changed the
>> package of the configuration of my project (I did that only to see if I
>> could) and then rolled that back while testing gitfiletree... but, well,
>> gitfiletree do not work on Windows, I got an index out of bounds exception
>> or something like that, so I gave up and used filetree with a git client to
>> make actual commits.
>>
>> However, for anyone to load my configurations and projects, I could not
>> use filetree with a local directory, so I created a smalltalkhub repository
>> and started to commit there and on my local filetree directory. I used
>> Kommiter to commit onto smalltalkhub and Monticello to copy changes to my
>> local file tree until I got and error using Komiter. I tried to proceed
>> instead of abort and one of the packages didn't commit correctly. Trying to
>> access it on the smalltalkhub site I got an error....
>>
>
> Maybe you mean Versionner? There is an issue in Pharo 5. Quick fix:
>
> KomStagingArea>>remotes
>
> self packages isEmpty
> ifFalse: [
> | result |
> result := self packages first remotes.
> self packages allButFirst do: [ :each |
> result := result intersection: each remotes ].
> ^ result collect: [ :each | each koRemote ] ].
> ^ Array empty.
>
>
>
>> I opened Monticello and had to Flush Cached Version so that it stopped to
>> tell me that there were no changes and started to prompt an error message.
>> I had to forcibly save a new version so that it work again. If I go now to
>> smalltalkhub, sometimes I got errors, sometimes don't. I don't know yet if
>> the error was with komiter, smalltalkhub or my image.
>>
>> Oh, and Monticello sometimes says there are changes to pakages that I
>> haven't changed, when I click on changes it discover that there are no
>> changes and remover the "*" mark of it.
>>
>> I tried using Versioner too, but sometimes when I try to commit a minor
>> version, for example, the system hangs and I need to "Alt + .". For now the
>> reliable way of using versioner is to create a release version and commit
>> from Monticello
>>
>> Right now I fell like stepping in a land mine, so I would like to know:
>>
>> 1- Shouldn't I be using Windows? Pharo isn't stable on a Windows
>> plataform?
>>
>
> Using Pharo 5 in Windows has some issues, I think most Pharoers are using
> Mac and Linux.
>
>
>> 2- Is Komiter reliable or should I use Monticello directly?
>>
>
> I think you should use Versionner, with the fix above in Pharo 5.
>
>
>> 3- Is Smalltalkhub reliable or should I use other repository?
>>
>
> Sometimes it hangs :(
>
>
> Hernán
>
> 4- I don't believe those problems are normal, otherwise there wouldn't be
>> so many places using Pharo for production purpose, any hints of what I may
>> be doing wrong? :(
>>
>> Thanks in advance and sorry if the stuff I am doing seems dumb... :(
>>
>> Regards,
>> Vitor
>>
>>
>>
>>
>
Aug. 29, 2016
Re: [Pharo-users] [ANN] Pillar 4.0.0
by Thibault ARLOING
In fact, the hyperlink for chapter does not work on Enterprise Pharo but just for chapters.
Because it is not links but anchor.
The reason is that when we want to reference a section, the section is in the same HTML so the anchor works but when we reference a chapter, it is not in the same HTML so the anchor is not found.
But when we compile Enterprise Pharo book, all chapters are gathered so anchors are found.
In any case, it will work if you do it in your own project.
Sincerely,
Thibault
________________________________
De : Pharo-users <pharo-users-bounces(a)lists.pharo.org> de la part de Gour <gour(a)atmarama.com>
Envoyé : jeudi 25 août 2016 17:58
à : pharo-users(a)lists.pharo.org
Objet : Re: [Pharo-users] [ANN] Pillar 4.0.0
On Fri, 22 Jul 2016 13:41:34 +0000 Thibault ARLOING
<thibault.arloing(a)hotmail.fr> wrote:
> The documentation of Pillar will be update as soon as possible to fit
> those changes.
Thank you working on this and bringing nice features like support for
footnotes.
Ability to convert Pillar documents into MArkdown (still using it with
flat-CMS for web) and/or support for markup like AsciiDoc is great.
However, after going into Pharo-terrain, I'm considering to use is as
single-markup for all the my writing purposes as well as for preparing
slide presentations.
By looking at docs, I see that hyperlinked references show "see chapter
??", so wonder what's wrong with hyperlinking support?
Sincerely,
Gour
--
He who is regulated in his habits of eating, sleeping, recreation
and work can mitigate all material pains by practicing the yoga system.
Aug. 29, 2016
Re: [Pharo-users] Traits inheritance
by Petr Fischer
> There is no need for explicit requirement in Pharo because it was too static
Sorry, what do you mean by "too static"? Should I use "subclassresponsibility" in all cases (class and also traits)?
>
>
> Le 28/8/16 à 03:23, Petr Fischer a écrit :
> > Hello, is Trait methods inheritance supported in Pharo?
> >
> > Like this:
> >
> > TBaseTrait>>myMethod
> > self subclassresponsibility
> >
> > TSubTrait
> > uses: TBaseTrait
> > ...
> > TSubTrait>>myMethod
> > some real implementation
> >
> > MyClass
> > uses: TSubTrait
> > (MyClasss>>myMethod already implemented in TSubTrait, but I can reimplement again)
> >
> > Problems:
> >
> > 1) when I put "self subclassresponsibility" in TBaseTrait, everything is nicely visible in Nautilus browser (something like "abstract" method with proper (a) yellow icon). But I read somewhere, that for traits, I must use "^ self explicitRequirement" instead of "subclassresponsibility" - then, I can't see anything usefull in Nautilus
> >
> > 2) sometimes (it was maybe with "self subclassresponsibility" in TBaseTrait), Monticello not detected overrided TSubTrait>>myMethod (TSubTrait residing in another package than TBaseTrait) and this overrided trait method in TSubTrait was not saved in monticelo package (no changes was detected by Monticello, thus not saved to mcz package!)
> >
> > So - is trait a "bag of methods" only, or is trait inheritance supported? Thanks very much!
> You can compose Traits and a class can uses Traits.
> Now I remember that there is a little bug when we override a trait
> method or something like that.
>
>
> >
> > pf
> >
> >
>
>
Aug. 28, 2016
Re: [Pharo-users] Traits inheritance
by Petr Fischer
Today, after some work, I also noticed, that 2 methods from base trait was "copied" magicaly to the inherited trait (with same implementation as base trait) - I don't know why and when + Monticello is confused about trait method changes again...
Bad thing is, these magic issues are nearly irreproducible, maybe later...
With manual tweaking sometimes, I can still work further...
I added bug/enhancement about Nautilus & explicitRequirement to the Pharo fogbuz.
Thanks!
> Hi Petr!
>
> You have found what I think is a bug. Indeed, Nautilus may be improved to have the behavior you describe. Having an explicit requirement ("self explicitRequirementâ) should be indicated by Nautilus. I suggest you to open a bug on https://pharo.fogbugz.com
>
> Regarding the second problem, I cannot reproduce it. Do you have the exact steps to reproduce it?
>
> Alexandre
>
>
> > On Aug 27, 2016, at 10:23 PM, Petr Fischer <petr.fischer(a)me.com> wrote:
> >
> > Hello, is Trait methods inheritance supported in Pharo?
> >
> > Like this:
> >
> > TBaseTrait>>myMethod
> > self subclassresponsibility
> >
> > TSubTrait
> > uses: TBaseTrait
> > ...
> > TSubTrait>>myMethod
> > some real implementation
> >
> > MyClass
> > uses: TSubTrait
> > (MyClasss>>myMethod already implemented in TSubTrait, but I can reimplement again)
> >
> > Problems:
> >
> > 1) when I put "self subclassresponsibility" in TBaseTrait, everything is nicely visible in Nautilus browser (something like "abstract" method with proper (a) yellow icon). But I read somewhere, that for traits, I must use "^ self explicitRequirement" instead of "subclassresponsibility" - then, I can't see anything usefull in Nautilus
> >
> > 2) sometimes (it was maybe with "self subclassresponsibility" in TBaseTrait), Monticello not detected overrided TSubTrait>>myMethod (TSubTrait residing in another package than TBaseTrait) and this overrided trait method in TSubTrait was not saved in monticelo package (no changes was detected by Monticello, thus not saved to mcz package!)
> >
> > So - is trait a "bag of methods" only, or is trait inheritance supported? Thanks very much!
> >
> > pf
> >
>
> --
> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
> Alexandre Bergel http://www.bergel.eu
> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>
>
>
>
Aug. 28, 2016
Re: [Pharo-users] Traits inheritance
by Alexandre Bergel
Hi Petr!
You have found what I think is a bug. Indeed, Nautilus may be improved to have the behavior you describe. Having an explicit requirement ("self explicitRequirementâ) should be indicated by Nautilus. I suggest you to open a bug on https://pharo.fogbugz.com
Regarding the second problem, I cannot reproduce it. Do you have the exact steps to reproduce it?
Alexandre
> On Aug 27, 2016, at 10:23 PM, Petr Fischer <petr.fischer(a)me.com> wrote:
>
> Hello, is Trait methods inheritance supported in Pharo?
>
> Like this:
>
> TBaseTrait>>myMethod
> self subclassresponsibility
>
> TSubTrait
> uses: TBaseTrait
> ...
> TSubTrait>>myMethod
> some real implementation
>
> MyClass
> uses: TSubTrait
> (MyClasss>>myMethod already implemented in TSubTrait, but I can reimplement again)
>
> Problems:
>
> 1) when I put "self subclassresponsibility" in TBaseTrait, everything is nicely visible in Nautilus browser (something like "abstract" method with proper (a) yellow icon). But I read somewhere, that for traits, I must use "^ self explicitRequirement" instead of "subclassresponsibility" - then, I can't see anything usefull in Nautilus
>
> 2) sometimes (it was maybe with "self subclassresponsibility" in TBaseTrait), Monticello not detected overrided TSubTrait>>myMethod (TSubTrait residing in another package than TBaseTrait) and this overrided trait method in TSubTrait was not saved in monticelo package (no changes was detected by Monticello, thus not saved to mcz package!)
>
> So - is trait a "bag of methods" only, or is trait inheritance supported? Thanks very much!
>
> pf
>
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
Aug. 28, 2016
Re: [Pharo-users] [Pharo-dev] [ann] GTExamples alpha
by Tudor Girba
Hi,
> On Aug 26, 2016, at 10:01 PM, Nicolai Hess <nicolaihess(a)gmail.com> wrote:
>
>
>
> 2016-08-26 0:51 GMT+02:00 Tudor Girba <tudor(a)tudorgirba.com>:
> Hi,
>
> I just tried again, and the latest GToolkit image does contain FileSystem class >> gtExampleZip:
>
> Yes, it is there, but not listed under the FileSystem class package.
> If you open Nautilus for all gt examples (world menu -> GT Examples -> Browse all examples)
> A Nautilus browser opens, but it shows mostly GT-Packages.
> And if you just open a new Nautilus window, select the FileSystem-Core package and choose "Browse All Examples of Package FileSystem-Core from the GT-Examples menu.
> you won't see any example.
> It is "impractical", that you need to select the GT-Examples-Examples package to actuall find the FileSystem-Core examples (and others).
>
> Or in short
> The FileSystem examples are not in the FileSystem *package*
> And the same for other examples, you can not find all "Collections"-Examples by selecting the Collection package and choose "Browse All Examplesâ
Indeed. Good catch. This should be rethought.
Cheers,
Doru
> Inspect this:
> Smalltalk gtExamplesContained select: [ :each |
> each method methodClass instanceSide = FileSystem ]
>
> This is the image:
> https://ci.inria.fr/moose/job/gtoolkit/5595/artifact/gtoolkit.zip
>
> Cheers,
> Doru
>
>
> > On Aug 25, 2016, at 11:40 PM, Tudor Girba <tudor(a)tudorgirba.com> wrote:
> >
> > Hi Nicolai,
> >
> > Thanks a lot for the feedback. Please letâs continue. See more inline.
> >
> >> On Aug 25, 2016, at 6:34 PM, Nicolai Hess <nicolaihess(a)gmail.com> wrote:
> >>
> >>
> >>
> >> 2016-08-25 8:47 GMT+02:00 Tudor Girba <tudor(a)tudorgirba.com>:
> >> Hi,
> >>
> >> Hi Doru,
> >> some questions and feedback ( I am sorry for my tone or if this sounds negative, it isn't meant to be)
> >>
> >> Over the last coupe of years Stefan Reichhart and the rest of the GT team worked on an implementation of examples. The work is inspired from previous work done by Markus Gaelli and Adrian Kuhn.
> >>
> >> As one of the goals of GT is to offer a live programming environment,
> >>
> >> Isn't this what we already have, a live programming environment, I think for newcomers (and maybe others) this needs to make be more clear, how is different, what gap are you trying to fill.
> >>
> >> one important issue is how to move from the static code to live objects as fast as possible.
> >>
> >> Isn't code always "static" and aren't objects always "live", how do play gtExamples any role in this?
> >
> > What I meant is that I want to be as little as possible in the static code browser. Instead I want to write code in the presence of a bounded âselfâ which happens either in a debugger or in an inspector.
> >
> > The gap that examples fill is that when I look at a static code and I have examples about it, I can possibly jump to those examples and code against their result. So, instead of coding a method about a FileReference in the code browser, I will code it against an instance of a FileReference. Hence, we make live programming easier to achieve.
> >
> >
> >> That is why we worked on this library as a solution to provide a link between the static code and live objects.
> >>
> >> From my understanding, I think this "link" between code an objects is the real valuable new point. This is the great thing about gtExamples. link from code (the example methods itself or methods refering a class
> >> to an example object/instance that can be inspected (the raw object or an object specific inspector pane).
> >> This is what I would consider the real step forward. You see a method refering to class TextModel and Nautilus or any other tool not only offers a method to browse all Users of this class, but too, a dedicated
> >> list of "example methods" where every example has a view for this example instance that let the user show and interact (even for non-visual objects through the "evaluater pane", or just see the code creating this
> >> example.
> >
> > Exactly.
> >
> >> We really miss examples, I often see questions on the mailing list (especially about spect) that can be explained easily with an example. And even worse, often the examples already exists, they just aren't as visible.
> >
> > Exactly. These examples are particularly amplified by the fact that we have an inspector that can provide a reacher experience through different views.
> >
> >
> >> Furthermore, this examples library also enables the definition of assertions on the examples, and this provides the possibility of rethinking the way we construct tests throughout our system. Tests are great as they help us create live objects and then to assert live properties.
> >>
> >> This whole thing sounds as if Unit-Test were a good idea but not the way that they are used today, I strongly disagree. I don't see this as a "rethinking the way we construct tests", yes, we can
> >> augment the current set of tests with addtional assertions on live objects, but this is not a replacement.
> >> "Tests are great as they help us create live objects" This is not my only purpose for writing tests, often unit-tests cover methods and "private-apis" not even considered to be used on live objects. You can not (or I don't want to
> >> ) write tests only on "finished lived objects" sometimes we need tests for initialiazation/private code or exception handling I don't see how we can offer this only by using example instances (yes your "rethinking" sounds like "this
> >> is the better way to do testsâ).
> >
> > I think there is a misunderstanding here.
> >
> > When I test, (1) I create one or more objects, (2) I assert against them and then (3) I potentially cleanup. At least the objects from step 1 are potentially interesting for documentation purposes as well. However, because tests are built in a completely different environment than examples are, and because they are not casually linked to the code they are about, we cannot exploit them to the maximum potential.
> >
> > The GT-Examples model offers a unification. This means that you can use the same mechanism for expressing both a test scenario and a documentation one. There is potential to be exploited here. For example, there is research that aims to take the all sorts of objects and try to infer types for code out of these. We could make this much simpler.
> >
> > I understand that this is a departure from the classic way of testing, but we have already expressed more than 1 thousand examples both from a documentation and from testing point of view, and it does seem to work.
> >
> >
> >> However, they do not allow us to leverage the objects we create, and this can be a tremendous resource for understanding systems.
> >>
> >> In our vision, examples should be everywhere and they should be explicitly linked to the static code they exemplify. That is why the library comes with an initial integration in existing tools (such as Nautilus, Spotter, Inspector).
> >>
> >> The current solution works well and it is the result of several rewrites. We think that the solution is complete in terms of features, but there are still several things to improve and iterate on. To this end, I kindly ask you to take a look at it while distinguishing between the concrete implementation choice (e.g., the current extensive use of pragmas) and the conceptual benefits of the approach.
> >>
> >> To ease the discussion, we put together a short documentation:
> >>
> >> Everytime I see a gtExample method on a class I first think, shouldn't this go to a Help or Doc or Exampels class instead. I don't know how others thinks about this but this is my first impression.
> >> For example, the example on your page:
> >>
> >> FileSystem class >> #createFileOnDisk
> >>
> >> <gtExample>
> >> <
> >> description: 'Create a new file or override an existing file with some contents. Open and close the stream safely'
> >>>
> >> ^
> >> FileSystem workingDirectory / 'test.txt'
> >>
> >>
> >> writeStreamDo: [ :stream | stream nextPutAll: self
> >> comment ];
> >> yourself
> >>
> >> Nice, now the user can see how to use FileSystem to create a file, open *and* close the stream safely. But for me, this method does *not* belong to the FileSystem class it just not make any sense to me, to have a method (*in this class*) that opens and closes a stream. Even if this is just an example, I would put it in a doc-page or a tutorial that can execute code. But again , this is just my point of view.
> >> I can not really explain it, having a example method on Morph or a widget ui or a widget model class, that opens an example morph or widget in the world, is for me something completly different and a valid example.
> >> Having the same for the method above - is not, at least not as executable code on the FileSystm class).
> >
> > I do not understand this last point.
> >
> > Just because an object does not have a visual appearance like a Morph does, does not make it uninteresting from an interaction point of view. The inspector already can provide the views. We also have the possibility of adding custom actions that can be installed as menu items. Even for a morph, I sometimes want to not look at its default appearance, but at its submorphs. Thus, I do not see the confusion.
> >
> > Nevertheless, the example does not have to be on the class side. It can be in any class you want and you can associate it with a subject. For example, all Roassal examples are in dedicated classes. There are hundreds of methods, so putting them all on the class side of a domain class would not work at all. We showed the example on the class side because that is a pattern that people used for a long time and it is a reasonable place when you have only a handful of examples. The rationale is that an example is a way to instantiate a class, so having it on the class side is not far fetched. Also, if you put it on the class side, you get by default the class as a subject for the examples it contains which is quite natural.
> >
> >
> >> http://gtoolkit.org/doc/Examples/examples.html
> >>
> >> That being said, you can get it with the full GToolkit in Pharo 6.0:
> >>
> >> Is this based on the recent Pharo 6.0?
> >>
> >> GTExamplesReleaseTests are failing for me
> >
> > Yes, these are yellow.
> >
> >
> >> Where did you test this? I get some Object>>#name deprecation warnings when browsing for examples refering a class, for example on
> >> class FileSystem and menu entry "Browse Examples refering FileSystem" (maybe a Pharo 5.0 version?)
> >
> > I tested in Pharo 6.0 (60188), but we just got a problem that was reported related to Epicea and Martin is looking at it.
> >
> >
> >> The example on the examples.html side isn't actually in the image right?
> >
> > Yes, itâs not there yet.
> >
> >
> >> The browsing examples of a package (context menu on nautilus package pane) does not work or I don't understand why it does not find any examples at all.
> >> The World menu "Browse All Examples" does not contain the class FileSystem, although FileSystem>>gtExampleZip is a gtExample, this is because
> >> the example method is in an extension package, should all gtExample methods be class extensions ? This is handled differently for different packages.
> >
> > Hmm. When I "Browse All Examples" I get a Nautilus with FileSystem class>>gtExampleZip in my image. But, indeed, in the latest GToolkit image, this example is missing.
> >
> >
> >> The code pane context menu of a sendersOf Message browser is broken (debug menu).
> >
> > I do not understand what menu item you refer to. Could provide a screenshot.
> >
> >>
> >> From the web-side:
> >>
> >> "Furthermore, Nautilus, the World-Menu, all Rub-Text-Editors as well as Spotter and Inspector provide access to retrieve, browse and navigate examples from entities within the world"
> >> I can not find it, not in inspector, Rub-Text-Editors, only in Nautilus.
> >
> > In Nautilus and in RubText you get it in the GT-Examples menu (Browse examples with subject â¦).
> >
> > The Inspector is not yet there, but we are adding it.
> >
> >
> >> And the menu entries are ... unfortunate (see screenshot), what you put in, the whole source as menu label?
> >
> > Hmm. Something is strange there. I get the name of a method, not the source code. What image are you in?
> >
> >
> >> run "run the example and return its return-value"
> >>
> >> debug
> >> "same run, but open debugger if the example failsâ
> >> returnValue
> >> "the return-value"
> >> Executing run/debug/inspect returnValue does not seem to make any different when called from nautilus. It always gives
> >> an inspector on a dictionary holding the gtexample and its gtexampleresult (is this a bug?)
> >
> > Yes.
> >
> >
> >> Glossary:
> >> "Example: an example is a tiny stub object representing a GT-Example. It holds the references to its dependencies, subjects and many other entities. "
> >> What are "many other entities" this is a bit unclear
> >
> > Icon, Label, Provider, and others that you can add through custom annotations if you want to. This part is not yet clear.
> >
> >
> >> "After-method: the after-method is a method that is performed right after the example."
> >> After the example ? I thought an example is a "tiny stub *object*", how can it run?
> >> How it is run after I run an example for inspection, after I closed the inspector?
> >
> > Not yet. At this point, inspecting does not prevent triggering of the cleanup method, but it would certainly be interesting to get there.
> >
> > Cheers,
> > Doru
> >
> >> http://gtoolkit.org/#install
> >> (easiest is to download the ready made image for now)
> >>
> >> For those that are at ESUG, I will try to provide a short overview during the Show Us Your Project session from today.
> >>
> >> Cheers,
> >> Doru
> >>
> >>
> >> --
> >> www.tudorgirba.com
> >> www.feenk.com
> >>
> >> "Reasonable is what we are accustomed with."
> >>
> >>
> >>
> >> <gtexample_menu.png>
> >
> > --
> > www.tudorgirba.com
> > www.feenk.com
> >
> > "No matter how many recipes we know, we still value a chef."
>
> --
> www.tudorgirba.com
> www.feenk.com
>
> "Quality cannot be an afterthought."
>
>
>
--
www.tudorgirba.com
www.feenk.com
"What we can governs what we wish."
Aug. 28, 2016
Re: [Pharo-users] Traits inheritance
by stepharo
There is no need for explicit requirement in Pharo because it was too static
Le 28/8/16 à 03:23, Petr Fischer a écrit :
> Hello, is Trait methods inheritance supported in Pharo?
>
> Like this:
>
> TBaseTrait>>myMethod
> self subclassresponsibility
>
> TSubTrait
> uses: TBaseTrait
> ...
> TSubTrait>>myMethod
> some real implementation
>
> MyClass
> uses: TSubTrait
> (MyClasss>>myMethod already implemented in TSubTrait, but I can reimplement again)
>
> Problems:
>
> 1) when I put "self subclassresponsibility" in TBaseTrait, everything is nicely visible in Nautilus browser (something like "abstract" method with proper (a) yellow icon). But I read somewhere, that for traits, I must use "^ self explicitRequirement" instead of "subclassresponsibility" - then, I can't see anything usefull in Nautilus
>
> 2) sometimes (it was maybe with "self subclassresponsibility" in TBaseTrait), Monticello not detected overrided TSubTrait>>myMethod (TSubTrait residing in another package than TBaseTrait) and this overrided trait method in TSubTrait was not saved in monticelo package (no changes was detected by Monticello, thus not saved to mcz package!)
>
> So - is trait a "bag of methods" only, or is trait inheritance supported? Thanks very much!
You can compose Traits and a class can uses Traits.
Now I remember that there is a little bug when we override a trait
method or something like that.
>
> pf
>
>
Aug. 28, 2016
Traits inheritance
by Petr Fischer
Hello, is Trait methods inheritance supported in Pharo?
Like this:
TBaseTrait>>myMethod
self subclassresponsibility
TSubTrait
uses: TBaseTrait
...
TSubTrait>>myMethod
some real implementation
MyClass
uses: TSubTrait
(MyClasss>>myMethod already implemented in TSubTrait, but I can reimplement again)
Problems:
1) when I put "self subclassresponsibility" in TBaseTrait, everything is nicely visible in Nautilus browser (something like "abstract" method with proper (a) yellow icon). But I read somewhere, that for traits, I must use "^ self explicitRequirement" instead of "subclassresponsibility" - then, I can't see anything usefull in Nautilus
2) sometimes (it was maybe with "self subclassresponsibility" in TBaseTrait), Monticello not detected overrided TSubTrait>>myMethod (TSubTrait residing in another package than TBaseTrait) and this overrided trait method in TSubTrait was not saved in monticelo package (no changes was detected by Monticello, thus not saved to mcz package!)
So - is trait a "bag of methods" only, or is trait inheritance supported? Thanks very much!
pf
Aug. 28, 2016
Re: [Pharo-users] Roassal 2 disable browser and vis. animations
by Alexandre Bergel
Hello Robert!
Thanks for your nice word!
We are aware of the instability. Unfortunately, there is not much we can do right now.
The animation you mention cannot be disabled, as it is part of the GT inspector.
All we can say, is to be patient. Pharo and Roassal will be stable...
Alexandre
> On Aug 27, 2016, at 12:04 PM, Robert Kuszinger <kuszinger(a)giscom.hu> wrote:
>
> Hello Group,
>
>
> since yesterday I'm investigating the Roassal examples.
>
> Udderlying system is:
>
> ⢠Pharo-50761.image
> ⢠pharo-spur --version
> 5.0 #1 Wed May 4 11:54:28 CEST 2016 gcc 4.6.3 [Production Spur ITHB VM]
> CoInterpreter VMMaker.oscog-eem.1855 uuid: d8e4a3c2-a3bf-4adc-b224-8012903a1ef4 May 4 2016
> StackToRegisterMappingCogit VMMaker.oscog-eem.1855 uuid: d8e4a3c2-a3bf-4adc-b224-8012903a1ef4 May 4 2016
> https://github.com/pharo-project/pharo-vm.git Commit: b8ec25a570d7539653e1d793e97609adb509aaed Date: 2016-05-04 11:14:22 +0200 By: Esteban Lorenzano <estebanlm(a)gmail.com> Jenkins build #589
> Linux pharo-linux 3.2.0-31-generic-pae #50-Ubuntu SMP Fri Sep 7 16:39:45 UTC 2012 i686 i686 i386 GNU/Linux
> plugin path: /usr/share/pharo/spur/ [default: /usr/share/pharo/spur/]
>
> Roassal is loaded like this:
> ⢠Gofer it
> smalltalkhubUser: 'ObjectProfile' project: 'Roassal2';
> configurationOf: 'Roassal2';
> loadStable.
>
>
> In the office (yes, in worktime :) ) I also tested on Windows 7.
>
> I only click through all the built in Roassal examples. I AM IMPRESSED! Very powerful system, even the GIS (map) part with OSM integration (VOW!)
>
> Anyway, on windows it crashed many times (On WIndows I downloaded this: http://moosetechnology.org/res/download/moose_suite_6_0-win.zip)
>
>
> I observed that windows crash moment was always some kind of animation (window transition animation of the Roassal exmaples browser or visualization animation like pan or zoom).
>
>
> Question:
>
> ⢠Is there a way to disable Roassal visualization animations?
> ⢠is there a way to disable window component animation in the Roassal Example Browser? (When clicking on the dots and moving between examples list and the visualization example itself, for example)
> I wonder if it would make the windows run more stable.
>
> On Linux it is OK but also painfully slow (ok, old machines).
>
> I prefer animationless repaint of the visualization canvas and window transitions.
>
>
>
> thanks
>
> Robert
>
>
>
>
>
>
>
>
>
>
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
Aug. 27, 2016
Re: [Pharo-users] using glorp and active record
by stepharo
Hi esteban
Niall will probably contact you because he is releasing a new version of
Glorp.
Stef
Le 8/8/16 à 17:01, Esteban A. Maringolo a écrit :
> How did you create the tables? There is a sequence for the ID in the database?
> Also, I don't understand why you call it "ActiveRecord".
>
> If you can share some code, DDL of the table, I'll be able to help you better.
>
> Regards,
>
> Esteban A. Maringolo
>
> ps: I'm cross replying to the Glorp mailing list.
>
> 2016-08-08 11:02 GMT-03:00 Sean Glazier <sglazier456(a)gmail.com>:
>> Hi,
>>
>> I have been trying to get glorp using active record working in pharo 5.
>>
>> I have a descriptor class for it and the classes inherit from active Record.
>>
>> I describe the table as:
>> tableForAnswer: aTable
>> | vistorId questionId |
>> (aTable createFieldNamed: 'id' type: platform serial) bePrimaryKey.
>> questionId := aTable createFieldNamed: 'questionId' type: platform integer.
>> vistorId := aTable createFieldNamed: 'vistorId' type: platform integer.
>> aTable createFieldNamed: 'answer' type: platform text.
>> aTable
>> addForeignKeyFrom: vistorId
>> to: ((self tableNamed: 'VISITORS') fieldNamed: 'ID')
>> suffixExpression:
>> 'MATCH SIMPLE
>> ON UPDATE NO ACTION ON DELETE CASCADE'.
>> aTable
>> addForeignKeyFrom: questionId
>> to: ((self tableNamed: 'QUESTIONS') fieldNamed: 'ID')
>> suffixExpression:
>> 'MATCH SIMPLE
>> ON UPDATE NO ACTION ON DELETE CASCADE'
>>
>>
>> the table in the DB was preexisting.
>>
>> when I do Answer findAll
>>
>> I get and error that it is expecting a number for the id field.
>>
>> in the PostgresSQLPlaform serial is defined thusly.
>> serial
>> "For postgresql, we use sequences, and explicitly get the values ourselves,
>> so just tell the database that they're integers."
>>
>> ^self typeNamed: #serial ifAbsentPut: [GlorpSerialType new typeString:
>> 'integer'].
>>
>> What the DB hands back is 'nextval('answers_id_seq'::regclass)' which seems
>> correct if it is telling me that there exists a sequence for this field and
>> that is the correct command to issue for the field.
>>
>> am I defining this table incorrectly? or should I bag using active Record. I
>> kind of liked it when working in Visualworks because there were also tools
>> that would read in and describe the tables and then tools to assit when you
>> needed to migrate to another version and do the changes etc.
>>
>> FYI this is the query that is being run that fails.
>> SELECT t1.table_name, t1.table_schema, t1.column_name, t1.is_nullable,
>> t1.data_type, t1.column_default, t1.character_maximum_length, EXISTS
>> (SELECT DISTINCT 'x'
>> FROM ((INFORMATION_SCHEMA.table_constraints s1t1 INNER JOIN
>> INFORMATION_SCHEMA.key_column_usage s1t3 ON ((s1t1.table_name =
>> s1t3.table_name) AND ((s1t1.table_schema = s1t3.table_schema) AND
>> (s1t1.constraint_name = s1t3.constraint_name)))) INNER JOIN
>> INFORMATION_SCHEMA.columns s1t2 ON (((s1t3.column_name = s1t2.column_name)
>> AND (s1t3.table_schema = s1t2.table_schema)) AND (s1t3.table_name =
>> s1t2.table_name)))
>> WHERE ((s1t1.constraint_type = 'PRIMARY KEY') AND ((s1t2.column_name =
>> t1.column_name) AND (((s1t2.table_schema = t1.table_schema) AND
>> (s1t2.table_name = t1.table_name)) AND ((s1t2.table_schema =
>> t1.table_schema) AND (s1t2.table_name = t1.table_name))))))
>> FROM INFORMATION_SCHEMA.columns t1
>> WHERE ((t1.table_name = 'answers') AND (t1.table_schema = 'public'))
>>
>>
>>
>> it looks as though it is reading in the schema and is expecting and integer
>> because we told it to in the serial method on the PostgesSQLPlatform.
>>
>> As much as I love diving into these frameworks to figure out the deep inner
>> workings, I really need to be getting data in and out without a fuss.
>>
>> Should I follow the DBX example where the descriptor is orthogonal to the
>> model and one does not subclass from active record?
>>
>> I also note that not all the glorp tests pass. I think the were rather minor
>> fails like timezone issues or something. It took a while but the test
>> created a number of tables in the DB.
>>
>> So again Have I done something Obtuse that I qught to be slapped for here?
>>
>> thanks
>
Aug. 27, 2016