Participate to the Magic Literal XP

SD
Stéphane Ducasse
Tue, Apr 21, 2020 3:19 PM

Dear all,

We are running a large XP for a research around Magic Literals.

A magic literal is a literal (number, booleans,…) that is used to denote something but that it not immediately obvious 
to the code reader: it can be for example a number but could be also a string, a character or boolean (this is what we want to discover).

When you read the code you should be puzzled by the usage of this magic encoding and this is what 
we want to understand and that you report to use using a special tool.

Now identifying magic literal is not easy and we want to measure them.
We already did a publication at ESUG last year (but we only did an XP with 100 methods) and now we want to go the world. If you want to read it
https://hal.inria.fr/hal-02266137/document

Our idea is to have result first in Smalltalk and then, only then check with Java :).
But for that we should show to the world that we did a large XP.  So we build one and now we need you to help.

First we need to evaluate the situation and understand the different cases, as not all literals are "magic".
You can help us in this. It can take you 30 min for one experience.

In the shared directory
https://www.dropbox.com/sh/ag94vutsrtcs0n9/AAAEkpB2onlWpcFLqLPKOpOaa https://www.dropbox.com/sh/ag94vutsrtcs0n9/AAAEkpB2onlWpcFLqLPKOpOaa
there are images for different experiments (on whole Pharo, on Roassal, Polymath, VM maker, Seaside project, …)
We want to compare the analysis of an expert and an external person on a domain this is why we will cross comparison
between roassal expert and roassal newbie (same for Seaside, Polymath, VMMaker)

These images contain the code and the tool for the experiment and they should be open with Pharo80 you can get
from http://www.pharo.org

To participate in the experiment:

From the list grab an inspector and execute MLSExperimentPresenter openOnSample: self ' with the batch you chose as argument

You should get the following tool (with different colors :) - yes that theme is funky)
.

  • Step 5. decide whether each literal presented is Magic or not (unabling ‘Hide completed' can help)

    Remember: 'A magic literal is a literal (number, booleans,…) that is used to denote something but that it not immediately obvious
    to the code reader'

  • Step 6. completing one experiment should take less than 30 minutes

  • Step 7.  when done, save the result (button at the bottom of MLSExperimentPresenter)

    • this will give a STON file named after your batch.
  • Step 8. You need to send us this file (email at  nicolas.anquetil@inria.fr mailto:nicolas.anquetil@inria.fr)

Your identity will be discarded from the data (anonymous answers). But we will owe you a beer at ESUG or Pharodays :)
We will use it only to assess your expertise in Pharo and/or the project evaluated.

Many thanks for your help in improving pharo and our understanding of the literals (magic or not)

Nicolas, Stephane, Julien, Christopher and Oleksandr


Stéphane Ducasse
http://stephane.ducasse.free.fr / http://www.pharo.org
03 59 35 87 52
Assistant: Julie Jonas
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

Dear all, We are running a large XP for a research around Magic Literals. A magic literal is a literal (number, booleans,…) that is used to denote something but that it not immediately obvious to the code reader: it can be for example a number but could be also a string, a character or boolean (this is what we want to discover). When you read the code you should be puzzled by the usage of this magic encoding and this is what we want to understand and that you report to use using a special tool. Now identifying magic literal is not easy and we want to measure them. We already did a publication at ESUG last year (but we only did an XP with 100 methods) and now we want to go the world. If you want to read it https://hal.inria.fr/hal-02266137/document Our idea is to have result first in Smalltalk and then, only then check with Java :). But for that we should show to the world that we did a large XP. So we build one and now we need you to help. First we need to evaluate the situation and understand the different cases, as not all literals are "magic". You can help us in this. It can take you 30 min for one experience. In the shared directory https://www.dropbox.com/sh/ag94vutsrtcs0n9/AAAEkpB2onlWpcFLqLPKOpOaa <https://www.dropbox.com/sh/ag94vutsrtcs0n9/AAAEkpB2onlWpcFLqLPKOpOaa> there are images for different experiments (on whole Pharo, on Roassal, Polymath, VM maker, Seaside project, …) We want to compare the analysis of an expert and an external person on a domain this is why we will cross comparison between roassal expert and roassal newbie (same for Seaside, Polymath, VMMaker) These images contain the code and the tool for the experiment and they should be open with Pharo80 you can get from http://www.pharo.org To participate in the experiment: - Step 1. go to the document https://docs.google.com/spreadsheets/d/1DrjXcfuR8Ja_7luknUUfijO8wzYYaJ2ZP_pOE0zqAPM/edit?usp=sharing <https://docs.google.com/spreadsheets/d/1DrjXcfuR8Ja_7luknUUfijO8wzYYaJ2ZP_pOE0zqAPM/edit?usp=sharing> - Step 2. select one experiment to do (for example put your name in the column 'Doing’) add your expertise to the sheet - Step 3. please select the experiments in numerical order, e.g. do the Pharo-1 experiment before the Pharo-2 one. Note that a Lot will contain also some other methods because we are mixing methods to collect more information so do not be surprised to see other methods that Polymath’s ones in the polymath XP. - Step 4. Get the tool on the experiment. From the list grab an inspector and execute MLSExperimentPresenter openOnSample: self ' with the batch you chose as argument You should get the following tool (with different colors :) - yes that theme is funky) . - Step 5. decide whether each literal presented is Magic or not (unabling ‘Hide completed' can help) Remember: 'A magic literal is a literal (number, booleans,…) that is used to denote something but that it not immediately obvious to the code reader' - Step 6. completing one experiment should take less than 30 minutes - Step 7. when done, save the result (button at the bottom of MLSExperimentPresenter) - this will give a STON file named after your batch. - Step 8. You need to send us this file (email at nicolas.anquetil@inria.fr <mailto:nicolas.anquetil@inria.fr>) Your identity will be discarded from the data (anonymous answers). But we will owe you a beer at ESUG or Pharodays :) We will use it only to assess your expertise in Pharo and/or the project evaluated. Many thanks for your help in improving pharo and our understanding of the literals (magic or not) Nicolas, Stephane, Julien, Christopher and Oleksandr -------------------------------------------- Stéphane Ducasse http://stephane.ducasse.free.fr / http://www.pharo.org 03 59 35 87 52 Assistant: Julie Jonas 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