A small game: do one trivial improvement every day
Hi, I have started again to do one absolutely trivial improvement every week-day. The idea is that this is something that can be done in <15minutes, the right thing to do when stuck with other work or as the first or last thing of the day. I will do one per day and put another one on the issue tracker for others to do. Today: withAllSubclassesDo: and withAllSuperclasses can be implemented a little bit nicer: https://github.com/pharo-project/pharo/pull/3629 (review needed!) new issue (for someone else to submit a PR): small cleanup traits in Behaviour: isComposedBy: move to traits https://github.com/pharo-project/pharo/issues/3630 The âevery dayâ might be a bit too much, other frequencies could be âevery weekâ or âevery monthâ or âone for every releaseâ I think the âone for every releaseâ is something everyone on this list should have as a minimal goal. We have a list of simple things to do here: https://github.com/orgs/pharo-project/projects/8 Marcus
I really like this idea! Will see if i can do something with this too. On Wed, 26 Jun 2019 at 09:16, Marcus Denker <marcus.denker@inria.fr> wrote:
Hi,
I have started again to do one absolutely trivial improvement every week-day.
The idea is that this is something that can be done in <15minutes, the right thing to do when stuck with other work or as the first or last thing of the day.
I will do one per day and put another one on the issue tracker for others to do.
Today:
withAllSubclassesDo: and withAllSuperclasses can be implemented a little bit nicer: https://github.com/pharo-project/pharo/pull/3629
(review needed!)
new issue (for someone else to submit a PR):
small cleanup traits in Behaviour: isComposedBy: move to traits https://github.com/pharo-project/pharo/issues/3630
The âevery dayâ might be a bit too much, other frequencies could be âevery weekâ or âevery monthâ or âone for every releaseâ
I think the âone for every releaseâ is something everyone on this list should have as a minimal goal.
We have a list of simple things to do here: https://github.com/orgs/pharo-project/projects/8
Marcus
-- РповагоÑ, ÐиÑоÑлава РоманÑк.
On 26 Jun 2019, at 08:16, Marcus Denker <marcus.denker@inria.fr> wrote:
Hi,
I have started again to do one absolutely trivial improvement every week-day.
Trivial improvement of the day: simplify #allSelectorsInProtocol: https://github.com/pharo-project/pharo/pull/3647 review needed. This is an example that an improvement can be useful even though âone could do even betterâ. e.g. why has this method the name allSelectorsInProtocol: but takes a string/symbol? good question, but we can improve that method nevertheless. Trivial thing to do for someone else: #zapAllMethods can be removed https://github.com/pharo-project/pharo/issues/3656 zapAllMethods was a private methods used by the "we remove all methods when a class gets obsoleted". We do not delete methods anymore in this case --> method can be removed Marcus
Trivial improvement of the day:
simplify #allSelectorsInProtocol: https://github.com/pharo-project/pharo/pull/3647
has been merged.
Trivial thing to do for someone else:
#zapAllMethods can be removed https://github.com/pharo-project/pharo/issues/3656
was done (not by me!) and merged! Trivial thing done today: simplify allUnreferencedClassVariables https://github.com/pharo-project/pharo/issues/3661 this is a nice example how other trivial unimportant changes make things trivial that where not trivial before. After - adding #isReferenced for class variables (https://github.com/pharo-project/pharo/pull/3653) - adding #allClassVariables for classes (https://github.com/pharo-project/pharo/pull/3658) this was trivial. So I guess doing trivial things (that you might think are not important because they are oh so trivial) actually have the effect to make something trivial that was not trivial before? That is odd⦠Trivial thing for someone else to do: fix typo in Welcome bot message: ârunnâ https://github.com/pharo-project/pharo/issues/3696 One of the welcome bot messages has a typo: ârunn" should be ârun" This needs to be fixed here: https://github.com/pharo-project/pharo/blob/Pharo8.0/.github/config.yml the file can be edited right from the GitHub interface Marcus
Can we define a tag for such issues ? On Fri, Jun 28, 2019 at 9:37 PM Marcus Denker <marcus.denker@inria.fr> wrote:
Trivial improvement of the day:
simplify #allSelectorsInProtocol: https://github.com/pharo-project/pharo/pull/3647
has been merged.
Trivial thing to do for someone else:
#zapAllMethods can be removed https://github.com/pharo-project/pharo/issues/3656
was done (not by me!) and merged!
Trivial thing done today:
simplify allUnreferencedClassVariables https://github.com/pharo-project/pharo/issues/3661
this is a nice example how other trivial unimportant changes make things trivial that where not trivial before. After - adding #isReferenced for class variables ( https://github.com/pharo-project/pharo/pull/3653) - adding #allClassVariables for classes ( https://github.com/pharo-project/pharo/pull/3658)
this was trivial. So I guess doing trivial things (that you might think are not important because they are oh so trivial) actually have the effect to make something trivial that was not trivial before? That is oddâ¦
Trivial thing for someone else to do:
fix typo in Welcome bot message: ârunnâ https://github.com/pharo-project/pharo/issues/3696
One of the welcome bot messages has a typo: ârunn" should be ârun"
This needs to be fixed here:
https://github.com/pharo-project/pharo/blob/Pharo8.0/.github/config.yml
the file can be edited right from the GitHub interface
Marcus
-- Serge Stinckwic âhâ Int. Research Unit on Modelling/Simulation of Complex Systems (UMMISCO) âSorbonne University (SU) French National Research Institute for Sustainable Development (IRD)â U âniversity of Yaoundé Iâ, Cameroon "Programs must be written for people to read, and only incidentally for machines to execute." https://twitter.com/SergeStinckwich â
For the ones I add for other to do I put the âEasyâ tag and add them to this GitHub project (kanban board): https://github.com/orgs/pharo-project/projects/8 <https://github.com/orgs/pharo-project/projects/8>
On 29 Jun 2019, at 18:11, Serge Stinckwich <serge.stinckwich@gmail.com> wrote:
Can we define a tag for such issues ?
On Fri, Jun 28, 2019 at 9:37 PM Marcus Denker <marcus.denker@inria.fr <mailto:marcus.denker@inria.fr>> wrote:
Trivial improvement of the day:
simplify #allSelectorsInProtocol: https://github.com/pharo-project/pharo/pull/3647 <https://github.com/pharo-project/pharo/pull/3647>
has been merged.
Trivial thing to do for someone else:
#zapAllMethods can be removed https://github.com/pharo-project/pharo/issues/3656 <https://github.com/pharo-project/pharo/issues/3656>
was done (not by me!) and merged!
Trivial thing done today:
simplify allUnreferencedClassVariables https://github.com/pharo-project/pharo/issues/3661 <https://github.com/pharo-project/pharo/issues/3661>
this is a nice example how other trivial unimportant changes make things trivial that where not trivial before. After - adding #isReferenced for class variables (https://github.com/pharo-project/pharo/pull/3653 <https://github.com/pharo-project/pharo/pull/3653>) - adding #allClassVariables for classes (https://github.com/pharo-project/pharo/pull/3658 <https://github.com/pharo-project/pharo/pull/3658>)
this was trivial. So I guess doing trivial things (that you might think are not important because they are oh so trivial) actually have the effect to make something trivial that was not trivial before? That is oddâ¦
Trivial thing for someone else to do:
fix typo in Welcome bot message: ârunnâ https://github.com/pharo-project/pharo/issues/3696 <https://github.com/pharo-project/pharo/issues/3696>
One of the welcome bot messages has a typo: ârunn" should be ârun"
This needs to be fixed here:
https://github.com/pharo-project/pharo/blob/Pharo8.0/.github/config.yml <https://github.com/pharo-project/pharo/blob/Pharo8.0/.github/config.yml>
the file can be edited right from the GitHub interface
Marcus
-- Serge Stinckwicâhâ Int. Research Unit on Modelling/Simulation of Complex Systems (UMMISCO) âSorbonne University (SU) French National Research Institute for Sustainable Development (IRD)â Uâniversity of Yaoundé Iâ, Cameroon "Programs must be written for people to read, and only incidentally for machines to execute." https://twitter.com/SergeStinckwich <https://twitter.com/SergeStinckwich> â
On 1 Jul 2019, at 08:45, Marcus Denker <marcus.denker@inria.fr> wrote:
For the ones I add for other to do I put the âEasyâ tag and add them to this GitHub project (kanban board):
Small fix Friday: ============= 3700-simplify-allUnreferencedInstanceVariables https://github.com/pharo-project/pharo/pull/3701/files same idea as the class vars, now that variables are object, bit strings, we can implement it simply as: ^self allSlots reject: [:slot | slot isReferenced] (and it will returns object, that e.g. know the class they are declared in) Saturday ======= I did one of the simple ones posted the day before: 3630-small-cleanup-traits-in-Behaviour-isComposedBy-move-to-traits https://github.com/pharo-project/pharo/pull/3704 Then I did a small (one var added, two lines changed)l, but definitely not trivial improvement: SystemDictionary: add a cache for allBehaviors https://github.com/pharo-project/pharo/issues/3702 Right now SystemDictionary caches names, we should cache Objects instead. this is the first step. And it enables Sunday =================== speedup "implementors of https://github.com/pharo-project/pharo/pull/3711 With the allBehaviors cache, we can radically simplify (and speedup!) a lot of code used very very often. [#name implementors] bench before: "'69.688 per second'" after: "'119.385 per second'" The new implementation is this: SystemNavigation>>allImplementorsOf: aSelector "Answer all the methods that implement the message aSelector." ^self allBehaviors select: [:class | class includesSelector: aSelector] thenCollect: [:class | (class>>aSelector) methodReference ] This #allBehaviors cache will allow many more simplifications (check senders of #allBehaviorsDo:) e.g. for today, I did two as part of this (isUnsentMessage: and allPrimitiveMethods): https://github.com/pharo-project/pharo/pull/3725/files Marcus
On 1 Jul 2019, at 09:59, Marcus Denker <marcus.denker@inria.fr> wrote:
On 1 Jul 2019, at 08:45, Marcus Denker <marcus.denker@inria.fr> wrote:
For the ones I add for other to do I put the âEasyâ tag and add them to this GitHub project (kanban board):
And two issue for someone to do: - allBehaviorsDo: can now use the cached allBehaviors https://github.com/pharo-project/pharo/issues/3726 simple, but quite some impact (we should of course refactor all the senders of allBehaviorsDo: later as they now can be transformed to use collection methods and be even faster then do:â¦) and a slightly harder one: add #whichMethodsReferTo: https://github.com/pharo-project/pharo/issues/3727 nearly all clients of thoroughWhichSelectorsReferTo: are interested in the methods, not the selector. we should add #whichMethodsReferTo: and rewrite the clients to use that instead. Marcus
On 26 Jun 2019, at 08:16, Marcus Denker <marcus.denker@inria.fr> wrote:
Hi,
I have started again to do one absolutely trivial improvement every week-day.
Small cleanup of the day: ⢠deprecate #allLocalCallsOn:ofClass: in SystemNavigation, implement it in ClassDescription>>allLocalCallsOn: ⢠add withAllSuperAndSubclasses, use it in #allInstVarNamesEverywhere ⢠simplify allLocalCallsOn: to use allInstVarNamesEverywhere and flatCollect Review needed: https://github.com/pharo-project/pharo/pull/3733/files Marcus
On 2 Jul 2019, at 07:35, Marcus Denker <marcus.denker@inria.fr> wrote:
On 26 Jun 2019, at 08:16, Marcus Denker <marcus.denker@inria.fr> wrote:
Hi,
I have started again to do one absolutely trivial improvement every week-day.
Simple improvement done: Simplify and speedup CompiledMethod>>#overriddenMethods https://github.com/pharo-project/pharo/pull/3746/files New simple issue to do: browseAllCallsOnClass: should not call asSortedCollection https://github.com/pharo-project/pharo/issues/3747
On 2 Jul 2019, at 07:35, Marcus Denker <marcus.denker@inria.fr> wrote:
On 26 Jun 2019, at 08:16, Marcus Denker <marcus.denker@inria.fr> wrote:
Hi,
I have started again to do one absolutely trivial improvement every week-day.
Trivial cleanup of the day: remove 3 methods that make no sense in RPackage https://github.com/pharo-project/pharo/pull/3759 review needed Marcus
Hey YOU, YES YOU ! it was in 2017 when I asked people here on this list to help cleaning and raise the quality level of our Pharo system: http://forum.world.st/Pharo-Quality-raising-the-quality-level-in-Pharo-7-and... I not only talked. I took action - meanwhile with around 658 (!) sometimes very trivial changes to get Pharo 7 and 8 into a cleaner state (https://github.com/astares/pharo/branches) One step at a time ... evening per evening, week per week. Sometimes there was a minute - sometimes not. And yes: Pharo already became cleaner with small contributions from my and many others contributors side. Pharo now already feels a little bit better - has class and test comments, more aligned packages, fixed categories, less typos, cleaner and more understandable code and more rules to hopefully keep that quality level. What if YOU, YES YOU would also step in and also apply simple or complex fixes and cleanups on internal and also external packages? You could also help with documentation or feedback on what is working and what not. If we all clean the house TOGETHER the next guest would feel already more comfortable and also try not to wear his dirty shoes... I also intentionally opened one single trivial issue without fixing it myself. Now today this issue got somehow "famous" on Twitter: https://twitter.com/marcusdenker/status/1148287564937400321 and YOU can get famous for FIXING or REVIEWING this single issue too. Or you can help with many others that are left either here: https://github.com/orgs/pharo-project/projects/8 or here: https://github.com/pharo-project/pharo/issues Jump in - the water is just fine! Bye Torsten (aka "astares" on Discord)
nice email :) Just helping reviewing PR is a nice action. I do that systematically and I enjoy it. Tx!
On 8 Jul 2019, at 21:25, Torsten Bergmann <astares@gmx.de> wrote:
Hey YOU, YES YOU !
it was in 2017 when I asked people here on this list to help cleaning and raise the quality level of our Pharo system: http://forum.world.st/Pharo-Quality-raising-the-quality-level-in-Pharo-7-and...
I not only talked. I took action - meanwhile with around 658 (!) sometimes very trivial changes to get Pharo 7 and 8 into a cleaner state (https://github.com/astares/pharo/branches)
One step at a time ... evening per evening, week per week. Sometimes there was a minute - sometimes not.
And yes: Pharo already became cleaner with small contributions from my and many others contributors side. Pharo now already feels a little bit better - has class and test comments, more aligned packages, fixed categories, less typos, cleaner and more understandable code and more rules to hopefully keep that quality level.
What if YOU, YES YOU would also step in and also apply simple or complex fixes and cleanups on internal and also external packages? You could also help with documentation or feedback on what is working and what not.
If we all clean the house TOGETHER the next guest would feel already more comfortable and also try not to wear his dirty shoes...
I also intentionally opened one single trivial issue without fixing it myself. Now today this issue got somehow "famous" on Twitter: https://twitter.com/marcusdenker/status/1148287564937400321
and YOU can get famous for FIXING or REVIEWING this single issue too.
Or you can help with many others that are left either here: https://github.com/orgs/pharo-project/projects/8 or here: https://github.com/pharo-project/pharo/issues
Jump in - the water is just fine!
Bye Torsten (aka "astares" on Discord)
participants (5)
-
ducasse -
Marcus Denker -
Myroslava Romaniuk -
Serge Stinckwich -
Torsten Bergmann