Esug-list
By thread
esug-list@lists.esug.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
September 2019
- 25 participants
- 44 messages
Re: [Esug-list] Github / Pharo / VisualWorks porting tools
by Alexandre Bergel
We have developed an automatic migrator from Pharo 2 VW. You can find it here:
https://github.com/ObjectProfile/Pharo2VW
Alexandre
> On Sep 17, 2019, at 9:36 AM, Carsten Härle <Carsten.Haerle(a)straightec.de> wrote:
>
> Hi,
>
> there is a lot of Smalltalk code in Github for Pharo and VisualWorks.
> The main repository for Seaside seems to be Github also.
>
> Which VisualWorks tools are available to support code exchange with Github and Pharo?
> How does the Cincom developer team do the porting of new versions, e.g. for Seaside?
>
> I found a Cypress interchange format implementation for VisualWorks from Travis Griggs:
> https://github.com/CampSmalltalk/STIG
>
> However the code 7 years old and does not work in current VisualWorks versions and has several bugs.
> I started fixing it, but before I invest to much effort, I would like to ask how other people do the porting from and to Github / Pharo or other dialects.
>
> Regards
> Carsten
> --
> Carsten Härle,
> straightec GmbH, Frankfurter Straße 48, 63150 Heusenstamm, Germany
> +49 6104 6008-0
> https://www.straightec.de
>
> _______________________________________________
> Esug-list mailing list
> Esug-list(a)lists.esug.org
> http://lists.esug.org/mailman/listinfo/esug-list_lists.esug.org
Sept. 17, 2019
Github / Pharo / VisualWorks porting tools
by Carsten Härle
Hi,
there is a lot of Smalltalk code in Github for Pharo and VisualWorks.
The main repository for Seaside seems to be Github also.
Which VisualWorks tools are available to support code exchange with Github and Pharo?
How does the Cincom developer team do the porting of new versions, e.g. for Seaside?
I found a Cypress interchange format implementation for VisualWorks from Travis Griggs:
https://github.com/CampSmalltalk/STIG
However the code 7 years old and does not work in current VisualWorks versions and has several bugs.
I started fixing it, but before I invest to much effort, I would like to ask how other people do the porting from and to Github / Pharo or other dialects.
Regards
Carsten
--
Carsten Härle,
straightec GmbH, Frankfurter Straße 48, 63150 Heusenstamm, Germany
+49 6104 6008-0
https://www.straightec.de
Sept. 17, 2019
Re: [Esug-list] Smalltalk and the list of popular programming languages
by Stéphane Ducasse
I often reply to people by saying that if we all use the same tools then we will invent the same.
So this is important to have different approaches.
Because else we need less researchers because they will all come up with the same ideas :)
I also mention that in biology the wealth of an ecosystem is the number of endemic species.
England: 49
Socrota island: 700
guess which one I would keep if I need to choose.
S.
BTW dave it would be cool to have Ryerson part of the Pharo consortium
Sept. 12, 2019
Re: [Esug-list] Smalltalk and the list of popular programming languages
by Stéphane Ducasse
you have also the solution of vincent arenaga that smoothly let you manipulate Python object in Pharo and the inverse
a bit like a reflective oriented corba layers…
> On 11 Sep 2019, at 01:56, Alexandre Bergel <abergel(a)dcc.uchile.cl> wrote:
>
> Hi David,
>
>> "Python’s popularity is driven in no small part by the vast number of specialized libraries available for it, particularly in the domain of artificial intelligence, where the Keras library <https://keras.io/> is a heavyweight among deep-learning developers: Keras provides an interface to the TensorFlow <https://www.tensorflow.org/>, CNTK <https://docs.microsoft.com/en-us/cognitive-toolkit/>, and Theano <http://www.deeplearning.net/software/theano/> deep-learning frameworks and tool kits.”
>>
>> and:
>>
>> "dramatic increase in computing power <https://spectrum.ieee.org/geek-life/hands-on/machine-learning-thats-light-e…> found in microcontrollers means that embedded versions of Python, such as CircuitPython <https://spectrum.ieee.org/at-work/tech-careers/scott-shawcroft-is-squeezing…> and MicroPython <https://micropython.org/>, are becoming increasingly popular among makers.”
>>
>> I’d love to be able to say, when people challenge me about Smalltalk, that we have those, or the logical equivalent of this.
>
>
> The Python library catalog is indeed very appealing. Making Python libraries accessible in Smalltalk is an obvious and significant gain for Smalltalk. This is exactly the problem we worked on. We built the Python Bridge, available here:
>
> https://github.com/ObjectProfile/PythonBridge <https://github.com/ObjectProfile/PythonBridge>
>
> This Python Bridge can be specialized for particular Python libraries, in particular all the AI libraries. We did this for the Keras library:
>
> https://github.com/ObjectProfile/PythonBridge <https://github.com/ObjectProfile/PythonBridge>
>
> As benefit, you can use Keras (and therefore Google’s tensorflow) without even knowing that you are talking to a Python libraries.
>
> One of the cool aspect of our work, is that it works for both VisualWorks and Pharo, as it was demonstrated at ESUG a few weeks ago.
>
> Cheers,
> Alexandre
> _______________________________________________
> Esug-list mailing list
> Esug-list(a)lists.esug.org
> http://lists.esug.org/mailman/listinfo/esug-list_lists.esug.org
--------------------------------------------
Stéphane Ducasse
http://stephane.ducasse.free.fr
http://www.synectique.eu / 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
Sept. 12, 2019
Re: [Esug-list] PythonBridge (was: Smalltalk and the list of popular programming languages)
by Alejandro Infante
Hi Boris,
In the current version of PythonBridge it is not required to execute (Smalltalk at: #PBApplication) installPipenvEnvironment since the piping environment is installed automatically on the first start up of the bridge (which may take a couple minutes depending on you machine and connection).
I will review the GitHub pages website because I changed that last week and the change hasn’t come live…
Feel free to ask any doubts and we expect documentation improvements these weeks :)
Cheers!
Alejandro
> On Sep 11, 2019, at 5:40 AM, Boris Shingarov <boris(a)shingarov.com> wrote:
>
> Hi Alexandre,
>
> I went to look at PythonBridge and it promises to be massively interesting! Definitely much more systematic than the crude and primitive PyStGateway I hacked together for the MachineArithmetic package.
>
> However, I must be doing something stupid. As PythonBridge's "Getting Started" page tells me, I loaded the metacello:
>
> Metacello new
> baseline: 'PythonBridge';
> repository: 'github://ObjectProfile/PythonBridge/src';
> load.
> so now I have PythonBridge master and Python3Generator v2.0.0 in my Pharo 7 image. Ok nice.
>
> However, PBApplication class does not implement #installPipenvEnvironment, so
>
> (Smalltalk at: #PBApplication) installPipenvEnvironment
> results in MNU. In fact there are no implementors of #installPipenvEnvironment.
>
> How would you suggest to debug this?
>
> Regards,
>
> Boris
>
>
>
> _______________________________________________
> Esug-list mailing list
> Esug-list(a)lists.esug.org
> http://lists.esug.org/mailman/listinfo/esug-list_lists.esug.org
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
Re: [Esug-list] PythonBridge (was: Smalltalk and the list of popular programming languages)
by Serge Stinckwich
On Wed, Sep 11, 2019 at 10:41 AM Boris Shingarov <boris(a)shingarov.com>
wrote:
> Hi Alexandre,
>
> I went to look at PythonBridge and it promises to be massively
> interesting! Definitely much more systematic than the crude and primitive
> PyStGateway I hacked together for the MachineArithmetic package.
>
> However, I must be doing something stupid. As PythonBridge's "Getting
> Started" page tells me, I loaded the metacello:
>
> Metacello new
> baseline: 'PythonBridge';
> repository: 'github://ObjectProfile/PythonBridge/src';
> load.
>
> so now I have PythonBridge master and Python3Generator v2.0.0 in my Pharo
> 7 image. Ok nice.
>
> However, PBApplication class does not implement #installPipenvEnvironment,
> so
>
> (Smalltalk at: #PBApplication) installPipenvEnvironment
>
> results in MNU. In fact there are no implementors of
> #installPipenvEnvironment.
>
> How would you suggest to debug this?
>
I already got this problem. Normally you don't have to do anymore:
(Smalltalk at: #PBApplication) installPipenvEnvironment
Just run the tests after your load PythonBridge in your image.
Regards,
--
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
PythonBridge (was: Smalltalk and the list of popular programming languages)
by Boris Shingarov
Hi Alexandre,
I went to look at PythonBridge and it promises to be massively
interesting! Definitely much more systematic than the crude and
primitive PyStGateway I hacked together for the MachineArithmetic package.
However, I must be doing something stupid. As PythonBridge's "Getting
Started" page tells me, I loaded the metacello:
|Metacello new baseline: 'PythonBridge'; repository:
'github://ObjectProfile/PythonBridge/src'; load.|
so now I have PythonBridge master and Python3Generator v2.0.0 in my
Pharo 7 image. Ok nice.
However, PBApplication class does not implement
#installPipenvEnvironment, so
|(Smalltalk at: #PBApplication) installPipenvEnvironment|
results in MNU. In fact there are no implementors of
#installPipenvEnvironment.
How would you suggest to debug this?
Regards,
Boris
Sept. 11, 2019
Re: [Esug-list] Smalltalk and the list of popular programming languages
by Alexandre Bergel
Hi David,
> "Python’s popularity is driven in no small part by the vast number of specialized libraries available for it, particularly in the domain of artificial intelligence, where the Keras library <https://keras.io/> is a heavyweight among deep-learning developers: Keras provides an interface to the TensorFlow <https://www.tensorflow.org/>, CNTK <https://docs.microsoft.com/en-us/cognitive-toolkit/>, and Theano <http://www.deeplearning.net/software/theano/> deep-learning frameworks and tool kits.”
>
> and:
>
> "dramatic increase in computing power <https://spectrum.ieee.org/geek-life/hands-on/machine-learning-thats-light-e…> found in microcontrollers means that embedded versions of Python, such as CircuitPython <https://spectrum.ieee.org/at-work/tech-careers/scott-shawcroft-is-squeezing…> and MicroPython <https://micropython.org/>, are becoming increasingly popular among makers.”
>
> I’d love to be able to say, when people challenge me about Smalltalk, that we have those, or the logical equivalent of this.
The Python library catalog is indeed very appealing. Making Python libraries accessible in Smalltalk is an obvious and significant gain for Smalltalk. This is exactly the problem we worked on. We built the Python Bridge, available here:
https://github.com/ObjectProfile/PythonBridge <https://github.com/ObjectProfile/PythonBridge>
This Python Bridge can be specialized for particular Python libraries, in particular all the AI libraries. We did this for the Keras library:
https://github.com/ObjectProfile/PythonBridge <https://github.com/ObjectProfile/PythonBridge>
As benefit, you can use Keras (and therefore Google’s tensorflow) without even knowing that you are talking to a Python libraries.
One of the cool aspect of our work, is that it works for both VisualWorks and Pharo, as it was demonstrated at ESUG a few weeks ago.
Cheers,
Alexandre
Sept. 10, 2019
Re: [Esug-list] [SPAM] Re: Concurrency Best Practices + Tests
by Ron Teitelbaum
Hi Kurt,
Thank you for that link. I'd assumed parallel computing as the reason for
concurrency. Maybe that was a mistake?
I called the individual parallel processes components of the problem. I
also think in terms of the dependency tree. You really can't get any
faster than the the longest branch which resolves all the dependents
processes required to get a a result even if those dependents result from
parallel processing. Also in practice it doesn't make sense to only
consider the processing time of a component since there is overhead in
coordination and scheduling. The maximum possible speed up would approach
Amdahl’s law as the overhead time approaches 0 (which I guess is the point
of a theoretical maximum).
If on the other hand we are talking about handling multiple problems sets
concurrently and not parallel processing there are other issues to
consider. Mostly the problem becomes one of identifying available
resources and optimizing queuing processes. It doesn't make sense to have
a tiny process wait behind one that will take a very long time. Still you
need to queue based on something. In that case I would spend more time on
building in process time estimates and handling dynamic rescheduling based
on time to process vs current age in queue. The reporting system (a system
that explained what it was doing) would still work to help debug the system
but you would be looking to optimize the schedule flow to improve
efficiency. Collecting data about how it was scheduled (total work in
queue at schedule, at processing, after processing), how long it waited,
the difference between estimated processing time and actual processing time
would be more useful.
Noury, did you ever share details of the actual problem you are trying to
solve?
All the best,
*Ron Teitelbaum*
*Chief Executive Officer**3D Immersive Collaboration Consulting, LLC*
ron(a)3dicc.com
www.3dicc.com
<https://www.facebook.com/3DICC> <https://twitter.com/RonTeitelbaum>
<https://www.linkedin.com/in/ronteitelbaum>
On Tue, Sep 10, 2019 at 1:24 PM Kurt Kilpela <self(a)kurtkilpela.com> wrote:
> Hey Ron,
>
> Part of what you’ve expressed has been distilled into a ‘law’. Amdahl’s
> law describes the theoretical speedup in execution latency.
>
> https://en.wikipedia.org/wiki/Amdahl%27s_law
> <https://en.wikipedia.org/wiki/Amdahl's_law>
>
> Note, concurrency alone would not offer this speedup. This requires
> parallel execution. Without parallelism, you would still need to wait the
> aggregate computation time for all concurrent components. The latency of
> the longest computation is not enough.
>
> Kurt
>
> On Sep 10, 2019, at 9:41 AM, Ron Teitelbaum <ron(a)3dicc.com> wrote:
>
> Hi Noury,
>
> I didn't respond because I really didn't think I had much to add but I've
> been thinking about what I would want to have in a concurrent system. This
> may be obvious but
>
> Concurrent systems promise either speed or scalability. The goal will
> change the requirements. We know that for speed there are two aspects to
> consider. You can only go as fast as it takes for your largest component
> to process and limited resources means that going really fast on easy to
> process components of the problem set will only lead to a large backlog and
> coordination issues.
>
> For scalability you need to ensure completeness. You can't just send
> stuff off and assume it will get processed. There is a lot to do to ensure
> that the everything that fails or is delayed is rescheduled to prevent a
> major backup.
>
> Both of these goals, it would seem to me, would be helped considerably by
> a system that can explain itself. Depending on the size of the processing
> task this could get tricky. Something that processes millions of messages
> a second would need to have a much more sophisticated system to gather
> information without changing the efficiency of the system itself.
> Something that is less time intensive could process and keep this
> information with the processed results.
>
> What I would want to know is time to process all of the components
> compared to time to process the full solution. I would also want to know
> about errors, rescheduling, wait times. Ultimately the best concurrent
> system will run at time to run slowest component + coordination time. If
> the system is not running at that speed we would like to have information
> as to why. Is there a backup, deadlock or other errors, resource issues or
> something else that is causing the system to delay. Comparing the
> processing time of the full process and the processing time of each
> component could tell you a lot about where things are going wrong (maybe
> your process tree is wrong, or your scheduling is too aggressive causing
> rescheduling on a regular basis or 2 times the processing time of a
> component because expected data wasn't available). If this is a huge
> system then you can't really keep all that information but you could keep
> averages instead.
>
> The idea is probably not that novel but having a system that could explain
> itself, what it is doing, and how well it is performing, could be a very
> good debugging tool. I would be very careful to build it such that it
> doesn't change the processing efficiency of the production system and that
> the explanation system is optional (I know they don't really go together
> [optional and no effect] which makes this very difficult). That also means
> that I wouldn't try to use this reporting system to automatically change
> the system itself.
>
> Hope that helps.
>
> All the best,
>
>
> *Ron Teitelbaum*
> *Chief Executive Officer**3D Immersive Collaboration Consulting, LLC*
> ron(a)3dicc.com
> www.3dicc.com
>
> <https://www.facebook.com/3DICC> <https://twitter.com/RonTeitelbaum>
> <https://www.linkedin.com/in/ronteitelbaum>
>
>
> On Tue, Sep 10, 2019 at 9:52 AM Nowak, Helge <HNowak(a)cincom.com> wrote:
>
>> Dear Noury,
>>
>>
>>
>> I didn’t had the time to do a thorough web search. You certainly did. I
>> found several references that look very promising. Mny of them were
>> concerning Java and OS threads. Othes are about Erlang (
>> https://mariachris.github.io/Pubs/ERLANG-2011.pdf ). I think not only
>> the concurrency problem but also the base technology matters. I couldn’t
>> find anything about Smalltalk yet. So you are probably conquering new land.
>>
>>
>>
>> Here is a quote from the preface of “Test Driven Development: By Example”
>> from 2003 by Kent Beck: “There certainly are programming tasks that can’t
>> be driven solely by tests (or, at least not yet). Security and concurrency,
>> for example, are two topics where TDD is insufficient to mechanically
>> demonstrate that the goals of the software has been met.” “Subtle
>> concurrency problems can’t be reliably duplicated by running the code.”
>>
>>
>>
>> Good luck! I am looking forward to your findings.
>>
>>
>>
>> Helge
>>
>>
>>
>>
>> *Helge Nowak *Cincom Smalltalk Technical Account Manager
>>
>> <image001.png> <http://www.cincomsmalltalk.com/>
>> Cincom Systems GmbH & Co. oHG
>> Humboldtstraße 3
>> 60318 Frankfurt am Main
>> GERMANY
>>
>> office
>> mobile
>>
>> website
>> email
>>
>> +49 89 89 66 44 94
>> +49 172 74 00 402
>>
>> http://www.cincomsmalltalk.com
>> hnowak(a)cincom.com
>>
>>
>>
>> *A standpoint is an intellectual horizon of radius zero. -- Albert
>> Einstein *
>>
>> Geschäftsführer/Managing Directors: Thomas M. Nies, Donald E. Vick
>> oHG mit Sitz/based in Frankfurt am Main (Amtsgericht Frankfurt am Main
>> HRA 50297)
>> Pers. haftender Gesellschafter/Partner liable to unlimited extent:
>> Cincom Systems Verwaltungsgesellschaft mbH (Amtsgericht Königstein/Ts. HRB
>> 5069)
>>
>>
>> --- CONFIDENTIALITY STATEMENT ---
>>
>> This e-mail transmission contains information that is intended to be
>> privileged and confidential. It is intended only for the addressee named
>> above. If you receive this e-mail in error, please do not read, copy or
>> disseminate it in any manner. If you are not the intended recipient, any
>> disclosure, copying, distribution or use of the contents of this
>> information is prohibited, please reply to the message immediately by
>> informing the sender that the message was misdirected. After replying,
>> please erase it from your computer system. Your assistance in correcting
>> this error is appreciated.
>>
>>
>>
>>
>>
>> *From:* Esug-list <esug-list-bounces(a)lists.esug.org> *On Behalf Of *Noury
>> Bouraqadi
>> *Sent:* Tuesday, 10 September 2019 15:12
>> *To:* Members ESUG <esug-list(a)lists.esug.org>
>> *Subject:* Re: [Esug-list] [SPAM] Re: Concurrency Best Practices + Tests
>>
>>
>>
>> Thanks you all for your answers.
>>
>>
>>
>> Best,
>>
>> Noury
>>
>> On 7 Sep 2019, at 18:42, James Foster <Smalltalk(a)JGFoster.net> wrote:
>>
>>
>>
>>
>>
>> The point of noury is what is the way to approach concurrency when doing
>> TDD.
>>
>> Now how to build reliable ….
>>
>>
>>
>> I won’t pretend to answer such a broad question with anything definitive,
>> but I’d start my investigation of concurrency with a look at databases. One
>> of the primary features of any multi-user database (not just GemStone!) is
>> that transactions are in practice concurrent but the system is designed to
>> apply them as if they were serial and in a way where order does not matter.
>> So I would attempt to identify the concurrent tasks and verify that they
>> each got the result that they would have obtained had they been applied in
>> various serial fashions.
>>
>>
>>
>> Imagine that DrTDD should be extended to support concurrent programming.
>>
>> Then this is the question that we want to get answer.
>>
>>
>>
>> I would look for a way to pass a set of repeatable tasks to DrTDD and let
>> the testing framework run them in various orders then run them concurrently
>> with interrupts and switching contexts.
>>
>>
>>
>> James
>>
>> _______________________________________________
>> Esug-list mailing list
>> Esug-list(a)lists.esug.org
>> http://lists.esug.org/mailman/listinfo/esug-list_lists.esug.org
>>
>>
>> _______________________________________________
>> Esug-list mailing list
>> Esug-list(a)lists.esug.org
>> http://lists.esug.org/mailman/listinfo/esug-list_lists.esug.org
>>
> _______________________________________________
> Esug-list mailing list
> Esug-list(a)lists.esug.org
> http://lists.esug.org/mailman/listinfo/esug-list_lists.esug.org
>
>
>
Sept. 10, 2019