Pharo-dev
By thread
pharo-dev@lists.pharo.org
By month
Messages by month
- ----- 2026 -----
- August
- 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
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- 1 participants
- 144613 messages
Re: [Pharo-dev] Zero Conf for Windows 10
by vincent.blondeau@polytech-lille.net
Yes It works thanks!
But, it is still not an optimal solution because you need to install git bash and in windows bash scripts you have to mix with git bash commands.
Thanks,
Vincent
From: Pharo-dev On Behalf Of Christopher Fuhrman
Sent: Wednesday, 11 September 2019 13:31
To: Pharo Development List <pharo-dev(a)lists.pharo.org>
Subject: Re: [Pharo-dev] Zero Conf for Windows 10
Did you try it in git bash (after installing git on Windows)? Git bash has a lot of support (I think I used zeroconf that way before moving to WSL), although it is not as much as cygwin.
On Wed, Sep 11, 2019, 05:53 <vincent.blondeau(a)polytech-lille.net <mailto:vincent.blondeau@polytech-lille.net> > wrote:
Hi all,
I wanted to try to get a Pharo image (the headless one to try the new gtk binding) through the Pharo Zero conf on a Windows 10 machine.
So, I ran in the Powershell and the cmd: curl https://get.pharo.org/64/vmHeadlessLatest80 | bash
But bash is not recognized under windows, so you end by looking into the http://files.pharo.org and look tediously for the vm or the image you are looking for.
I was wondering if there are some projects aiming to use the windows cmd or powershell for zeroconf. Otherwise, what will be the cost to do it?
(Of course, I could install Cygwin or MinCw (with some additional packages like unzip which is not in the default configuration), but the goal here is to have it on the shelf).
Thanks,
Vincent
Sept. 11, 2019
Re: [Pharo-dev] Zero Conf for Windows 10
by Christopher Fuhrman
Did you try it in git bash (after installing git on Windows)? Git bash has
a lot of support (I think I used zeroconf that way before moving to WSL),
although it is not as much as cygwin.
On Wed, Sep 11, 2019, 05:53 <vincent.blondeau(a)polytech-lille.net> wrote:
> Hi all,
>
>
>
> I wanted to try to get a Pharo image (the headless one to try the new gtk
> binding) through the Pharo Zero conf on a Windows 10 machine.
>
> So, I ran in the Powershell and the cmd: curl
> https://get.pharo.org/64/vmHeadlessLatest80 | bash
>
> But bash is not recognized under windows, so you end by looking into the
> http://files.pharo.org and look tediously for the vm or the image you are
> looking for.
>
>
>
> I was wondering if there are some projects aiming to use the windows cmd
> or powershell for zeroconf. Otherwise, what will be the cost to do it?
>
>
>
> (Of course, I could install Cygwin or MinCw (with some additional packages
> like unzip which is not in the default configuration), but the goal here is
> to have it on the shelf).
>
>
>
>
>
> Thanks,
>
>
>
> Vincent
>
Sept. 11, 2019
Re: [Pharo-dev] Allow selected special characters as part of unary and keyword selectors?
by Gabriel Cotelli
Using ? for unary messages does not compose so well when you want to do
some logical conditions.
For example
self isClass? or: [ self isTrait? ] . It's readable, but probably you want
the ? just at the end of the sentence.
For ! one use case is to use it for factorial, like we do in Math. So 5 !
--> 120.
Also I don't know any good use case for ! as binary selector.
? has only one implementor in the Pharo image in some Url related code for
query parameters.
BTW, still using * for multiplication feels so 90's. :)
On Wed, Sep 11, 2019 at 4:10 AM ducasse <stepharo(a)netcourrier.com> wrote:
>
>
> > On 11 Sep 2019, at 04:07, James Foster <Smalltalk(a)JGFoster.net> wrote:
> >
> > Would use of ? and ! in unary/keyword selectors be convention or somehow
> required? If simply convention, then we should start with renaming testing
> methods to be named is* or has*.
> > flag1 := anInteger even. ânot good"
> > flag2 := anInteger isEven. âbetter"
> > flag3 := anInteger even?. âhow much better?â
> > flag4 := #(1 2 3) includes?: 2. âhow much better?â
>
> I think that I would use ? mainly for unary message
>
> Now Iâm sure that if you look carefully some people use
>
> include
> for the action
> includes
> for the tests
>
> I took include as an example and this is super not intention revealing.
>
> >> lineUpBlockBrackets
>
> lineUpBlockBrackets?
> Now I will rewrite them all as shouldLineUpBlockBrackets or
> isLineUpBlockBrackets and to me for unary message ? makes it a lot better.
>
> > Iâm not convinced that having another way to indicate a testing method
> will help if people still donât name methods well.
> >
> > Also, can you give an example of where ! would clarify the meaning? Are
> you thinking of the following:
> > myPoint x!: 3.
> > myArray at: 1 put!: nil.
> > Those donât seem to be much improved!
>
> Pay attention you cannot use ! as separator.
> For ! I do not care now.
>
> > Iâm not arguing for âcompatibility" or "staying in the past." Iâm just
> trying to understand the benefit.
>
> The question ?
>
> >
> > Thanks,
> >
> > James
> >
> >> On Sep 10, 2019, at 1:14 PM, ducasse <stepharo(a)netcourrier.com> wrote:
> >>
> >> I would love to retract ? and ! from the list of binary selectors.
> >> Iâm super super frustrated that predicates cannot be easily
> identifiable.
> >>
> >> for example is
> >> lineUpBlockBrackets an action or a testing method.
> >>
> >> I think that we are trapped in mistakes from the past.
> >> In racket and scheme and I guess ruby too we can use ? in the method
> and
> >> this change the game.
> >>
> >> self lineUpBlockBrackets?
> >>
> >> We have plenty of binary selector parts that are not used and think
> that
> >> it is frustrating.
> >>
> >> Let us check:
> >>
> >> Character specialCharacters
> >>
> >> '+-/\*~<>=@,%|&?!·÷±Ã'
> >>
> >> +
> >> -
> >> /
> >> \
> >> ~
> >> <
> >>>
> >> =
> >> @
> >> ,
> >> &
> >> |
> >> %
> >>
> >> those are ok
> >>
> >> I have no idea what is · nor how to type it.
> >> ÷ looks from the past.
> >> ± so funny
> >> à no idea what it is andâ¦.
> >>
> >> Then we have two that could really improve our language
> >> ? and !
> >>
> >> Do not tell me that there is a value in these selectors?
> >>
> >>
> >> (#(#+ #- #/ #\ #* #~ #< #> #= #@ #, #% #| #& #? #!) combinations
> >> select: [ :each | each size = 3 and: [ each includesAnyOf: #(#?
> #!) ] ]) collect: [ :each | each first, each second, each third ]
> >>
> >> #(#'+-?' #'+-!' #'+/?' #'+/!' #'+\?' #'+\!' #'+*?' #'+*!' #'+~?' #'+~!'
> #'+<?' #'+<!' #'+>?' #'+>!' #'+=?' #'+=!' #'+@?' #'+@!' #'+,?' #'+,!'
> #'+%?' #'+%!' #'+|?' #'+|!' #'+&?' #'+&!' #'+?!' #'-/?' #'-/!' #'-\?'
> #'-\!' #'-*?' #'-*!' #'-~?' #'-~!' #'-<?' #'-<!' #'->?' #'->!' #'-=?'
> #'-=!' #'-@?' #'-@!' #'-,?' #'-,!' #'-%?' #'-%!' #'-|?' #'-|!' #'-&?'
> #'-&!' #'-?!' #'/\?' #'/\!' #'/*?' #'/*!' #'/~?' #'/~!' #'/<?' #'/<!'
> #'/>?' #'/>!' #'/=?' #'/=!' #'/@?' #'/@!' #'/,?' #'/,!' #'/%?' #'/%!'
> #'/|?' #'/|!' #'/&?' #'/&!' #'/?!' #'\*?' #'\*!' #'\~?' #'\~!' #'\<?'
> #'\<!' #'\>?' #'\>!' #'\=?' #'\=!' #'\@?' #'\@!' #'\,?' #'\,!' #'\%?'
> #'\%!' #'\|?' #'\|!' #'\&?' #'\&!' #'\?!' #'*~?' #'*~!' #'*<?' #'*<!'
> #'*>?' #'*>!' #'*=?' #'*=!' #'*@?' #'*@!' #'*,?' #'*,!' #'*%?' #'*%!'
> #'*|?' #'*|!' #'*&?' #'*&!' #'*?!' #'~<?' #'~<!' #'~>?' #'~>!' #'~=?'
> #'~=!' #'~@?' #'~@!' #'~,?' #'~,!' #'~%?' #'~%!' #'~|?' #'~|!' #'~&?'
> #'~&!' #'~?!' #'<>?' #'<>!' #'<=?' #'<=!' #'<@?' #'<@!' #'<,?' #'<,!'
> #'<%?' #'<%!' #'<|?' #'<|!' #'<&?' #'<&!' #'<?!' #'>=?' #'>=!' #'>@?'
> #'>@!' #'>,?' #'>,!' #'>%?' #'>%!' #'>|?' #'>|!' #'>&?' #'>&!' #'>?!'
> #'=@?' #'=@!' #'=,?' #'=,!' #'=%?' #'=%!' #'=|?' #'=|!' #'=&?' #'=&!'
> #'=?!' #'@,?' #'@,!' #'@%?' #'@%!' #'@|?' #'@|!' #'@&?' #'@&!' #'@?!'
> #',%?' #',%!' #',|?' #',|!' #',&?' #',&!' #',?!' #'%|?' #'%|!' #'%&?'
> #'%&!' #'%?!' #'|&?' #'|&!' #'|?!' #'&?!â)
> >>
> >> may be this one #&?! is useful for WTF!
> >>
> >> And because of that we sacrifice having nice method names!
> >> I really think that we should change that.
> >>
> >> S.
> >>
> >>
> >>
> >>
> >
> >
>
>
>
>
Sept. 11, 2019
[Pharo 8.0] Build #724: 4287-Integrate-Ring2
by ci-pharo-ci-jenkins2@inria.fr
There is a new Pharo build available!
The status of the build #724 was: SUCCESS.
The Pull Request #4290 was integrated: "4287-Integrate-Ring2"
Pull request url: https://github.com/pharo-project/pharo/pull/4290
Issue Url: https://github.com/pharo-project/pharo/issues/4287
Build Url: https://ci.inria.fr/pharo-ci-jenkins2/job/Test%20pending%20pull%20request%2…
Sept. 11, 2019
PhD position
by Jannik Laval
[Apologies for Cross-Posting]
Dear all,
At DISP Lab, at Lyon, France, we have a PhD opening on « Ensuring Interoperability for "smart" information systems". More information are following.
What is important is that all the development will be done using Pharo/Moose.
If you are interested, please contact me by answering this mail.
=====
Ph.D. thesis (CIFRE)
Berger Levrault and DISP Lab, Lyon, France
Title: Ensuring Interoperability for "smart" information systems
Enterprise: Berger Levrault
Research Laboratory: DISP Lab
Where: Lyon, France
Recruitment date: As soon as possible
Application deadline: As soon as possible
Function: 3 years PhD candidate position in Berger Levrault (CDI). The position will be part time between Berger Levrault and DISP Lab.
Research topic : data interoperability, application exchange protocols, service-oriented architecture, event architecture, semantics, monitoring.
Context:
The need for sharing, exchanging and promoting information from information systems is constantly increasing and now represents a major concern in the various reforms of the local public sector (consolidation of local authorities, implementation of in place in 2016 Hospital Group Territory, Digital Republic). It is therefore essential to design "platforms" capable of providing answers to the rationalisation and simplification of data exchanges between software applications and with the outside world to promote and simplify the application of all these reforms.
In addition, service-oriented architectures and event architectures (SOA, EDA) are mature and widely used. At Berger-Levrault, their implementation ensures the scalability and maintainability of solutions. These architectures are characterised by the flexibility and the loose coupling of the subsystems that compose them (ie services, applications, IS ...) and rely on several means (Hohpe & Woolf, 2004) to route the data within this network of systems communicating. At this stage of maturity, we observe that these data exchanges are operational and meet the requirements of interoperability between heterogeneous systems (Leal, 2019).
Nevertheless, the number of standards recognised and used by the French public sector, the privileged sector of Berger-Levrault, increases the level of interconnection difficulties (Kurniawan & Ashari, 2015) of the different solutions developed by Berger-Levrault. This is all the more remarkable when it comes to communicating with external solutions or platforms (partners and / or competitors). This multiplicity of exchanges and types of exchanges generates a great deal of complexity and highlights the need to master the exchange system as effectively as possible. Berger Levraut today lacks visibility on existing exchanges and mechanisms to evaluate them (Leal, Guédria, & Panetto, 2019) which complicates the detection of dysfunctions and the discovery of their origins.
Moreover, it is essential for the Berger-Levrault applications to be able to adapt to the new rules and standards while continuing to integrate the dematerialization of the public service. The evolution of these modalities has an almost systematic impact on the exchange of data put in place to ensure interoperability. Hence the need to build flexible and scalable exchange architectures and to follow the evolution of these exchanges.
These transformations imply a large volume of data exchanged and subject to variations that can be strong during periods of "high attendance" such as elections by electronic vote. The very nature of exchanges can be affected especially with the multiplicity of connected objects (Buyya & Dastjerdi, 2016). These are increasingly used by public institutions for the benefit of the management of city facilities or user services. The increase in volumes of data exchanged therefore implies the implementation of exchange architectures that are able to support the load but also the great variability of the types and frequencies of data production. This requires distributed architectures (in infrastructure and flow), adaptable or even self-adaptable (Gascon-Samson et al 2015) to promote the system's resistance to faults while avoiding potential congestion phenomena.
Based on this reflection, a research project was conducted in partnership by Berger-Levrault and the DISP laboratory (Amokrane et al., 2018). These early works have identified a set of scientific and technical barriers:
⢠Lack of visibility on existing interoperability exchanges. Indeed, the current exchanges are not traced and the existing monitoring mechanisms focus mainly on low level information, such as the performance of the infrastructure or the use of the memory, without correlation with business information. In addition, few methods for evaluating interoperability are concerned with the effective evaluation (a posteriori of the implementation) of the interoperability of the data, and few of them are tooled (Leal, Guédria, & Panetto, 2019).
⢠The complexity of trade maintenance. This is due to the lack of traceability of the exchanges, on the one hand, and that of the evolution of the exchange architecture configurations on the other hand. This complicates the identification of failures or dysfunctions and the analysis of their causes, and poses difficulties for the setting up of mechanisms of alerts or significant notifications. In addition, the lack of capitalisation of information relating to trade does not allow to consider a forecast maintenance.
⢠The development of the different modules of the exchange system is manual and the remediation of malfunctions is done in an ad hoc manner. In addition to the cost of development and correction that this implies, this does not meet the responsiveness requirements of some business areas. Hence the need to build adaptable exchange systems using dynamic interoperability hubs (Agostinho, et al., 2016).
The objective of this thesis proposal is to produce an approach to the implementation cycle of application exchanges, from design to maintenance, which will enhance the reliability and resilience of the interoperability exchange system. The solution will ultimately orchestrate all the application and service exchanges to ensure optimisation of the use of software and infrastructure resources of public institutions.
To meet the needs in terms of interoperability, the work to be carried out is articulated in two axes that we structure as follows:
- A flexible architecture for the implementation of interoperability. Here we consider the basic functionalities reflecting the activities necessary for the establishment of the means of interoperability.
- A reflexive architecture for managing interoperability at a meta-level. This axis relates to setting up means of administration, monitoring and maintenance of the exchange network set up for interoperability.
The work must also incorporate the concepts of security, scalability and usability. Requirements to be met when developing any solution to lift the locks and meet the objectives of this thesis work.
-----
Agostinho, C., Ducq, Y., Zacharewicz, G., Sarraipa, J., Lampathaki, F., Poler, R., & Jardim-Goncalves, R. (2016). Towards a sustainable interoperability in networked enterprise information systems: Trends of knowledge and model-driven technology. Computers in Industry, 79, 64 - 76. doi:10.1016/j.compind.2015.07.001
Al-Dhuraibi, Y., Paraiso, F., Djarallah, N., & Merle, P. (2017). Elasticity in cloud computing: state of the art and research challenges. IEEE Transactions on Services Computing, (pp. 430-447).
Amokrane, N., Laval, J., Lanco, P., Derras, M., & Moalla, N. (2018). Analysis of Data Exchanges, Contribution to Data Interoperability Assessment. 9th international Conference on Intelligent Systems 2018. Madeira, Portugal.
Andary, J. F., & Sage, A. P. (2010). The role of service oriented architectures in systems engineering. Information Knowledge Systems Management, 9(1), 47-74.
Belfadel, A., Laval, J., Cherifi, C., & Moalla, N. (2018). Towards service orchestration through software capability profile. I-ESA Interoperability for Enterprise Systems and Applications 2018. Berlin, Germany.
Bernus, P., Goranson, T., Gøtze, J., Jensen-Waud, A., Kandjani, H., Molina, A., . . . Turner, P. (2016). Enterprise engineering and management at the crossroads. Computers in Industry, 79, 87 - 102. doi:10.1016/j.compind.2015.07.010
Buyya, R., & Dastjerdi, A. V. (2016). Internet of Things: Principles and paradigms. Elsevier.
Cabot, J., Clarisó, R., Brambilla, M., & Gérard, S. (2017). Cognifying model-driven software engineering. Federation of International Conferences on Software Technologies: Applications and Foundations (pp. pp. 154-160). Springer.
Chappell, D. (2004). Enterprise Service Bus. : O'Reilly Media, Inc.
Cheung, A. K., & Jacobsen, H. A. (2010). Load balancing content-based publish/subscribe systems. ACM Transactions on Computer Systems (TOCS).
Chhun, S., Moalla, N., & Ouzrout, Y. (2016). QoS ontology for service selection and reuse. Journal of Intelligent Manufacturing, 27(1), 187-199.
Crosby, M., Pattanayak, P., Verma, S., & Kalyanaraman, V. (2016). Blockchain technology: Beyond bitcoin. Applied Innovation, 2(6-10).
Curry, E. (2004). Message-oriented middleware, Middleware for communications,.
Czarnecki, K., Eisenecker, U., Glück, R., Vandevoorde, D., & Veldhuizen, T. (2000). Generative programming and active libraries. Generic Programming (pp. pp. 25-39). Berlin, Heidelberg.: Springer.
Erl, T. (2005). Service-oriented architecture: concepts, technology, and design. Prentice Hall Professional Technical Reference.
Fahad, M., Moalla, N., & Bouras, A. (2012). Detection and resolution of semantic inconsistency and redundancy in an automatic ontology merging system. Journal of Intelligent Information Systems, 39(2), 535-557.
Fahad, M., Moalla, N., Bouras, A., Abdul Qadir, M., & Farukh, M. (2011). Towards Classification of Web Ontologies for the Emerging Semantic Web. Journal of Universal Computer Science, 17(7), 1021-1042.
Fülöp, L. J., Tóth, G., Rácz, R., Pánczél, J., Gergely, T., Beszédes, A., & Farkas, L. (2010). Survey on complex event processing and predictive analytics. the Fifth Balkan Conference in Informatics, (pp. pp. 26-31).
Gascon-Samson, J., Garcia, F. P., Kemme, B., & Kienzle, J. (2015). Dynamoth: A scalable pub/sub middleware for latency-constrained applications in the cloud. In 2015 IEEE 35th International Conference on Distributed Computing Systems , (pp. pp. 486-496).
Gokhale, A., Schmidt, D. C., Natarajan, B., & Wang, N. (2002). Applying model-integrated computing to component middleware and enterprise applications. Communications of the ACM, (pp. 65-70).
Hachicha, M., Moalla, N., Fahad, M., & Ouzrout, Y. (2015). Performance assessment architecture for collaborative business processes in BPM-SOA based environments. International journal of Data & Knowledge Engineering, 105, 73-89.
Hohpe, G., & Woolf, B. (2004). Enterprise integration patterns: Designing,building, and deploying messaging solutions. Addison-Wesley Professional.
Khare, S., Sun, H., Zhang, K., Gascon-Samson, J., Gokhale, A., Koutsoukos, X., & Abdelaziz, H. (2018). Scalable edge computing for low latency data dissemination in topic-based publish/subscribe. In 2018 IEEE/ACM Symposium on Edge Computing (SEC) (pp. pp. 214-227). IEEE.
Kurniawan, K., & Ashari, A. (2015). Service orchestration using enterprise service bus for real-time government executive dashboard system. 2015 International Conference on Data and Software Engineering (ICoDSE), (pp. 207-212). Yogyakarta. doi:10.1109/ICODSE.2015.7436999
Laval, J., Cherifi, C., & Cheutet, V. (2018). Towards the measurement of Enterprise Information Systems agility to support EIS improving projects. International Journal of Agile Systems and Management, 11(3):222â246.
Leal, G. D. (2019). Support à la décision pour l'analyse de l'interopérabilité des systèmes dans un contexte d'entreprises en réseau. (Doctoral dissertation, Université de Lorraine).
Leal, G., Guédria, W., & Panetto, H. (2019). Interoperability Assessment: A Systematic Literature Review. Computers in Industry (In Press).
Luckham, D. C. (2011). Event processing for business: organizing the real-time enterprise. John Wiley & Sons.
Mallek, S. (2012). Contribution au développement de lâinteropérabilité en entreprise : vers une approche anticipative de détection de problèmes dâinteropérabilité dans des processus collaboratifs.
Object Management Group. (2006). Méta Object Facility (MOF) 2.0 Core Specification.
Panettoa, H., Zdravkovicc, M., Jardim-Goncalvesd, R., Romeroe, D., Cecilg, J., & Mezgárh, I. (2016). New perspective for the future interoperable enterprise systems. Computers in Industry, s.l. : Elsevier, 79, 47-63. doi:10.1016/j.compind.2015.08.001
WSO2. (2015). The Evolution of Integration: A Comprehensive Platform for a Connected Business. White Paper. Récupéré sur http://wso2.com/
--
~~Jannik Laval~~
Enseignant-chercheur
Responsable Pédagogique Licence Coordonnateur de Projet
IUT Lumière, Université Lumière Lyon 2
laboratoire DISP
+33 4 78 77 43 06
http://www.jannik-laval.eu
http://www.phratch.com
http://www.approchealpes.info
Sept. 11, 2019
Zero Conf for Windows 10
by vincent.blondeau@polytech-lille.net
Hi all,
I wanted to try to get a Pharo image (the headless one to try the new gtk binding) through the Pharo Zero conf on a Windows 10 machine.
So, I ran in the Powershell and the cmd: curl https://get.pharo.org/64/vmHeadlessLatest80 | bash
But bash is not recognized under windows, so you end by looking into the http://files.pharo.org and look tediously for the vm or the image you are looking for.
I was wondering if there are some projects aiming to use the windows cmd or powershell for zeroconf. Otherwise, what will be the cost to do it?
(Of course, I could install Cygwin or MinCw (with some additional packages like unzip which is not in the default configuration), but the goal here is to have it on the shelf).
Thanks,
Vincent
Sept. 11, 2019
Re: [Pharo-dev] I have a dream... or why I think that compatibility is an illusion and bring us to the past
by Serge Stinckwich
On Wed, Sep 11, 2019 at 2:14 AM Gabriel Cotelli <g.cotelli(a)gmail.com> wrote:
> Looks like Christmas season opened early this year :)
>
> Jokes aside, I'm in favor of changing some of the characters we use for
> binary selectors to allow it to be used in keyword/unary messages.
>
> I'll include % in that list. For me its more useful as a way to create
> percentages ( 5 % ) than to be used as a binary message for keeping an ugly
> name from C-like languages.
>
> - · is middle dot and it's used in some math operations AFAIR
> - Ã is used in math also (it's used as the multiplication sign for
> scalars, cross product for vectors and cartesian product for sets)
>
> One thing that would be really cool is that we can use the full power of
> Unicode in methods/class names. Projects like polymath and DSLs can clearly
> take advantage of that. Some examples I've just invented, but can be
> supported:
>
>
> -
>
> â from: 1 to: 5 do: [:i | i + i squared ]
> -
>
> 1 ⥠3
> -
>
> â anyIn: #( 1 2 4) such: [:x | x isPrime ]
> -
>
> â
includes: 1
>
>
>
Yes I would like to have something like that for PolyMath :-)
Is it possible to use Unicode characters for identifiers already ?
I working on the port of : https://github.com/len/Domains
to Pharo. The author modify the Cuis parser, so he can do things like that
:
"â is used for direct sums, â for tensor products, Ã for cartesian product,
direct product of groups, ring products, and in general for categorical
products."
and also define ^ as a binary method:
"The ^ (hat) operator is used for exponentiation as well as conjugation by
group elements, and for creating free modules of tuples and matrices."
I'm not sure this is a good idea, because ^ is used also to return values.
A+
--
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
Sept. 11, 2019
Re: [Pharo-dev] Allow selected special characters as part of unary and keyword selectors?
by ducasse
> On 11 Sep 2019, at 04:07, James Foster <Smalltalk(a)JGFoster.net> wrote:
>
> Would use of ? and ! in unary/keyword selectors be convention or somehow required? If simply convention, then we should start with renaming testing methods to be named is* or has*.
> flag1 := anInteger even. ânot good"
> flag2 := anInteger isEven. âbetter"
> flag3 := anInteger even?. âhow much better?â
> flag4 := #(1 2 3) includes?: 2. âhow much better?â
I think that I would use ? mainly for unary message
Now Iâm sure that if you look carefully some people use
include
for the action
includes
for the tests
I took include as an example and this is super not intention revealing.
>> lineUpBlockBrackets
lineUpBlockBrackets?
Now I will rewrite them all as shouldLineUpBlockBrackets or isLineUpBlockBrackets and to me for unary message ? makes it a lot better.
> Iâm not convinced that having another way to indicate a testing method will help if people still donât name methods well.
>
> Also, can you give an example of where ! would clarify the meaning? Are you thinking of the following:
> myPoint x!: 3.
> myArray at: 1 put!: nil.
> Those donât seem to be much improved!
Pay attention you cannot use ! as separator.
For ! I do not care now.
> Iâm not arguing for âcompatibility" or "staying in the past." Iâm just trying to understand the benefit.
The question ?
>
> Thanks,
>
> James
>
>> On Sep 10, 2019, at 1:14 PM, ducasse <stepharo(a)netcourrier.com> wrote:
>>
>> I would love to retract ? and ! from the list of binary selectors.
>> Iâm super super frustrated that predicates cannot be easily identifiable.
>>
>> for example is
>> lineUpBlockBrackets an action or a testing method.
>>
>> I think that we are trapped in mistakes from the past.
>> In racket and scheme and I guess ruby too we can use ? in the method and
>> this change the game.
>>
>> self lineUpBlockBrackets?
>>
>> We have plenty of binary selector parts that are not used and think that
>> it is frustrating.
>>
>> Let us check:
>>
>> Character specialCharacters
>>
>> '+-/\*~<>=@,%|&?!·÷±Ã'
>>
>> +
>> -
>> /
>> \
>> ~
>> <
>>>
>> =
>> @
>> ,
>> &
>> |
>> %
>>
>> those are ok
>>
>> I have no idea what is · nor how to type it.
>> ÷ looks from the past.
>> ± so funny
>> à no idea what it is andâ¦.
>>
>> Then we have two that could really improve our language
>> ? and !
>>
>> Do not tell me that there is a value in these selectors?
>>
>>
>> (#(#+ #- #/ #\ #* #~ #< #> #= #@ #, #% #| #& #? #!) combinations
>> select: [ :each | each size = 3 and: [ each includesAnyOf: #(#? #!) ] ]) collect: [ :each | each first, each second, each third ]
>>
>> #(#'+-?' #'+-!' #'+/?' #'+/!' #'+\?' #'+\!' #'+*?' #'+*!' #'+~?' #'+~!' #'+<?' #'+<!' #'+>?' #'+>!' #'+=?' #'+=!' #'+@?' #'+@!' #'+,?' #'+,!' #'+%?' #'+%!' #'+|?' #'+|!' #'+&?' #'+&!' #'+?!' #'-/?' #'-/!' #'-\?' #'-\!' #'-*?' #'-*!' #'-~?' #'-~!' #'-<?' #'-<!' #'->?' #'->!' #'-=?' #'-=!' #'-@?' #'-@!' #'-,?' #'-,!' #'-%?' #'-%!' #'-|?' #'-|!' #'-&?' #'-&!' #'-?!' #'/\?' #'/\!' #'/*?' #'/*!' #'/~?' #'/~!' #'/<?' #'/<!' #'/>?' #'/>!' #'/=?' #'/=!' #'/@?' #'/@!' #'/,?' #'/,!' #'/%?' #'/%!' #'/|?' #'/|!' #'/&?' #'/&!' #'/?!' #'\*?' #'\*!' #'\~?' #'\~!' #'\<?' #'\<!' #'\>?' #'\>!' #'\=?' #'\=!' #'\@?' #'\@!' #'\,?' #'\,!' #'\%?' #'\%!' #'\|?' #'\|!' #'\&?' #'\&!' #'\?!' #'*~?' #'*~!' #'*<?' #'*<!' #'*>?' #'*>!' #'*=?' #'*=!' #'*@?' #'*@!' #'*,?' #'*,!' #'*%?' #'*%!' #'*|?' #'*|!' #'*&?' #'*&!' #'*?!' #'~<?' #'~<!' #'~>?' #'~>!' #'~=?' #'~=!' #'~@?' #'~@!' #'~,?' #'~,!' #'~%?' #'~%!' #'~|?' #'~|!' #'~&?' #'~&!' #'~?!' #'<>?' #'<>!' #'<=?' #'<=!' #'<@?' #'<@!' #'<,?' #'<,!' #'<%?' #'<%!' #'<|?' #'<|!' #'<&?' #'<&!' #'<?!' #'>=?' #'>=!' #'>@?' #'>@!' #'>,?' #'>,!' #'>%?' #'>%!' #'>|?' #'>|!' #'>&?' #'>&!' #'>?!' #'=@?' #'=@!' #'=,?' #'=,!' #'=%?' #'=%!' #'=|?' #'=|!' #'=&?' #'=&!' #'=?!' #'@,?' #'@,!' #'@%?' #'@%!' #'@|?' #'@|!' #'@&?' #'@&!' #'@?!' #',%?' #',%!' #',|?' #',|!' #',&?' #',&!' #',?!' #'%|?' #'%|!' #'%&?' #'%&!' #'%?!' #'|&?' #'|&!' #'|?!' #'&?!â)
>>
>> may be this one #&?! is useful for WTF!
>>
>> And because of that we sacrifice having nice method names!
>> I really think that we should change that.
>>
>> S.
>>
>>
>>
>>
>
>
Sept. 11, 2019
Re: [Pharo-dev] I have a dream... or why I think that compatibility is an illusion and bring us to the past
by ducasse
> On 11 Sep 2019, at 02:13, Gabriel Cotelli <g.cotelli(a)gmail.com> wrote:
>
> Looks like Christmas season opened early this year :)
>
> Jokes aside, I'm in favor of changing some of the characters we use for binary selectors to allow it to be used in keyword/unary messages.
>
> I'll include % in that list. For me its more useful as a way to create percentages ( 5 % ) than to be used as a binary message for keeping an ugly name from C-like languages.
Can you explain? Because I thought that % was used and right now it is a binary selector so I would not change it.
> · is middle dot and it's used in some math operations AFAIR
> Ã is used in math also (it's used as the multiplication sign for scalars, cross product for vectors and cartesian product for sets)
Yes I know. We can let them rot in peace.
> One thing that would be really cool is that we can use the full power of Unicode in methods/class names. Projects like polymath and DSLs can clearly take advantage of that. Some examples I've just invented, but can be supported:
>
> â from: 1 to: 5 do: [:i | i + i squared ]
> 1 ⥠3
> â anyIn: #( 1 2 4) such: [:x | x isPrime ]
> â
includes: 1
:) Why not :)
For me the first step is to be able to rescue ? and ! from decay and give us a MUCH better way to convey meaning.
Just for the fun look at the method of the BIContext to see what I mean.
Iâm refactoring the API of the new formatter and it is so frustrating to not being able to express interrogation nicely.
>
>
>
> On Tue, Sep 10, 2019 at 5:15 PM ducasse <stepharo(a)netcourrier.com <mailto:stepharo@netcourrier.com>> wrote:
> I would love to retract ? and ! from the list of binary selectors.
> Iâm super super frustrated that predicates cannot be easily identifiable.
>
> for example is
> lineUpBlockBrackets an action or a testing method.
>
> I think that we are trapped in mistakes from the past.
> In racket and scheme and I guess ruby too we can use ? in the method and
> this change the game.
>
> self lineUpBlockBrackets?
>
> We have plenty of binary selector parts that are not used and think that
> it is frustrating.
>
> Let us check:
>
> Character specialCharacters
>
> '+-/\*~<>=@,%|&?!·÷±Ã'
>
> +
> -
> /
> \
> ~
> <
> >
> =
> @
> ,
> &
> |
> %
>
> those are ok
>
> I have no idea what is · nor how to type it.
> ÷ looks from the past.
> ± so funny
> à no idea what it is andâ¦.
>
> Then we have two that could really improve our language
> ? and !
>
> Do not tell me that there is a value in these selectors?
>
>
> (#(#+ #- #/ #\ #* #~ #< #> #= #@ #, #% #| #& #? #!) combinations
> select: [ :each | each size = 3 and: [ each includesAnyOf: #(#? #!) ] ]) collect: [ :each | each first, each second, each third ]
>
> #(#'+-?' #'+-!' #'+/?' #'+/!' #'+\?' #'+\!' #'+*?' #'+*!' #'+~?' #'+~!' #'+<?' #'+<!' #'+>?' #'+>!' #'+=?' #'+=!' #'+@?' #'+@!' #'+,?' #'+,!' #'+%?' #'+%!' #'+|?' #'+|!' #'+&?' #'+&!' #'+?!' #'-/?' #'-/!' #'-\?' #'-\!' #'-*?' #'-*!' #'-~?' #'-~!' #'-<?' #'-<!' #'->?' #'->!' #'-=?' #'-=!' #'-@?' #'-@!' #'-,?' #'-,!' #'-%?' #'-%!' #'-|?' #'-|!' #'-&?' #'-&!' #'-?!' #'/\?' #'/\!' #'/*?' #'/*!' #'/~?' #'/~!' #'/<?' #'/<!' #'/>?' #'/>!' #'/=?' #'/=!' #'/@?' #'/@!' #'/,?' #'/,!' #'/%?' #'/%!' #'/|?' #'/|!' #'/&?' #'/&!' #'/?!' #'\*?' #'\*!' #'\~?' #'\~!' #'\<?' #'\<!' #'\>?' #'\>!' #'\=?' #'\=!' #'\@?' #'\@!' #'\,?' #'\,!' #'\%?' #'\%!' #'\|?' #'\|!' #'\&?' #'\&!' #'\?!' #'*~?' #'*~!' #'*<?' #'*<!' #'*>?' #'*>!' #'*=?' #'*=!' #'*@?' #'*@!' #'*,?' #'*,!' #'*%?' #'*%!' #'*|?' #'*|!' #'*&?' #'*&!' #'*?!' #'~<?' #'~<!' #'~>?' #'~>!' #'~=?' #'~=!' #'~@?' #'~@!' #'~,?' #'~,!' #'~%?' #'~%!' #'~|?' #'~|!' #'~&?' #'~&!' #'~?!' #'<>?' #'<>!' #'<=?' #'<=!' #'<@?' #'<@!' #'<,?' #'<,!' #'<%?' #'<%!' #'<|?' #'<|!' #'<&?' #'<&!' #'<?!' #'>=?' #'>=!' #'>@?' #'>@!' #'>,?' #'>,!' #'>%?' #'>%!' #'>|?' #'>|!' #'>&?' #'>&!' #'>?!' #'=@?' #'=@!' #'=,?' #'=,!' #'=%?' #'=%!' #'=|?' #'=|!' #'=&?' #'=&!' #'=?!' #'@,?' #'@,!' #'@%?' #'@%!' #'@|?' #'@|!' #'@&?' #'@&!' #'@?!' #',%?' #',%!' #',|?' #',|!' #',&?' #',&!' #',?!' #'%|?' #'%|!' #'%&?' #'%&!' #'%?!' #'|&?' #'|&!' #'|?!' #'&?!â)
>
> may be this one #&?! is useful for WTF!
>
> And because of that we sacrifice having nice method names!
> I really think that we should change that.
>
> S.
>
>
>
Sept. 11, 2019
Re: [Pharo-dev] I have a dream... or why I think that compatibility is an illusion and bring us to the past
by Bernardo Ezequiel Contreras
sorry, how do you type unicode characters?
On Wed, Sep 11, 2019 at 1:07 AM phil(a)highoctane.be <phil(a)highoctane.be>
wrote:
> I feel an APL forcefield growing.
>
> Phil
>
> On Wed, Sep 11, 2019, 02:14 Gabriel Cotelli <g.cotelli(a)gmail.com> wrote:
>
>> Looks like Christmas season opened early this year :)
>>
>> Jokes aside, I'm in favor of changing some of the characters we use for
>> binary selectors to allow it to be used in keyword/unary messages.
>>
>> I'll include % in that list. For me its more useful as a way to create
>> percentages ( 5 % ) than to be used as a binary message for keeping an ugly
>> name from C-like languages.
>>
>> - · is middle dot and it's used in some math operations AFAIR
>> - Ã is used in math also (it's used as the multiplication sign for
>> scalars, cross product for vectors and cartesian product for sets)
>>
>> One thing that would be really cool is that we can use the full power of
>> Unicode in methods/class names. Projects like polymath and DSLs can clearly
>> take advantage of that. Some examples I've just invented, but can be
>> supported:
>>
>>
>> -
>>
>> â from: 1 to: 5 do: [:i | i + i squared ]
>> -
>>
>> 1 ⥠3
>> -
>>
>> â anyIn: #( 1 2 4) such: [:x | x isPrime ]
>> -
>>
>> â
includes: 1
>>
>>
>>
>>
>> On Tue, Sep 10, 2019 at 5:15 PM ducasse <stepharo(a)netcourrier.com> wrote:
>>
>>> I would love to retract ? and ! from the list of binary selectors.
>>> Iâm super super frustrated that predicates cannot be easily
>>> identifiable.
>>>
>>> for example is
>>> lineUpBlockBrackets an action or a testing method.
>>>
>>> I think that we are trapped in mistakes from the past.
>>> In racket and scheme and I guess ruby too we can use ? in the method and
>>> this change the game.
>>>
>>> self lineUpBlockBrackets?
>>>
>>> We have plenty of binary selector parts that are not used and think that
>>> it is frustrating.
>>>
>>> Let us check:
>>>
>>> Character specialCharacters
>>>
>>> '+-/\*~<>=@,%|&?!·÷±Ã'
>>>
>>> +
>>> -
>>> /
>>> \
>>> ~
>>> <
>>> >
>>> =
>>> @
>>> ,
>>> &
>>> |
>>> %
>>>
>>> those are ok
>>>
>>> I have no idea what is · nor how to type it.
>>> ÷ looks from the past.
>>> ± so funny
>>> à no idea what it is andâ¦.
>>>
>>> Then we have two that could really improve our language
>>> ? and !
>>>
>>> Do not tell me that there is a value in these selectors?
>>>
>>>
>>> (#(#+ #- #/ #\ #* #~ #< #> #= #@ #, #% #| #& #? #!) combinations
>>> select: [ :each | each size = 3 and: [ each includesAnyOf: #(#?
>>> #!) ] ]) collect: [ :each | each first, each second, each third ]
>>>
>>> #(#'+-?' #'+-!' #'+/?' #'+/!' #'+\?' #'+\!' #'+*?' #'+*!' #'+~?' #'+~!'
>>> #'+<?' #'+<!' #'+>?' #'+>!' #'+=?' #'+=!' #'+@?' #'+@!' #'+,?' #'+,!'
>>> #'+%?' #'+%!' #'+|?' #'+|!' #'+&?' #'+&!' #'+?!' #'-/?' #'-/!' #'-\?'
>>> #'-\!' #'-*?' #'-*!' #'-~?' #'-~!' #'-<?' #'-<!' #'->?' #'->!' #'-=?'
>>> #'-=!' #'-@?' #'-@!' #'-,?' #'-,!' #'-%?' #'-%!' #'-|?' #'-|!' #'-&?'
>>> #'-&!' #'-?!' #'/\?' #'/\!' #'/*?' #'/*!' #'/~?' #'/~!' #'/<?' #'/<!'
>>> #'/>?' #'/>!' #'/=?' #'/=!' #'/@?' #'/@!' #'/,?' #'/,!' #'/%?' #'/%!'
>>> #'/|?' #'/|!' #'/&?' #'/&!' #'/?!' #'\*?' #'\*!' #'\~?' #'\~!' #'\<?'
>>> #'\<!' #'\>?' #'\>!' #'\=?' #'\=!' #'\@?' #'\@!' #'\,?' #'\,!' #'\%?'
>>> #'\%!' #'\|?' #'\|!' #'\&?' #'\&!' #'\?!' #'*~?' #'*~!' #'*<?' #'*<!'
>>> #'*>?' #'*>!' #'*=?' #'*=!' #'*@?' #'*@!' #'*,?' #'*,!' #'*%?' #'*%!'
>>> #'*|?' #'*|!' #'*&?' #'*&!' #'*?!' #'~<?' #'~<!' #'~>?' #'~>!' #'~=?'
>>> #'~=!' #'~@?' #'~@!' #'~,?' #'~,!' #'~%?' #'~%!' #'~|?' #'~|!' #'~&?'
>>> #'~&!' #'~?!' #'<>?' #'<>!' #'<=?' #'<=!' #'<@?' #'<@!' #'<,?' #'<,!'
>>> #'<%?' #'<%!' #'<|?' #'<|!' #'<&?' #'<&!' #'<?!' #'>=?' #'>=!' #'>@?'
>>> #'>@!' #'>,?' #'>,!' #'>%?' #'>%!' #'>|?' #'>|!' #'>&?' #'>&!' #'>?!'
>>> #'=@?' #'=@!' #'=,?' #'=,!' #'=%?' #'=%!' #'=|?' #'=|!' #'=&?' #'=&!'
>>> #'=?!' #'@,?' #'@,!' #'@%?' #'@%!' #'@|?' #'@|!' #'@&?' #'@&!' #'@?!'
>>> #',%?' #',%!' #',|?' #',|!' #',&?' #',&!' #',?!' #'%|?' #'%|!' #'%&?'
>>> #'%&!' #'%?!' #'|&?' #'|&!' #'|?!' #'&?!â)
>>>
>>> may be this one #&?! is useful for WTF!
>>>
>>> And because of that we sacrifice having nice method names!
>>> I really think that we should change that.
>>>
>>> S.
>>>
>>>
>>>
>>>
--
Bernardo E.C.
Sent from a cheap desktop computer in South America.
Sept. 11, 2019