Pharo-users
By thread
pharo-users@lists.pharo.org
By month
Messages by month
- ----- 2026 -----
- October
- September
- 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
May 2018
- 79 participants
- 452 messages
Re: [Pharo-users] How to LAN feature
by Julián Maestri
I think he means you can not discover all interfaces from Pharo. I have 2
network interfaces with addresses 192.168.0.4 and 192.168.56.1
Pharo only returns the first one.
NetNameResolver localHostName "'thepc'".
NetNameResolver localHostAddress. "#[192 168 0 4]"
NetNameResolver nameForAddress: #[192 168 0 4] timeout: 60. "'thepc'"
NetNameResolver nameForAddress: #[192 168 56 1] timeout: 60. "'thepc'"
If you need to broadcast something on the second one, you have no way to
automatically discover it. (eg if you wanted to prompt the user which one
to broadcast to, or to broadcast on them all)
On 13 May 2018 at 14:50, Hilaire <hilaire(a)drgeo.eu> wrote:
> Hi Norbert,
>
> Just to be sure I understood correctly what you wrote regarding network
> interface: Do you mean it is impossible to discover the network interface
> IP address from the image? It is this IP the teacher Dr. Geo server needs
> to broadcast over UDP.
>
> Hilaire
>
>
> Le 08/05/2018 à 16:22, Henrik Sperre Johansen a écrit :
>
>> mDNS and SSDP are pretty much interchangeable, implementation wise;)
>>
>> The main problem; most computers these days come with multiple networking
>> interfaces, and are usually connected to separate subnets.
>> So when you connect a socket to the broadcast address, you have no idea
>> which interface it will actually send the request over, and whether you
>> can
>> communicate with other entities is sort if hit or miss.
>>
>> Pharos netresolver is blissfully unaware/unable to tell you which
>> interfaces
>> are available,
>> most of the work in the SSDP implementation went into trying to detect all
>> the different ones (impossible without the added networking prims, and
>> still
>> unreliable whether it will find the correct ones with...), and bind:'ing a
>> socket to each specifically.
>>
>> IIRC, the default server/client instantiation exemplified in class
>> comments
>> now simply binds to 0:0:0:0 and hopes the default interface is what you
>> wanted, SSDPServer>>onAllInterfacesOfferServiceType:atLocation: runs
>> through the more extensive setup.
>>
>> Cheers,
>> Henry
>>
>> P.S. In second place; a listener loop capable of error handling a spotty
>> wifi connection/machine sleep cycles...
>>
>
> --
> Dr. Geo
> http://drgeo.eu
>
>
>
>
May 13, 2018
Re: [Pharo-users] How to LAN feature
by Hilaire
Hi Norbert,
Just to be sure I understood correctly what you wrote regarding network
interface: Do you mean it is impossible to discover the network
interface IP address from the image? It is this IP the teacher Dr. Geo
server needs to broadcast over UDP.
Hilaire
Le 08/05/2018 à 16:22, Henrik Sperre Johansen a écrit :
> mDNS and SSDP are pretty much interchangeable, implementation wise;)
>
> The main problem; most computers these days come with multiple networking
> interfaces, and are usually connected to separate subnets.
> So when you connect a socket to the broadcast address, you have no idea
> which interface it will actually send the request over, and whether you can
> communicate with other entities is sort if hit or miss.
>
> Pharos netresolver is blissfully unaware/unable to tell you which interfaces
> are available,
> most of the work in the SSDP implementation went into trying to detect all
> the different ones (impossible without the added networking prims, and still
> unreliable whether it will find the correct ones with...), and bind:'ing a
> socket to each specifically.
>
> IIRC, the default server/client instantiation exemplified in class comments
> now simply binds to 0:0:0:0 and hopes the default interface is what you
> wanted, SSDPServer>>onAllInterfacesOfferServiceType:atLocation: runs
> through the more extensive setup.
>
> Cheers,
> Henry
>
> P.S. In second place; a listener loop capable of error handling a spotty
> wifi connection/machine sleep cycles...
--
Dr. Geo
http://drgeo.eu
May 13, 2018
Re: [Pharo-users] Package extension. Adding instance variables to classes
by Herbert VojÄÃk
Guillermo Polito wrote:
> Just be careful, that privateState thing looks like a Moose only Famix
> feature. It't not available in plain Pharo objects :)
In ES6 mailing list, they had this problem re how to do private state
for objects, and it was shown that having private state is sort of
isomorphic to having WeakMap indexed by objects. So in case of Pharo,
I'd say using WeakIdentitityKeyDictionary can do the trick. Without
resorting to any external dependency.
Herby
> On Wed, May 9, 2018 at 2:09 AM, Alidra Abdelghani via Pharo-users
> <pharo-users(a)lists.pharo.org <mailto:pharo-users@lists.pharo.org>> wrote:
>
>
>
> ---------- Forwarded message ----------
> From: Alidra Abdelghani <alidrandco(a)yahoo.fr
> <mailto:alidrandco@yahoo.fr>>
> To: Pavel Krivanek <pavel.krivanek(a)gmail.com
> <mailto:pavel.krivanek@gmail.com>>
> Cc: Any question about pharo is welcome <pharo-users(a)lists.pharo.org
> <mailto:pharo-users@lists.pharo.org>>
> Bcc:
> Date: Wed, 9 May 2018 01:09:06 +0100
> Subject: Re: Package extension. Adding instance variables to classes
> Hi Pavel,
>
> Thank you for your answer.
> I actually didnât know about this mechanism.
> I think it is will do the job :)
> I have probably to rewrite some parts pf my code to access my
> variables through privateState. no?
>
>
> Thanks again
> Abdelghani
>> On 07 May 2018, at 13:15, pharo-users-request(a)lists.pharo.org
>> <mailto:pharo-users-request@lists.pharo.org> wrote:
>>
>>
>> Message: 1
>> Date: Mon, 7 May 2018 13:43:56 +0200
>> From: Pavel Krivanek <pavel.krivanek(a)gmail.com
>> <mailto:pavel.krivanek@gmail.com>>
>> To: Any question about pharo is welcome
>> <pharo-users(a)lists.pharo.org <mailto:pharo-users@lists.pharo.org>>
>> Subject: Re: [Pharo-users] Package extension. Adding instance
>> variables to classes
>> Message-ID:
>> <CAHN2FzeMiBL4Y8asJ0XCjS2AQdxycoN+pbc+Hsd=trMnmuiJqw(a)mail.gmail.com <mailto:CAHN2FzeMiBL4Y8asJ0XCjS2AQdxycoN+pbc+Hsd=trMnmuiJqw@mail.gmail.com>>
>> Content-Type: text/plain; charset="utf-8"
>>
>> 2018-05-07 12:25 GMT+02:00 Alidra Abdelghani via Pharo-users <
>> pharo-users(a)lists.pharo.org <mailto:pharo-users@lists.pharo.org>>:
>>
>>>
>>>
>>> ---------- P?eposlan? zpr?va ----------
>>> From: Alidra Abdelghani <alidrandco(a)yahoo.fr
>>> <mailto:alidrandco@yahoo.fr>>
>>> To:pharo-users@lists.pharo.org <mailto:pharo-users@lists.pharo.org>
>>> Cc:
>>> Bcc:
>>> Date: Mon, 7 May 2018 11:25:49 +0100
>>> Subject: Package extension. Adding instance variables to classes
>>> Hi,
>>>
>>> I am working on a package named ClassNamesAnalyzer and I need to
>>> add code
>>> to third party classes in other packages (for instance the FAMIX-Core
>>> package).
>>> ?Extending? third party classes with methods is easy; I just need to
>>> categorise my methods under the *ClassNamesAnalyzer protocole so that
>>> loading my package will load them in the image.
>>> However, if I want to add instance variables to theses classes,
>>> they are
>>> not there when I load the package in a new image.
>>>
>>> *So my question is* : is there a way to include instance variables
>>> addition to other packages in my package?
>>>
>>
>> Currently not, you should use privateState
>>
>>
>>> *Another question is* : is it good practice to add instance
>>> variables to
>>> classes in third party packages and is there a way to avoid it
>>> (because I
>>> am not very confortable with that idea)?
>>>
>>
>> It is not, see FAMIXContainerEntity>>#definedAnnotationTypes how
>> this issue
>> is currently being solved using the privateState.
>>
>> Cheers,
>> -- Pavel
>>
>>
>>>
>>> Thanks in advance,
>>> Abdelghani
>
>
>
>
>
>
> --
>
>
>
> Guille Polito
>
> Research Engineer
>
> Centre de Recherche en Informatique, Signal et Automatique de Lille
>
> CRIStAL - UMR 9189
>
> French National Center for Scientific Research - _http://www.cnrs.fr_
>
>
> *Web:* _http://guillep.github.io_
>
> *Phone: *+33 06 52 70 66 13
>
May 13, 2018
Re: [Pharo-users] How to add item to world menu
by Cyril Ferlicot
On dim. 13 mai 2018 at 18:23, chrismihaylyk <chrismihaylyk(a)gmail.com> wrote:
> Hi!
>
> I need to add an item to world menu. I know how to add it manually by
> running some method.
> But I need this item to be added automatically into world menu just along
> installing (loading) package code from smalltalkhub.
Hello,
This is done via the "worldMenu" pragma.
Browse the senders of #worldMenu and you will see how this is done.
>
> Can anyone help me, please? =)
>
>
>
> --
> Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html
>
> --
Cyril Ferlicot
https://ferlicot.fr
May 13, 2018
How to add item to world menu
by chrismihaylyk
Hi!
I need to add an item to world menu. I know how to add it manually by
running some method.
But I need this item to be added automatically into world menu just along
installing (loading) package code from smalltalkhub.
Can anyone help me, please? =)
--
Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html
May 13, 2018
Re: [Pharo-users] Package extension. Adding instance variables to classes
by Alidra Abdelghani
Ok, got it.
Thanks Guille
Abdelghani
> On 10 May 2018, at 21:59, Guillermo Polito <guillermopolito(a)gmail.com> wrote:
>
> Just be careful, that privateState thing looks like a Moose only Famix feature. It't not available in plain Pharo objects :)
>
> On Wed, May 9, 2018 at 2:09 AM, Alidra Abdelghani via Pharo-users <pharo-users(a)lists.pharo.org <mailto:pharo-users@lists.pharo.org>> wrote:
>
>
> ---------- Forwarded message ----------
> From: Alidra Abdelghani <alidrandco(a)yahoo.fr <mailto:alidrandco@yahoo.fr>>
> To: Pavel Krivanek <pavel.krivanek(a)gmail.com <mailto:pavel.krivanek@gmail.com>>
> Cc: Any question about pharo is welcome <pharo-users(a)lists.pharo.org <mailto:pharo-users@lists.pharo.org>>
> Bcc:
> Date: Wed, 9 May 2018 01:09:06 +0100
> Subject: Re: Package extension. Adding instance variables to classes
> Hi Pavel,
>
> Thank you for your answer.
> I actually didnât know about this mechanism.
> I think it is will do the job :)
> I have probably to rewrite some parts pf my code to access my variables through privateState. no?
>
>
> Thanks again
> Abdelghani
>> On 07 May 2018, at 13:15, pharo-users-request(a)lists.pharo.org <mailto:pharo-users-request@lists.pharo.org> wrote:
>>
>>
>> Message: 1
>> Date: Mon, 7 May 2018 13:43:56 +0200
>> From: Pavel Krivanek <pavel.krivanek(a)gmail.com <mailto:pavel.krivanek@gmail.com>>
>> To: Any question about pharo is welcome <pharo-users(a)lists.pharo.org <mailto:pharo-users@lists.pharo.org>>
>> Subject: Re: [Pharo-users] Package extension. Adding instance
>> variables to classes
>> Message-ID:
>> <CAHN2FzeMiBL4Y8asJ0XCjS2AQdxycoN+pbc+Hsd=trMnmuiJqw(a)mail.gmail.com <mailto:CAHN2FzeMiBL4Y8asJ0XCjS2AQdxycoN+pbc+Hsd=trMnmuiJqw@mail.gmail.com>>
>> Content-Type: text/plain; charset="utf-8"
>>
>> 2018-05-07 12:25 GMT+02:00 Alidra Abdelghani via Pharo-users <
>> pharo-users(a)lists.pharo.org <mailto:pharo-users@lists.pharo.org>>:
>>
>>>
>>>
>>> ---------- P?eposlan? zpr?va ----------
>>> From: Alidra Abdelghani <alidrandco(a)yahoo.fr <mailto:alidrandco@yahoo.fr>>
>>> To: pharo-users(a)lists.pharo.org <mailto:pharo-users@lists.pharo.org>
>>> Cc:
>>> Bcc:
>>> Date: Mon, 7 May 2018 11:25:49 +0100
>>> Subject: Package extension. Adding instance variables to classes
>>> Hi,
>>>
>>> I am working on a package named ClassNamesAnalyzer and I need to add code
>>> to third party classes in other packages (for instance the FAMIX-Core
>>> package).
>>> ?Extending? third party classes with methods is easy; I just need to
>>> categorise my methods under the *ClassNamesAnalyzer protocole so that
>>> loading my package will load them in the image.
>>> However, if I want to add instance variables to theses classes, they are
>>> not there when I load the package in a new image.
>>>
>>> *So my question is* : is there a way to include instance variables
>>> addition to other packages in my package?
>>>
>>
>> Currently not, you should use privateState
>>
>>
>>> *Another question is* : is it good practice to add instance variables to
>>> classes in third party packages and is there a way to avoid it (because I
>>> am not very confortable with that idea)?
>>>
>>
>> It is not, see FAMIXContainerEntity>>#definedAnnotationTypes how this issue
>> is currently being solved using the privateState.
>>
>> Cheers,
>> -- Pavel
>>
>>
>>>
>>> Thanks in advance,
>>> Abdelghani
>
>
>
>
>
>
> --
>
> Guille Polito
> Research Engineer
>
> Centre de Recherche en Informatique, Signal et Automatique de Lille
> CRIStAL - UMR 9189
> French National Center for Scientific Research - http://www.cnrs.fr <http://www.cnrs.fr/>
>
> Web: http://guillep.github.io <http://guillep.github.io/>
> Phone: +33 06 52 70 66 13
Dr. Abdelghani Alidra
Enseignant-chercheur
Université 20 août 1955
SKIKDA-ALGÃRIE
Mob:+ 213 550 453 391
May 12, 2018
Re: [Pharo-users] Spec on Moose 6.0 error: MessageNotUnderstood: ToolDockingBarMorph>>popUpOwner
by Arturo Zambrano
Hi Offray
I have the same problem(Pharo 6.1), it only happens while opening
submenus. did you find a solution?
thanks
On Sat, Nov 21, 2015 at 2:49 PM, Offray Vladimir Luna Cárdenas <
offray(a)riseup.net> wrote:
> Hi,
>
> I'm getting this error while trying to prototype some interface with Spec
> on Moose 6.0:
>
> MessageNotUnderstood: ToolDockingBarMorph>>popUpOwner
>
> it happens anytime that I'm using displaying a MenuModel and I go to the
> menu items. I imagine that the menu item is complaining about a lacking pop
> up message. How can I solve this?
>
> Thanks,
>
> Offray
>
>
May 11, 2018
Re: [Pharo-users] How to LAN feature
by Hilaire
I have been reading and learning about your Zinc HTTP framework, on the
client side for now. It looks fantastic with all the needed pieces. I
guess the server part has all the needed part of the teacher share
counter part.
Thanks
Hilaire
Le 07/05/2018 à 20:05, Sven Van Caekenberghe a écrit :
> Uploading can be done using an HTTP POST or PUT, just like Playground does its Remote Publish, or Monticello its Save operation.
--
Dr. Geo
http://drgeo.eu
May 11, 2018
Re: [Pharo-users] Personal Programming onPharo
by Travis Ayres
There is no way to mark the language version, no
#pragma stdc version iso99
Delphi:
{$IF CompilerVersion >= 17.0}
Freepascal:
{$if FPC_VERSION > 2}
No make files: the compiler handles that trash for you.
Compatibility: Freepascal supports Delphi, Object Pascal, and has
various switches for all kinds of things should you need it.
Supports Windows, Linux, Mac, Android, Amiga (...seriously) and a
multitude of other systems.
On Wed, May 9, 2018, 6:54 AM Richard O'Keefe <raoknz(a)gmail.com> wrote:
> âI have a C++ program written in the late 80s by someone
> else. It used to run fine under cfront 2.0 and early g++.
> Ten years after it was written it was impossible to compile.
>
> *Since* that there have been changes to streams and strings,
> amongst other things.
>
> The 1989 C standard changed the semantics of mixed signed/unsigned
> integer arithmetic. It also inadvertently rendered illegal a
> widely used technique. It is notoriously the case these days
> that compilers taking the C standards literally have "broken"
> quite a lot of code that worked with less ambitious compilers.
> I have been watching this phenomenon with considerable
> nervousness. See for example
> http://www.eng.utah.edu/~cs5785/slides-f10/Dangerous+Optimizations.pdf
>
> I have certainly had previously acceptable C89 code be rejected
> by compilers as not being legal C11. It is true that compilers
> tend to have command line/IDE switches to ask that old code be
> compiled under old rules, but you cannot say that *in* the program.
> There is no way to mark the language version, no
> #pragma stdc version iso99
>
>
>
> As for Java, I could rant about the floods of deprecation warnings
> from old code. I shall content myself with one observation.
> Read http://java-performance.info/changes-to-string-java-1-7-0_06/
> Before Java 1.7, the substring operation in Java took O(1) time
> and space. From Java 1.7 on, it takes time and space linear in the
> size of the result. The syntax and abstract semantics did not
> change but the pragmatics did. Code that had adequate performance
> could suddenly start crawling.
>
> Oracle do a tolerably thorough job of describing compatibility
> issues between JDK releases. See for example
>
> http://www.oracle.com/technetwork/java/javase/8-compatibility-guide-2156366…
> where we learned that the 'apt' tool was gone, the JDBC-ODBC bridge
> was gone, 32-bit Solaris support (and yes, I was still using 32-bit
> code in SPARC Solaris and Intel Solaris) was gone, and the type
> inference algorithm had changed in a way that could break things.
> I am still somewhat peeved about some of the rewriting I've had to
> do over the last several releases.
>
> Then there is the simple fact that porting code from one release of
> an OS to another can be a pain. Solaris 10 to OpenSolaris was easy.
> OpenSolaris to Solaris 11 was not as painless. Solaris 11 to
> OpenIndiana was not a happy time for me. OpenBSD changes forced
> rework. I'd finally got my program to port smoothly between Solaris,
> Darwin, and Linux. And then I had trouble porting to the next major
> release of Linux. And with Ubuntu 17, I've got another problem I
> still haven't tracked down. All of this in a C program that gets
> regularly (sp)linted and checked all sorts of ways, written with
> the intention of producing portable code.
>
> EVERYTHING BREAKS.
>
>
> On 7 May 2018 at 22:42, Trygve Reenskaug <trygver(a)ifi.uio.no> wrote:
>
>> Please tell me when Java, C, C++, etc programs stopped working because
>> their runtime systems had changed.
>> Please tell me when Java, C, C++, etc compilers stopped compiling old
>> code because the languages had changed.
>>
>>
>> On 07.05.2018 11:57, Norbert Hartl wrote:
>>
>> I understand what you are saying but it contains some misconceptions
>> about the modern software world.
>>
>> âThe earth is not stopping to turn just because you want to stay on the
>> sunny sideâ
>>
>> There is two funny concepts going on in the modern software industry. The
>> one tells you that because you want to do a product everything else around
>> you should come to a full stop so can comfortably build your software not
>> disturbed by other things. The second one tells you that you _have to
>> upgrade_ ⦠there is this magical force preventing you from staying where
>> you are. Both notions are funny alone but they come combined and then they
>> turn out to be a non-sensical monster.
>>
>> Letâs take a different approach. Put in everything you say about
>> software, libraries, etc the word version. So you can build upon Pharo
>> version 3 your own product. You can stay at that version and it wonât
>> change. If the software you sell is not 80% pharo but your own you should
>> not have a problem just to stay on that version because you develop your
>> own stuff. But still the world did not stop turning and there is pharo 4.
>> You decide there are a few nice features but the work to adjust is too big
>> to take the risk. Then there is pharo 5 and you ⦠nahhh not this timeâ¦.Then
>> there is pharo6 and they not only changed the image but also the way source
>> code is managed. That prevents you further from adjusting. But hey you can
>> still be happy with pharo3 and it does not change.
>>
>> So what is the real problem? Yes, money/time is not enough. I think there
>> are a lot of people risking their health to promote pharo and now we have a
>> consortium that can pay engineers to do work on pharo. So let me tell you a
>> future story:
>>
>> You see what pharo is doing and you think it is good. You can also see
>> that there are too less resources to proceed in the way you need it to go.
>> So you decide to show pharo to the world inspiring people with some kind of
>> a vision. The result is that more people pay into the consortium and we
>> hire more engineers. And then one day the consortium has enough money to
>> pay engineers that can care about a LTS (long term support) version of
>> pharo. So you can stay on pharo version 3 and still get those annoying bugs
>> fixed. And hey this team has also enough time to provide you with tools
>> that make a migration to pharo version 4 more easy and less annoying for
>> you. And then you have your own product based on pharo version 4. And then
>> for version 5, version 6,â¦. Sounds like a dreamâ¦but heyâ¦it is indeed
>> realistic. It just depends on how the people approach it
>>
>> How does this sound?
>>
>> Norbert
>>
>> Am 07.05.2018 um 11:31 schrieb Trygve Reenskaug <trygver(a)ifi.uio.no>:
>>
>> Thanks for your quick answer. I have only a fleeting knowledge of Pharo
>> but liked what I saw. The Squeak class library has seen organic growth
>> since 1978 or earlier. Pharo gave it a thorough overhaul. At the Pharo
>> kernel was a minimal image with a minimal class library. The rest of the
>> functionality was partitioned into packages that could be added to the
>> kernel image as required. Beautiful. But only my dream?
>>
>> *Matthew 7:24-27: And the rain fell, and the floods came, and the winds
>> blew and beat on that house, but it did not fall, because it had been
>> founded on the rock. And everyone who hears these words of mine and does
>> not do them will be like a foolish man who built his house on the sand."*
>>
>> I am developing an IDE for non-programmers called BabyIDE, a
>> non-intrusive extension of Squeak. Where the Class Browser in Squeak is
>> used to work with one class at the time, the BabyIDE browser is used to
>> work with structures of collaborating objects, ignoring their classes. I
>> would like to develop a BabyIDE image that gets broad usage and long life.
>> I'm looking for a rock to build on and hoped it could be what I thought was
>> the Pharo kernel+ a few selected packages. In your answer, I read that if I
>> build BabyIDE on Pharo, I will be building on sand.
>>
>> pharo.org writes: "*Pharo is a pure object-oriented programming
>> language...*". The only language I can see is defined by the release
>> image. A Pharo programmer builds application programs in this language. He
>> or she can add new classes, change existing ones, subclass them, add or
>> change methods, change the Smalltalk dictionary, etc. etc. An extremely
>> flexible and powerful language.
>>
>> A tale from the future when Pharo is a mainstream language: Business
>> customers benefit from end users using applications that are written by
>> Pharo programmers who built on the Pharo language and environment that had
>> been developed by the Pharo community. One day there is a happy
>> announcement: A new version of Pharo will be launched tomorrow. It is truly
>> cool and includes any number of improvements, some of them documented. And,
>> by the way, applications written in the current Pharo will no longer work.
>> So please inform your customers that you will not be able to serve them for
>> a while. We are confident that all your application programmers will be
>> happy to drop whatever they are doing in order to adapt their applications
>> to the new Pharo so that you can start serving your customers again.
>>
>> Cheers
>> --Trygve
>>
>>
>>
>> On 06.05.2018 13:00, Norbert Hartl wrote:
>>
>> Can you elaborate on what you consider as a kernel? There are always
>> things moving in the pharo world. The last years the virtual machine got
>> some iterations and it is still not fully stable. For pharo it is hard to
>> have it stable because we feel the need that a lot of the existing parts
>> need to be replaced to be useful in these times. Furthermore pharo is also
>> prototyping platform for programming language features. All of these are
>> counter-stability measures. So if you need a stable kernel from native
>> ground up to UI pharo wonât be that thing you are looking for the coming
>> years (if at all). You always need to adopt to change so you need to define
>> your required scope better in order to get an estimate.
>>
>> Norbert
>>
>> Am 06.05.2018 um 11:31 schrieb Trygve Reenskaug <trygver(a)ifi.uio.no>:
>>
>> I'm working on a programing paradigm and IDE for the personal programmer
>> who wants to control his or her IoT. The size of the target audience I have
>> in mind is >100 million. I gave up Squeak long ago as a platform because
>> they obsolete my code faster than I can write it. I have now frozen Squeak
>> 3.10.2 and hope its runtime will survive until I find a better foundation.
>> My hope is that Pharo has a stable kernel that I can build on. According
>> to Stephan, this is not so. Is there any plan for creating a stable Pharo
>> kernel that people can use for building software of lasting value for
>> millions of non-expert users?
>> --Thanks, Trygve
>>
>> On 05.05.2018 13:53, Stephan Eggermont wrote:
>>
>> Iâve taken a look at what would be needed to
>> support magma on pharo a few years ago. Chris always told us he uses it
>> professionally on squeak and *has not enough capacity to keep up with
>> changes in pharo without having a customer/maintainer for it.* Twice a year
>> or so someone asks about magma on pharo and takes a look. AFAIK there are
>> no real obstacles to a port, but magma uses a lot of deep implementation
>> specifics that will take an experienced smalltalker to deal with, and a lot
>> of mailing list archeology as pharo changed a lot since magma worked on
>> pharo last
>>
>> Stephan
>>
>>
>> --
>> *The essence of object orientation is that
>> objects collaborate to achieve a goal. *
>> Trygve Reenskaug mailto: trygver(a)ifi.uio.no <%20trygver(a)ifi.uio.no>
>> Morgedalsvn. 5A http://folk.uio.no/trygver/
>> N-0378 Oslo http://fullOO.info <http://fulloo.info/>
>> Norway Tel: (+47) 22 49 57 27
>>
>>
>> --
>> *The essence of object orientation is that
>> objects collaborate to achieve a goal. *
>> Trygve Reenskaug mailto: trygver(a)ifi.uio.no <%20trygver(a)ifi.uio.no>
>> Morgedalsvn. 5A http://folk.uio.no/trygver/
>> N-0378 Oslo http://fullOO.info <http://fulloo.info/>
>> Norway Tel: (+47) 22 49 57 27
>>
>>
>>
>> --
>>
>> *The essence of object orientation is that objects collaborate to
>> achieve a goal. *
>> Trygve Reenskaug mailto: trygver(a)ifi.uio.no <%20trygver(a)ifi.uio.no>
>> Morgedalsvn. 5A http://folk.uio.no/trygver/
>> N-0378 Oslo http://fullOO.info
>> Norway Tel: (+47) 22 49 57 27
>>
>
>
May 11, 2018
Re: [Pharo-users] Personal Programming onPharo
by David T. Lewis
Trygve,
Thank you for pressing the SEND button with a shaking hand. I am inspired
by your words. But I am only 22 years younger than you, and I hope that
others are reading and appreciating what you have to say.
Dave
On Thu, May 10, 2018 at 12:02:44PM +0200, Trygve Reenskaug wrote:
> At 87, I'm an old man. I'm told that I don't understand modern software,
> which is true. I use some programs daily: WIN7, Pharo, Thunderbird, ...
> From time to time, I am told that a new version of the program that
> fixes bugs and improves security is available. Press the button to
> install it.?? So I wonder: Is modern software out of control? Does
> /anybody /understand it, or is it so complicated that it is beyond human
> comprehension? Why didn't they get it right the first time? Most of us
> have the GOF book on Design Patterns on our bookshelf.?? In the
> introduction, they write:
>
> /An object-oriented program's runtime structure often bears little
> resemblance to its code structure. The code structure is frozen at
> compile-time; it consists of classes in fixed inheritance
> relationships. The runtime structure consists of rapidly changing
> networks of communicating objects.[GOF-95] p. 22./
>
> ??and
>
> /???, it's clear that code won't reveal everything about how a system
> will work. [ibid.p.23]/
>
> Modern programmers are thus reduced to relying on testing the code. In
> the words of Edsger Dijstra:
>
> /"Program testing can be used to show the presence of bugs, but
> never to show their absence!"[REF] /
>
> Modern programmers know all this but accept it as an unavoidable part of
> progress. Some may have seen it as a challenge, but they are up against
> the enormous inertia of a community who haven't changed their
> fundamental model of programming since the advent of the von Neumann
> stored program computer in 1948.
>
> I can't resist another quote; this time from Tony Hoare's TuringAward
> lecture:
>
> /???There are two ways of constructing a software design: One way is
> to make it so simple that there are obviously no deficiencies and
> the other is to make it so complicated that there are no obvious
> deficiencies. The first method is far more difficult. ???[Hoare-81]/
>
> In the lecture, Hoare was bemoaning his unsuccessful fight for
> simplicity. Developers, particularly committees?? of developers, seem to
> love complexity for its own sake. I have never accepted that bugs are an
> unavoidable part of software.(See "2.???? ??Get it Right the First Time"??
> in the draft article). Bugs are parts of the facts of life but they are
> not an acceptable part of it. Ideally, my software should be /so simple
> that there are obviously no deficiencies. /One of my attempts at coming
> to grips with the problem is the DCI programming paradigm. Here, /the
> runtime structure of rapidly changing networks of communicating objects/
> is specified in explicit code that says (almost) everything about what
> happens at runtime. Wouldn't it be wonderful if Pharo were to become
> first to overcome the GOF limitation? I challenge you to play with
> BabyIDE on Squeak?? and become convinced that it is a step in the right
> direction.
>
> I won't reread this message before I?? send it. I suppose it's
> controversial and should probably delete some or all of it to avoid
> angry answers. Another reason why I probably shouldn't send it is that I
> do not have time to engage in a discussion. I /must /give priority to
> finishing my article on DCI and PP. (A ~50 page draft is on my home
> page; it will be updated from time to time)
>
> I press the SEND button with a shaking hand
> --Trygve
>
>
>
> On 09.05.2018 15:53, Richard O'Keefe wrote:
> >???I have a C++ program written in the late 80s by someone
> >else.?? It used to run fine under cfront 2.0 and early g++.
> >Ten years after it was written it was impossible to compile.
> >
> >*Since* that there have been changes to streams and strings,
> >amongst other things.
> >
> >The 1989 C standard changed the semantics of mixed signed/unsigned
> >integer arithmetic.?? It also inadvertently rendered illegal a
> >widely used technique.?? It is notoriously the case these days
> >that compilers taking the C standards literally have "broken"
> >quite a lot of code that worked with less ambitious compilers.
> >I have been watching this phenomenon with considerable
> >nervousness.?? See for example
> >http://www.eng.utah.edu/~cs5785/slides-f10/Dangerous+Optimizations.pdf
> ><http://www.eng.utah.edu/%7Ecs5785/slides-f10/Dangerous+Optimizations.pdf>
> >
> >I have certainly had previously acceptable C89 code be rejected
> >by compilers as not being legal C11.?? It is true that compilers
> >tend to have command line/IDE switches to ask that old code be
> >compiled under old rules, but you cannot say that *in* the program.
> >There is no way to mark the language version, no
> >?????? #pragma stdc version iso99
> >
> >
> >
> >As for Java, I could rant about the floods of deprecation warnings
> >from old code.?? I shall content myself with one observation.
> >Read http://java-performance.info/changes-to-string-java-1-7-0_06/
> >Before Java 1.7, the substring operation in Java took O(1) time
> >and space.?? From Java 1.7 on, it takes time and space linear in the
> >size of the result.?? The syntax and abstract semantics did not
> >change but the pragmatics did.?? Code that had adequate performance
> >could suddenly start crawling.
> >
> >Oracle do a tolerably thorough job of describing compatibility
> >issues between JDK releases.?? See for example
> >http://www.oracle.com/technetwork/java/javase/8-compatibility-guide-2156366…
> >where we learned that the 'apt' tool was gone, the JDBC-ODBC bridge
> >was gone, 32-bit Solaris support (and yes, I was still using 32-bit
> >code in SPARC Solaris and Intel Solaris) was gone, and the type
> >inference algorithm had changed in a way that could break things.
> >I am still somewhat peeved about some of the rewriting I've had to
> >do over the last several releases.
> >
> >Then there is the simple fact that porting code from one release of
> >an OS to another can be a pain.?? Solaris 10 to OpenSolaris was easy.
> >OpenSolaris to Solaris 11 was not as painless.?? Solaris 11 to
> >OpenIndiana was not a happy time for me.?? OpenBSD changes forced
> >rework.?? I'd finally got my program to port smoothly between Solaris,
> >Darwin, and Linux.?? And then I had trouble porting to the next major
> >release of Linux.?? And with Ubuntu 17, I've got another problem I
> >still haven't tracked down.?? All of this in a C program that gets
> >regularly (sp)linted and checked all sorts of ways, written with
> >the intention of producing portable code.
> >
> >EVERYTHING BREAKS.
> >
> >
> >On 7 May 2018 at 22:42, Trygve Reenskaug <trygver(a)ifi.uio.no
> ><mailto:trygver@ifi.uio.no>> wrote:
> >
> > Please tell me when Java, C, C++, etc programs stopped working
> > because their runtime systems had changed.
> > Please tell me when Java, C, C++, etc compilers stopped compiling
> > old code because the languages had changed.
> >
> >
> > On 07.05.2018 11:57, Norbert Hartl wrote:
> >> I understand what you are saying but it contains some
> >> misconceptions about the modern software world.
> >>
> >> ???The earth is not stopping to turn just because you want to stay
> >> on the sunny side???
> >>
> >> There is two funny concepts going on in the modern software
> >> industry. The one tells you that because you want to do a product
> >> everything else around you should come to a full stop so can
> >> comfortably build your software not disturbed by other things.
> >> The second one tells you that you _have to upgrade_ ??? there is
> >> this magical force preventing you from staying where you are.
> >> Both notions are funny alone but they come combined and then they
> >> turn out to be a non-sensical monster.
> >>
> >> Let???s take a different approach. Put in everything you say about
> >> software, libraries, etc the word version. So you can build upon
> >> Pharo version 3 your own product. You can stay at that version
> >> and it won???t change. If the software you sell is not 80% pharo
> >> but your own you should not have a problem just to stay on that
> >> version because you develop your own stuff. But still the world
> >> did not stop turning and there is pharo 4. You decide there are a
> >> few nice features but the work to adjust is too big to take the
> >> risk. Then there is pharo 5 and you ??? nahhh not this time???.Then
> >> there is pharo6 and they not only changed the image but also the
> >> way source code is managed. That prevents you further from
> >> adjusting. But hey you can still be happy with pharo3 and it does
> >> not change.
> >>
> >> So what is the real problem? Yes, money/time is not enough. I
> >> think there are a lot of people risking their health to promote
> >> pharo and now we have a consortium that can pay engineers to do
> >> work on pharo. So let me tell you a future story:
> >>
> >> You see what pharo is doing and you think it is good. You can
> >> also see that there are too less resources to proceed in the way
> >> you need it to go. So you decide to show pharo to the world
> >> inspiring people with some kind of a vision. The result is that
> >> more people pay into the consortium and we hire more engineers.
> >> And then one day the consortium has enough money to pay engineers
> >> that can care about a LTS (long term support) version of pharo.
> >> So you can stay on pharo version 3 and still get those annoying
> >> bugs fixed. And hey this team has also enough time to provide you
> >> with tools that make a migration to pharo version 4 more easy and
> >> less annoying for you. And then you have your own product based
> >> on pharo version 4. And then for version 5, version 6,???. Sounds
> >> like a dream???but hey???it is indeed realistic. It just depends on
> >> how the people approach it
> >>
> >> How does this sound?
> >>
> >> Norbert
> >>
> >>> Am 07.05.2018 um 11:31 schrieb Trygve Reenskaug
> >>> <trygver(a)ifi.uio.no <mailto:trygver@ifi.uio.no>>:
> >>>
> >>> Thanks for your quick answer.?? I have only a fleeting knowledge
> >>> of Pharo but liked what I saw. The Squeak class library has seen
> >>> organic growth since 1978 or earlier. Pharo gave it a thorough
> >>> overhaul. At the Pharo kernel was a minimal image with a minimal
> >>> class library. The rest of the functionality was partitioned
> >>> into packages that could be added to the kernel image as
> >>> required. Beautiful. But only my dream?
> >>>
> >>> /Matthew 7:24-27: And the rain fell, and the floods came,
> >>> and the winds blew and beat on that house, but it did not
> >>> fall, because it had been founded on the rock. And everyone
> >>> who hears these words of mine and does not do them will be
> >>> like a foolish man who built his house on the sand."/
> >>>
> >>> I am developing an IDE for non-programmers called BabyIDE, a
> >>> non-intrusive extension of Squeak. Where the Class Browser in
> >>> Squeak is used to work with one class at the time, the BabyIDE
> >>> browser is used to work with structures of collaborating
> >>> objects, ignoring their classes. I would like to develop a
> >>> BabyIDE image that gets broad usage and long life. I'm looking
> >>> for a rock to build on and hoped it could be what I thought was
> >>> the Pharo kernel+ a few selected packages. In your answer, I
> >>> read that if I build BabyIDE on Pharo, I will be building on sand.
> >>>
> >>> pharo.org <http://pharo.org/>writes: "/Pharo is a pure
> >>> object-oriented programming language.../". The only language I
> >>> can see is defined by the release image. A Pharo programmer
> >>> builds application programs in this language. He or she can add
> >>> new classes, change existing ones, subclass them, add or change
> >>> methods, change the Smalltalk dictionary, etc. etc.?? An
> >>> extremely flexible and powerful language.
> >>>
> >>> A tale from the future when Pharo is a mainstream
> >>> language:Business customers benefit from end users using
> >>> applications that are written by Pharo programmers who built on
> >>> the Pharo language and environment that had been developed by
> >>> the Pharo community. One day there is a happy announcement: A
> >>> new version of Pharo will be launched tomorrow. It is truly cool
> >>> and includes any number of improvements, some of them
> >>> documented. And, by the way, applications written in the current
> >>> Pharo will no longer work. So please inform your customers that
> >>> you will not be able to serve them for a while. We are confident
> >>> that all your application programmers will be happy to drop
> >>> whatever they are doing in order to adapt their applications to
> >>> the new Pharo so that you can start serving your customers again.
> >>>
> >>> Cheers
> >>> --Trygve
> >>>
> >>>
> >>>
> >>> On 06.05.2018 13:00, Norbert Hartl wrote:
> >>>> Can you elaborate on what you consider as a kernel? There are
> >>>> always things moving in the pharo world. The last years the
> >>>> virtual machine got some iterations and it is still not fully
> >>>> stable. For pharo it is hard to have it stable because we feel
> >>>> the need that a lot of the existing parts need to be replaced
> >>>> to be useful in these times. Furthermore pharo is also
> >>>> prototyping platform for programming language features. All of
> >>>> these are counter-stability measures. So if you need a stable
> >>>> kernel from native ground up to UI pharo won???t be that thing
> >>>> you are looking for the coming years (if at all). You always
> >>>> need to adopt to change so you need to define your required
> >>>> scope better in order to get an estimate.
> >>>>
> >>>> Norbert
> >>>>
> >>>> Am 06.05.2018 um 11:31 schrieb Trygve Reenskaug
> >>>> <trygver(a)ifi.uio.no <mailto:trygver@ifi.uio.no>>:
> >>>>
> >>>>> I'm working on a programing paradigm and IDE for the personal
> >>>>> programmer who wants to control his or her IoT. The size of
> >>>>> the target audience I have in mind is >100 million. I gave up
> >>>>> Squeak long ago as a platform because they obsolete my code
> >>>>> faster than I can write it.?? I have now frozen Squeak 3.10.2
> >>>>> and hope its runtime will survive until I find a better
> >>>>> foundation. My hope is that Pharo has a stable kernel that I
> >>>>> can build on.?? According to Stephan, this is not so. Is there
> >>>>> any plan for creating a stable Pharo kernel that people can
> >>>>> use for building software of lasting value for millions of
> >>>>> non-expert users?
> >>>>> --Thanks, Trygve
> >>>>>
> >>>>> On 05.05.2018 13:53, Stephan Eggermont wrote:
> >>>>>> I???ve taken a look at what would be needed to
> >>>>>> support magma on pharo a few years ago. Chris always told us he
> >>>>>> uses it
> >>>>>> professionally on squeak and/*has not enough capacity to keep up
> >>>>>> with changes in pharo
> >>>>>> without having a customer/maintainer for it.*/ Twice a year
> >>>>>> or so someone asks about magma on pharo and takes a look. AFAIK
> >>>>>> there are
> >>>>>> no real obstacles to a port, but magma uses a lot of deep
> >>>>>> implementation
> >>>>>> specifics that will take an experienced smalltalker to deal with,
> >>>>>> and a lot
> >>>>>> of mailing list archeology as pharo changed a lot since magma
> >>>>>> worked on
> >>>>>> pharo last
> >>>>>>
> >>>>>> Stephan
> >>>>>
> >>>>> --
> >>>>> /The essence of object orientation is that
> >>>>> objectscollaboratetoachieve a goal./
> >>>>> TrygveReenskaug mailto: trygver(a)ifi.uio.no
> >>>>> <mailto:%20trygver@ifi.uio.no>
> >>>>> Morgedalsvn. 5A http://folk.uio.no/trygver/
> >>>>> <http://folk.uio.no/trygver/>
> >>>>> N-0378 Oslo http://fullOO.info <http://fulloo.info/>
> >>>>> Norway Tel: (+47) 22 49 57 27
> >>>
> >>> --
> >>> /The essence of object orientation is that
> >>> objectscollaboratetoachieve a goal./
> >>> TrygveReenskaug mailto: trygver(a)ifi.uio.no
> >>> <mailto:%20trygver@ifi.uio.no>
> >>> Morgedalsvn. 5A http://folk.uio.no/trygver/
> >>> <http://folk.uio.no/trygver/>
> >>> N-0378 Oslo http://fullOO.info <http://fulloo.info/>
> >>> Norway Tel: (+47) 22 49 57 27
> >>
> >
> > --
> >
> > /The essence of object orientation is that objects collaborateto
> > achieve a goal. /
> > Trygve Reenskaug mailto: trygver(a)ifi.uio.no
> > <mailto:%20trygver@ifi.uio.no>
> > Morgedalsvn. 5A http://folk.uio.no/trygver/
> > <http://folk.uio.no/trygver/>
> > N-0378 Oslo http://fullOO.info <http://fullOO.info>
> > Norway Tel: (+47) 22 49 57 27
> >
> >
>
> --
>
> /The essence of object orientation is that objects collaborateto achieve
> a goal. /
> Trygve Reenskaug mailto: trygver(a)ifi.uio.no <mailto:%20trygver@ifi.uio.no>
> Morgedalsvn. 5A http://folk.uio.no/trygver/
> N-0378 Oslo http://fullOO.info
> Norway??????????????????????????????????????????Tel: (+47) 22 49 57 27
>
May 11, 2018
Re: [Pharo-users] Metacello load in code vs. Iceberg menu install? Can you automate remote loading?
by Tim Mackinnon
This was indeed the answer - use the gitlab protocol and specify a branch e.g.
Iceberg enableMetacelloIntegration: true.
Metacello new
baseline: 'PagerDuty';
repository: âgitlab:// <mailto:git@gitlab.com>macta/WillowPagerDuty:master/src';
load.
Thanks Gaby
Tim
> On 10 May 2018, at 01:26, Gabriel Cotelli <g.cotelli(a)gmail.com> wrote:
>
> I think you can use:
> Metacello new
> baseline: 'PagerDuty';
> repository: 'gitlab://macta/WillowPagerDuty:master/source';
> load.
>
> or something like that
>
> On Wed, May 9, 2018 at 8:44 PM Tim Mackinnon <tim(a)testit.works> wrote:
> Hi - Iâm trying to automate the deployment of a seaside image to Digital Ocean. I was following the Enterprise Pharo booklet - and its a bit out of date, but I wanted to do the bit about taking a clean image and then loading in my project which Iâve stored in Git using Iceberg.
>
> So on the command line I am trying to eval â
> Iceberg enableMetacelloIntegration: true.
> Metacello new
> baseline: 'PagerDuty';
> repository: 'git(a)gitlab.com <mailto:git@gitlab.com>:macta/WillowPagerDuty.git';
> load.â
>
> But I get retry errors and a walkback, so Iâve tried to do the same in the playground in a fresh image and its true - I get an error because ZnClient is trying to connect to a url like "http://:80/git@gitlab.com:macta/WillowPagerDuty.git/?C=M;O%3DD <http://:80/git@gitlab.com:macta/WillowPagerDuty.git/?C=M;O=D>â (so it interprets that git@ specification strangely).
>
> But what is weird, is that if I use Iceberg - connected to the same repo (and specified the same way) - and then use the Metacello - Install baseline menu (right click on the BaselineOfXXX package) it then works perfectly.
>
> So whatâs the difference? It looks like the latter is mapping down to a "repository: 'gitlocal://' <>, packageDir;â whereas the above is trying to read it over the wire?
>
> I then tried using an access token for gitlab, so its an https variant - but that gave me an error as well? Does this mean to automate I have to bring down the initial BaseLine - but then if that baseline refers to others - that seems to work, so Iâm a bit confused about what is going on?
>
> Tim
May 10, 2018
Re: [Pharo-users] Package extension. Adding instance variables to classes
by Guillermo Polito
Just be careful, that privateState thing looks like a Moose only Famix
feature. It't not available in plain Pharo objects :)
On Wed, May 9, 2018 at 2:09 AM, Alidra Abdelghani via Pharo-users <
pharo-users(a)lists.pharo.org> wrote:
>
>
> ---------- Forwarded message ----------
> From: Alidra Abdelghani <alidrandco(a)yahoo.fr>
> To: Pavel Krivanek <pavel.krivanek(a)gmail.com>
> Cc: Any question about pharo is welcome <pharo-users(a)lists.pharo.org>
> Bcc:
> Date: Wed, 9 May 2018 01:09:06 +0100
> Subject: Re: Package extension. Adding instance variables to classes
> Hi Pavel,
>
> Thank you for your answer.
> I actually didnât know about this mechanism.
> I think it is will do the job :)
> I have probably to rewrite some parts pf my code to access my variables
> through privateState. no?
>
>
> Thanks again
> Abdelghani
>
> On 07 May 2018, at 13:15, pharo-users-request(a)lists.pharo.org wrote:
>
>
> Message: 1
> Date: Mon, 7 May 2018 13:43:56 +0200
> From: Pavel Krivanek <pavel.krivanek(a)gmail.com>
> To: Any question about pharo is welcome <pharo-users(a)lists.pharo.org>
> Subject: Re: [Pharo-users] Package extension. Adding instance
> variables to classes
> Message-ID:
> <CAHN2FzeMiBL4Y8asJ0XCjS2AQdxycoN+pbc+Hsd=trMnmuiJqw(a)mail.gmail.com>
> Content-Type: text/plain; charset="utf-8"
>
> 2018-05-07 12:25 GMT+02:00 Alidra Abdelghani via Pharo-users <
> pharo-users(a)lists.pharo.org>:
>
>
>
> ---------- P?eposlan? zpr?va ----------
> From: Alidra Abdelghani <alidrandco(a)yahoo.fr>
> To: pharo-users(a)lists.pharo.org
> Cc:
> Bcc:
> Date: Mon, 7 May 2018 11:25:49 +0100
> Subject: Package extension. Adding instance variables to classes
> Hi,
>
> I am working on a package named ClassNamesAnalyzer and I need to add code
> to third party classes in other packages (for instance the FAMIX-Core
> package).
> ?Extending? third party classes with methods is easy; I just need to
> categorise my methods under the *ClassNamesAnalyzer protocole so that
> loading my package will load them in the image.
> However, if I want to add instance variables to theses classes, they are
> not there when I load the package in a new image.
>
> *So my question is* : is there a way to include instance variables
> addition to other packages in my package?
>
>
> Currently not, you should use privateState
>
>
> *Another question is* : is it good practice to add instance variables to
> classes in third party packages and is there a way to avoid it (because I
> am not very confortable with that idea)?
>
>
> It is not, see FAMIXContainerEntity>>#definedAnnotationTypes how this
> issue
> is currently being solved using the privateState.
>
> Cheers,
> -- Pavel
>
>
>
> Thanks in advance,
> Abdelghani
>
>
>
>
>
--
Guille Polito
Research Engineer
Centre de Recherche en Informatique, Signal et Automatique de Lille
CRIStAL - UMR 9189
French National Center for Scientific Research - *http://www.cnrs.fr
<http://www.cnrs.fr>*
*Web:* *http://guillep.github.io* <http://guillep.github.io>
*Phone: *+33 06 52 70 66 13
May 10, 2018
Re: [Pharo-users] Serializing Excpetion with Fuel on the production and opening debugger on the dev machine - hot to? [Pharo 5]
by Petr Fischer
Thanks to all! Works perfectly! pf
> Hereâs the snippet to open a debugger (used in Pharo 6 tho)
>
> materializedContext := (FLMaterializer newDefault
> materializeFrom: gzip) root.
>
> sessionName := 'debug saved Fuel context: {1}' format: {aName}.
>
> GTGenericStackDebugger openOn:
> ((Process
> forContext: materializedContext
> priority: Processor userInterruptPriority)
> newDebugSessionNamed: sessionName startedAt: materializedContext).
>
> Tim
>
> Sent from my iPhone
>
> > On 10 May 2018, at 12:41, Tim Mackinnon <tim(a)testit.works> wrote:
> >
> > PharoLambda does this - Iâm not near a computer to extract the code, but if you need it quickly you should find it easily - there is a class method on Lambda - something like debugSavedS3 which shows how to read in a file (from S3) and then launch a debugger.
> >
> > Tim
> >
> > Sent from my iPhone
> >
> >> On 10 May 2018, at 10:58, Petr Fischer <petr.fischer(a)me.com> wrote:
> >>
> >> Hello, what is the current procedure for achieving %subj%? I am on latest Pharo 5.
> >>
> >> I am serializing server side exception with:
> >>
> >> FLSerializer serialize: anException toFileNamed: 'something'.
> >>
> >> But how to open a debugger after materialization on the "dev machine side"?
> >>
> >> I found (Google, Mailing list) some examples, but it's obsolete (the debugger class no longer exists in Pharo 5 etc etc).
> >>
> >> Thanks! Petr Fischer
> >>
> >
> >
May 10, 2018
Re: [Pharo-users] Serializing Excpetion with Fuel on the production and opening debugger on the dev machine - hot to? [Pharo 5]
by Tim Mackinnon
Hereâs the snippet to open a debugger (used in Pharo 6 tho)
materializedContext := (FLMaterializer newDefault
materializeFrom: gzip) root.
sessionName := 'debug saved Fuel context: {1}' format: {aName}.
GTGenericStackDebugger openOn:
((Process
forContext: materializedContext
priority: Processor userInterruptPriority)
newDebugSessionNamed: sessionName startedAt: materializedContext).
Tim
Sent from my iPhone
> On 10 May 2018, at 12:41, Tim Mackinnon <tim(a)testit.works> wrote:
>
> PharoLambda does this - Iâm not near a computer to extract the code, but if you need it quickly you should find it easily - there is a class method on Lambda - something like debugSavedS3 which shows how to read in a file (from S3) and then launch a debugger.
>
> Tim
>
> Sent from my iPhone
>
>> On 10 May 2018, at 10:58, Petr Fischer <petr.fischer(a)me.com> wrote:
>>
>> Hello, what is the current procedure for achieving %subj%? I am on latest Pharo 5.
>>
>> I am serializing server side exception with:
>>
>> FLSerializer serialize: anException toFileNamed: 'something'.
>>
>> But how to open a debugger after materialization on the "dev machine side"?
>>
>> I found (Google, Mailing list) some examples, but it's obsolete (the debugger class no longer exists in Pharo 5 etc etc).
>>
>> Thanks! Petr Fischer
>>
>
>
May 10, 2018
Re: [Pharo-users] Serializing Excpetion with Fuel on the production and opening debugger on the dev machine - hot to? [Pharo 5]
by Norbert Hartl
> Am 10.05.2018 um 11:58 schrieb Petr Fischer <petr.fischer(a)me.com>:
>
> Hello, what is the current procedure for achieving %subj%? I am on latest Pharo 5.
>
> I am serializing server side exception with:
>
> FLSerializer serialize: anException toFileNamed: 'something'.
>
> But how to open a debugger after materialization on the "dev machine side"?
>
> I found (Google, Mailing list) some examples, but it's obsolete (the debugger class no longer exists in Pharo 5 etc etc).
>
> Thanks! Petr Fischer
>
Have a look at
FuelOutStackDebugAction>>#serializeTestFailureContext:toFileNamed:
Hope this helps!
Norbert
May 10, 2018
Re: [Pharo-users] Serializing Excpetion with Fuel on the production and opening debugger on the dev machine - hot to? [Pharo 5]
by Tim Mackinnon
PharoLambda does this - Iâm not near a computer to extract the code, but if you need it quickly you should find it easily - there is a class method on Lambda - something like debugSavedS3 which shows how to read in a file (from S3) and then launch a debugger.
Tim
Sent from my iPhone
> On 10 May 2018, at 10:58, Petr Fischer <petr.fischer(a)me.com> wrote:
>
> Hello, what is the current procedure for achieving %subj%? I am on latest Pharo 5.
>
> I am serializing server side exception with:
>
> FLSerializer serialize: anException toFileNamed: 'something'.
>
> But how to open a debugger after materialization on the "dev machine side"?
>
> I found (Google, Mailing list) some examples, but it's obsolete (the debugger class no longer exists in Pharo 5 etc etc).
>
> Thanks! Petr Fischer
>
May 10, 2018
Re: [Pharo-users] Personal Programming onPharo
by H. Hirzel
Hello Trygve
I am interested in an updated zip file of
http://fulloo.info/Downloads/BabyIDE.zip (Squeak 3.10)
Includes Squeak BabyIDE image and Win7-VM.
As you write a new Squeak version will come later.
--Hannes
On 5/10/18, Trygve Reenskaug <trygver(a)ifi.uio.no> wrote:
> Hi Hannes,
> It's great that you consider spending time on BabyIDE. Porting BabyIDE
> to Pharo needs to be done sooner or later, but it may be harder to find
> somebody who will actually use the results.(BabyIDE was first released
> 10 years ago. AFAIK I am still the only user of the ST version.)
>
> A plan for creating an alpha version of PP could be
>
> 1. Establish a project with funding and people (including project
> manager and lead programmer).
> 2. Use present BabyIDE to create a new and clean Squeak version with
> DCI architecture.
> 3. Port new BabyIDE to Pharo.
> 4. ...
>
> We will then have a platform that extends Pharo with the new
> programming paradigm for programming system behavior (use cases). This
> will be a valuable addition to Pharo as a tool for professional
> programmers. We will also have a platform for building an alpha version
> of PP.
>
> /But before I do anything else, I have to finish my PP documentation on
> my home page
> http://folk.uio.no/trygver/
> ./
>
> More about DCI at
> http://fulloo.info
> http://fulloo.info/Examples/SqueakExamples/index.html Includes code
> for examples
> http://fulloo.info/Downloads/BabyIDE.zip Includes Squeak BabyIDE
> image and Win7-VM.
> I'll update the ZIP if anybody is interested in
> actually running BabyIDE
> --Trygve
>
>
>
>
> On 08.05.2018 20:06, H. Hirzel wrote:
>> On 5/6/18, Trygve Reenskaug<trygver(a)ifi.uio.no> wrote:
>>> I'm working on a programing paradigm and IDE for the personal programmer
>>> who wants to control his or her IoT. The size of the target audience I
>>> have in mind is >100 million. I gave up Squeak long ago as a platform
>>> because they obsolete my code faster than I can write it. I have now
>>> frozen Squeak 3.10.2 and hope its runtime will survive until I find a
>>> better foundation. My hope is that Pharo has a stable kernel that I can
>>> build on.
>> Hello Tryge
>>
>> Good to see that you reconsider to use Smalltalk in 2018, this time
>> Pharo.
>>
>> Am I assuming correctly that you want to continue to work on your IDE
>> which the supports the DCI (Data-Context-Interaction) programming
>> style [1]? The IDE was called "BabyIDE" [2].
>>
>> In 2015 you wrote to the Squeak mailing list that you are abandoning
>> Squeak (Squeak 3.8, 4.5 or 4.6 at that time and Smalltalk as a whole)
>> in favour of JavaScript, a mainstream language. That you now at least
>> reconsider to use Smalltalk (Pharo) is an interesting result as it
>> reinforces the idea that doing things the Smalltalk way is more
>> promising than going for JavaScript directly [6].
>>
>> As for loading the BabyIDE into Squeak: It is noteworthy that after 10
>> years (done around Squeak version 3.8) of maintaining a fork the
>> Squeakland (Etoys) image has been merged back into Squeak 6.0a trunk.
>> [5]
>>
>> I could actually load some of your tools last year into Squeak 6.0a
>> with very modest fixes last year. [2].
>>
>> It seems that splitting your IDE enhancements into different parts
>> which can be treated independently will probably help.
>>
>> And in addition helpful would be IMHO to write HOW you construct
>> these tools and WHY you do it. These will help people to maintain your
>> code even if the underlying system changes.
>>
>> It seems worthwhile to try out how it goes with the most recent Squeak
>> version, Squeak 6.0a trunk [8].
>>
>> Another option is to wait a few months and look for the bootstrap
>> version of Pharo 7.
>> All the code is in readable format on github and various types of
>> image files may be built build from it [7].
>>
>> And the third option is to check out if Cuis (the third Smalltalk
>> which runs on the OpenSmalltalk [3] VM) suits your needs. [4]
>>
>>
>> Kind regards
>>
>> Hannes Hirzel
>>
>>
>> -------------------
>>
>> [1] Data-Context-Interactionhttp://wiki.squeak.org/squeak/6048
>> [2] BabySREhttp://wiki.squeak.org/squeak/2550
>> [3]http://www.opensmalltalk.org/
>> [4] Cuis Smalltalk
>> https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev ; there is a Cuis
>> mailing list.
>> [5] Etoys in 2017http://wiki.squeak.org/squeak/6531
>> [6] Of course these days JavaScript cannot be avoided. But it is
>> preferable to generate it with a Smalltalk tool.
>> [7] The file format used in Pharo 7 is called Tonel (no exclamation
>> marks!)
>> [8] Squeak 6.0a trunk downloadhttp://files.squeak.org/6.0alpha/
>>
>>
>
> --
>
> /The essence of object orientation is that objects collaborateto achieve
> a goal. /
> Trygve Reenskaug mailto: trygver(a)ifi.uio.no <mailto:%20trygver@ifi.uio.no>
> Morgedalsvn. 5A http://folk.uio.no/trygver/
> N-0378 Oslo http://fullOO.info
> Norway Tel: (+47) 22 49 57 27
>
>
May 10, 2018
Re: [Pharo-users] Personal Programming onPharo
by H. Hirzel
Hello Trygve
I think you have written an excellent summary about the challenge
presented by object-oriented programming.
GOF book on Design Patterns
â¦, it's clear that code won't reveal everything about how a system
will work. [ibid.p.23]
And the development of Pharo and Squeak the last 10..15 years
exemplifies that this is indeed still a challenge though there are
some examples and ideas how to cope with it.
So is this a case for promoting DCI and related tools (which by itself
goes back 10 years)?
--Hannes
On 5/10/18, Trygve Reenskaug <trygver(a)ifi.uio.no> wrote:
> At 87, I'm an old man. I'm told that I don't understand modern software,
> which is true. I use some programs daily: WIN7, Pharo, Thunderbird, ...
> From time to time, I am told that a new version of the program that
> fixes bugs and improves security is available. Press the button to
> install it. So I wonder: Is modern software out of control? Does
> /anybody /understand it, or is it so complicated that it is beyond human
> comprehension? Why didn't they get it right the first time? Most of us
> have the GOF book on Design Patterns on our bookshelf. In the
> introduction, they write:
>
> /An object-oriented program's runtime structure often bears little
> resemblance to its code structure. The code structure is frozen at
> compile-time; it consists of classes in fixed inheritance
> relationships. The runtime structure consists of rapidly changing
> networks of communicating objects.[GOF-95] p. 22./
>
> and
>
> /â¦, it's clear that code won't reveal everything about how a system
> will work. [ibid.p.23]/
>
> Modern programmers are thus reduced to relying on testing the code. In
> the words of Edsger Dijstra:
>
> /"Program testing can be used to show the presence of bugs, but
> never to show their absence!"[REF] /
>
> Modern programmers know all this but accept it as an unavoidable part of
> progress. Some may have seen it as a challenge, but they are up against
> the enormous inertia of a community who haven't changed their
> fundamental model of programming since the advent of the von Neumann
> stored program computer in 1948.
>
> I can't resist another quote; this time from Tony Hoare's TuringAward
> lecture:
>
> /âThere are two ways of constructing a software design: One way is
> to make it so simple that there are obviously no deficiencies and
> the other is to make it so complicated that there are no obvious
> deficiencies. The first method is far more difficult. â¦[Hoare-81]/
>
> In the lecture, Hoare was bemoaning his unsuccessful fight for
> simplicity. Developers, particularly committees of developers, seem to
> love complexity for its own sake. I have never accepted that bugs are an
> unavoidable part of software.(See "2. Get it Right the First Time"
> in the draft article). Bugs are parts of the facts of life but they are
> not an acceptable part of it. Ideally, my software should be /so simple
> that there are obviously no deficiencies. /One of my attempts at coming
> to grips with the problem is the DCI programming paradigm. Here, /the
> runtime structure of rapidly changing networks of communicating objects/
> is specified in explicit code that says (almost) everything about what
> happens at runtime. Wouldn't it be wonderful if Pharo were to become
> first to overcome the GOF limitation? I challenge you to play with
> BabyIDE on Squeak and become convinced that it is a step in the right
> direction.
>
> I won't reread this message before I send it. I suppose it's
> controversial and should probably delete some or all of it to avoid
> angry answers. Another reason why I probably shouldn't send it is that I
> do not have time to engage in a discussion. I /must /give priority to
> finishing my article on DCI and PP. (A ~50 page draft is on my home
> page; it will be updated from time to time)
>
> I press the SEND button with a shaking hand
> --Trygve
>
>
>
> On 09.05.2018 15:53, Richard O'Keefe wrote:
>> âI have a C++ program written in the late 80s by someone
>> else. It used to run fine under cfront 2.0 and early g++.
>> Ten years after it was written it was impossible to compile.
>>
>> *Since* that there have been changes to streams and strings,
>> amongst other things.
>>
>> The 1989 C standard changed the semantics of mixed signed/unsigned
>> integer arithmetic. It also inadvertently rendered illegal a
>> widely used technique. It is notoriously the case these days
>> that compilers taking the C standards literally have "broken"
>> quite a lot of code that worked with less ambitious compilers.
>> I have been watching this phenomenon with considerable
>> nervousness. See for example
>> http://www.eng.utah.edu/~cs5785/slides-f10/Dangerous+Optimizations.pdf
>> <http://www.eng.utah.edu/%7Ecs5785/slides-f10/Dangerous+Optimizations.pdf>
>>
>> I have certainly had previously acceptable C89 code be rejected
>> by compilers as not being legal C11. It is true that compilers
>> tend to have command line/IDE switches to ask that old code be
>> compiled under old rules, but you cannot say that *in* the program.
>> There is no way to mark the language version, no
>> #pragma stdc version iso99
>>
>>
>>
>> As for Java, I could rant about the floods of deprecation warnings
>> from old code. I shall content myself with one observation.
>> Read http://java-performance.info/changes-to-string-java-1-7-0_06/
>> Before Java 1.7, the substring operation in Java took O(1) time
>> and space. From Java 1.7 on, it takes time and space linear in the
>> size of the result. The syntax and abstract semantics did not
>> change but the pragmatics did. Code that had adequate performance
>> could suddenly start crawling.
>>
>> Oracle do a tolerably thorough job of describing compatibility
>> issues between JDK releases. See for example
>> http://www.oracle.com/technetwork/java/javase/8-compatibility-guide-2156366…
>> where we learned that the 'apt' tool was gone, the JDBC-ODBC bridge
>> was gone, 32-bit Solaris support (and yes, I was still using 32-bit
>> code in SPARC Solaris and Intel Solaris) was gone, and the type
>> inference algorithm had changed in a way that could break things.
>> I am still somewhat peeved about some of the rewriting I've had to
>> do over the last several releases.
>>
>> Then there is the simple fact that porting code from one release of
>> an OS to another can be a pain. Solaris 10 to OpenSolaris was easy.
>> OpenSolaris to Solaris 11 was not as painless. Solaris 11 to
>> OpenIndiana was not a happy time for me. OpenBSD changes forced
>> rework. I'd finally got my program to port smoothly between Solaris,
>> Darwin, and Linux. And then I had trouble porting to the next major
>> release of Linux. And with Ubuntu 17, I've got another problem I
>> still haven't tracked down. All of this in a C program that gets
>> regularly (sp)linted and checked all sorts of ways, written with
>> the intention of producing portable code.
>>
>> EVERYTHING BREAKS.
>>
>>
>> On 7 May 2018 at 22:42, Trygve Reenskaug <trygver(a)ifi.uio.no
>> <mailto:trygver@ifi.uio.no>> wrote:
>>
>> Please tell me when Java, C, C++, etc programs stopped working
>> because their runtime systems had changed.
>> Please tell me when Java, C, C++, etc compilers stopped compiling
>> old code because the languages had changed.
>>
>>
>> On 07.05.2018 11:57, Norbert Hartl wrote:
>>> I understand what you are saying but it contains some
>>> misconceptions about the modern software world.
>>>
>>> âThe earth is not stopping to turn just because you want to stay
>>> on the sunny sideâ
>>>
>>> There is two funny concepts going on in the modern software
>>> industry. The one tells you that because you want to do a product
>>> everything else around you should come to a full stop so can
>>> comfortably build your software not disturbed by other things.
>>> The second one tells you that you _have to upgrade_ ⦠there is
>>> this magical force preventing you from staying where you are.
>>> Both notions are funny alone but they come combined and then they
>>> turn out to be a non-sensical monster.
>>>
>>> Letâs take a different approach. Put in everything you say about
>>> software, libraries, etc the word version. So you can build upon
>>> Pharo version 3 your own product. You can stay at that version
>>> and it wonât change. If the software you sell is not 80% pharo
>>> but your own you should not have a problem just to stay on that
>>> version because you develop your own stuff. But still the world
>>> did not stop turning and there is pharo 4. You decide there are a
>>> few nice features but the work to adjust is too big to take the
>>> risk. Then there is pharo 5 and you ⦠nahhh not this timeâ¦.Then
>>> there is pharo6 and they not only changed the image but also the
>>> way source code is managed. That prevents you further from
>>> adjusting. But hey you can still be happy with pharo3 and it does
>>> not change.
>>>
>>> So what is the real problem? Yes, money/time is not enough. I
>>> think there are a lot of people risking their health to promote
>>> pharo and now we have a consortium that can pay engineers to do
>>> work on pharo. So let me tell you a future story:
>>>
>>> You see what pharo is doing and you think it is good. You can
>>> also see that there are too less resources to proceed in the way
>>> you need it to go. So you decide to show pharo to the world
>>> inspiring people with some kind of a vision. The result is that
>>> more people pay into the consortium and we hire more engineers.
>>> And then one day the consortium has enough money to pay engineers
>>> that can care about a LTS (long term support) version of pharo.
>>> So you can stay on pharo version 3 and still get those annoying
>>> bugs fixed. And hey this team has also enough time to provide you
>>> with tools that make a migration to pharo version 4 more easy and
>>> less annoying for you. And then you have your own product based
>>> on pharo version 4. And then for version 5, version 6,â¦. Sounds
>>> like a dreamâ¦but heyâ¦it is indeed realistic. It just depends on
>>> how the people approach it
>>>
>>> How does this sound?
>>>
>>> Norbert
>>>
>>>> Am 07.05.2018 um 11:31 schrieb Trygve Reenskaug
>>>> <trygver(a)ifi.uio.no <mailto:trygver@ifi.uio.no>>:
>>>>
>>>> Thanks for your quick answer. I have only a fleeting knowledge
>>>> of Pharo but liked what I saw. The Squeak class library has seen
>>>> organic growth since 1978 or earlier. Pharo gave it a thorough
>>>> overhaul. At the Pharo kernel was a minimal image with a minimal
>>>> class library. The rest of the functionality was partitioned
>>>> into packages that could be added to the kernel image as
>>>> required. Beautiful. But only my dream?
>>>>
>>>> /Matthew 7:24-27: And the rain fell, and the floods came,
>>>> and the winds blew and beat on that house, but it did not
>>>> fall, because it had been founded on the rock. And everyone
>>>> who hears these words of mine and does not do them will be
>>>> like a foolish man who built his house on the sand."/
>>>>
>>>> I am developing an IDE for non-programmers called BabyIDE, a
>>>> non-intrusive extension of Squeak. Where the Class Browser in
>>>> Squeak is used to work with one class at the time, the BabyIDE
>>>> browser is used to work with structures of collaborating
>>>> objects, ignoring their classes. I would like to develop a
>>>> BabyIDE image that gets broad usage and long life. I'm looking
>>>> for a rock to build on and hoped it could be what I thought was
>>>> the Pharo kernel+ a few selected packages. In your answer, I
>>>> read that if I build BabyIDE on Pharo, I will be building on sand.
>>>>
>>>> pharo.org <http://pharo.org/>writes: "/Pharo is a pure
>>>> object-oriented programming language.../". The only language I
>>>> can see is defined by the release image. A Pharo programmer
>>>> builds application programs in this language. He or she can add
>>>> new classes, change existing ones, subclass them, add or change
>>>> methods, change the Smalltalk dictionary, etc. etc. An
>>>> extremely flexible and powerful language.
>>>>
>>>> A tale from the future when Pharo is a mainstream
>>>> language:Business customers benefit from end users using
>>>> applications that are written by Pharo programmers who built on
>>>> the Pharo language and environment that had been developed by
>>>> the Pharo community. One day there is a happy announcement: A
>>>> new version of Pharo will be launched tomorrow. It is truly cool
>>>> and includes any number of improvements, some of them
>>>> documented. And, by the way, applications written in the current
>>>> Pharo will no longer work. So please inform your customers that
>>>> you will not be able to serve them for a while. We are confident
>>>> that all your application programmers will be happy to drop
>>>> whatever they are doing in order to adapt their applications to
>>>> the new Pharo so that you can start serving your customers again.
>>>>
>>>> Cheers
>>>> --Trygve
>>>>
>>>>
>>>>
>>>> On 06.05.2018 13:00, Norbert Hartl wrote:
>>>>> Can you elaborate on what you consider as a kernel? There are
>>>>> always things moving in the pharo world. The last years the
>>>>> virtual machine got some iterations and it is still not fully
>>>>> stable. For pharo it is hard to have it stable because we feel
>>>>> the need that a lot of the existing parts need to be replaced
>>>>> to be useful in these times. Furthermore pharo is also
>>>>> prototyping platform for programming language features. All of
>>>>> these are counter-stability measures. So if you need a stable
>>>>> kernel from native ground up to UI pharo wonât be that thing
>>>>> you are looking for the coming years (if at all). You always
>>>>> need to adopt to change so you need to define your required
>>>>> scope better in order to get an estimate.
>>>>>
>>>>> Norbert
>>>>>
>>>>> Am 06.05.2018 um 11:31 schrieb Trygve Reenskaug
>>>>> <trygver(a)ifi.uio.no <mailto:trygver@ifi.uio.no>>:
>>>>>
>>>>>> I'm working on a programing paradigm and IDE for the personal
>>>>>> programmer who wants to control his or her IoT. The size of
>>>>>> the target audience I have in mind is >100 million. I gave up
>>>>>> Squeak long ago as a platform because they obsolete my code
>>>>>> faster than I can write it. I have now frozen Squeak 3.10.2
>>>>>> and hope its runtime will survive until I find a better
>>>>>> foundation. My hope is that Pharo has a stable kernel that I
>>>>>> can build on. According to Stephan, this is not so. Is there
>>>>>> any plan for creating a stable Pharo kernel that people can
>>>>>> use for building software of lasting value for millions of
>>>>>> non-expert users?
>>>>>> --Thanks, Trygve
>>>>>>
>>>>>> On 05.05.2018 13:53, Stephan Eggermont wrote:
>>>>>>> Iâve taken a look at what would be needed to
>>>>>>> support magma on pharo a few years ago. Chris always told us he
>>>>>>> uses it
>>>>>>> professionally on squeak and/*has not enough capacity to keep up
>>>>>>> with changes in pharo
>>>>>>> without having a customer/maintainer for it.*/ Twice a year
>>>>>>> or so someone asks about magma on pharo and takes a look. AFAIK
>>>>>>> there are
>>>>>>> no real obstacles to a port, but magma uses a lot of deep
>>>>>>> implementation
>>>>>>> specifics that will take an experienced smalltalker to deal with,
>>>>>>> and a lot
>>>>>>> of mailing list archeology as pharo changed a lot since magma
>>>>>>> worked on
>>>>>>> pharo last
>>>>>>>
>>>>>>> Stephan
>>>>>>
>>>>>> --
>>>>>> /The essence of object orientation is that
>>>>>> objectscollaboratetoachieve a goal./
>>>>>> TrygveReenskaug mailto: trygver(a)ifi.uio.no
>>>>>> <mailto:%20trygver@ifi.uio.no>
>>>>>> Morgedalsvn. 5A http://folk.uio.no/trygver/
>>>>>> <http://folk.uio.no/trygver/>
>>>>>> N-0378 Oslo http://fullOO.info <http://fulloo.info/>
>>>>>> Norway Tel: (+47) 22 49 57 27
>>>>
>>>> --
>>>> /The essence of object orientation is that
>>>> objectscollaboratetoachieve a goal./
>>>> TrygveReenskaug mailto: trygver(a)ifi.uio.no
>>>> <mailto:%20trygver@ifi.uio.no>
>>>> Morgedalsvn. 5A http://folk.uio.no/trygver/
>>>> <http://folk.uio.no/trygver/>
>>>> N-0378 Oslo http://fullOO.info <http://fulloo.info/>
>>>> Norway Tel: (+47) 22 49 57 27
>>>
>>
>> --
>>
>> /The essence of object orientation is that objects collaborateto
>> achieve a goal. /
>> Trygve Reenskaug mailto: trygver(a)ifi.uio.no
>> <mailto:%20trygver@ifi.uio.no>
>> Morgedalsvn. 5A http://folk.uio.no/trygver/
>> <http://folk.uio.no/trygver/>
>> N-0378 Oslo http://fullOO.info <http://fullOO.info>
>> Norway Tel: (+47) 22 49 57 27
>>
>>
>
> --
>
> /The essence of object orientation is that objects collaborateto achieve
> a goal. /
> Trygve Reenskaug mailto: trygver(a)ifi.uio.no <mailto:%20trygver@ifi.uio.no>
> Morgedalsvn. 5A http://folk.uio.no/trygver/
> N-0378 Oslo http://fullOO.info
> Norway Tel: (+47) 22 49 57 27
>
>
May 10, 2018
Re: [Pharo-users] Personal Programming onPharo
by Trygve Reenskaug
At 87, I'm an old man. I'm told that I don't understand modern software,
which is true. I use some programs daily: WIN7, Pharo, Thunderbird, ...
From time to time, I am told that a new version of the program that
fixes bugs and improves security is available. Press the button to
install it. So I wonder: Is modern software out of control? Does
/anybody /understand it, or is it so complicated that it is beyond human
comprehension? Why didn't they get it right the first time? Most of us
have the GOF book on Design Patterns on our bookshelf. In the
introduction, they write:
/An object-oriented program's runtime structure often bears little
resemblance to its code structure. The code structure is frozen at
compile-time; it consists of classes in fixed inheritance
relationships. The runtime structure consists of rapidly changing
networks of communicating objects.[GOF-95] p. 22./
 and
/â¦, it's clear that code won't reveal everything about how a system
will work. [ibid.p.23]/
Modern programmers are thus reduced to relying on testing the code. In
the words of Edsger Dijstra:
/"Program testing can be used to show the presence of bugs, but
never to show their absence!"[REF] /
Modern programmers know all this but accept it as an unavoidable part of
progress. Some may have seen it as a challenge, but they are up against
the enormous inertia of a community who haven't changed their
fundamental model of programming since the advent of the von Neumann
stored program computer in 1948.
I can't resist another quote; this time from Tony Hoare's TuringAward
lecture:
/âThere are two ways of constructing a software design: One way is
to make it so simple that there are obviously no deficiencies and
the other is to make it so complicated that there are no obvious
deficiencies. The first method is far more difficult. â¦[Hoare-81]/
In the lecture, Hoare was bemoaning his unsuccessful fight for
simplicity. Developers, particularly committees of developers, seem to
love complexity for its own sake. I have never accepted that bugs are an
unavoidable part of software.(See "2.   Get it Right the First Time"Â
in the draft article). Bugs are parts of the facts of life but they are
not an acceptable part of it. Ideally, my software should be /so simple
that there are obviously no deficiencies. /One of my attempts at coming
to grips with the problem is the DCI programming paradigm. Here, /the
runtime structure of rapidly changing networks of communicating objects/
is specified in explicit code that says (almost) everything about what
happens at runtime. Wouldn't it be wonderful if Pharo were to become
first to overcome the GOF limitation? I challenge you to play with
BabyIDE on Squeak and become convinced that it is a step in the right
direction.
I won't reread this message before IÂ send it. I suppose it's
controversial and should probably delete some or all of it to avoid
angry answers. Another reason why I probably shouldn't send it is that I
do not have time to engage in a discussion. I /must /give priority to
finishing my article on DCI and PP. (A ~50 page draft is on my home
page; it will be updated from time to time)
I press the SEND button with a shaking hand
--Trygve
On 09.05.2018 15:53, Richard O'Keefe wrote:
> âI have a C++ program written in the late 80s by someone
> else. It used to run fine under cfront 2.0 and early g++.
> Ten years after it was written it was impossible to compile.
>
> *Since* that there have been changes to streams and strings,
> amongst other things.
>
> The 1989 C standard changed the semantics of mixed signed/unsigned
> integer arithmetic. It also inadvertently rendered illegal a
> widely used technique. It is notoriously the case these days
> that compilers taking the C standards literally have "broken"
> quite a lot of code that worked with less ambitious compilers.
> I have been watching this phenomenon with considerable
> nervousness. See for example
> http://www.eng.utah.edu/~cs5785/slides-f10/Dangerous+Optimizations.pdf
> <http://www.eng.utah.edu/%7Ecs5785/slides-f10/Dangerous+Optimizations.pdf>
>
> I have certainly had previously acceptable C89 code be rejected
> by compilers as not being legal C11. It is true that compilers
> tend to have command line/IDE switches to ask that old code be
> compiled under old rules, but you cannot say that *in* the program.
> There is no way to mark the language version, no
> Â Â Â #pragma stdc version iso99
>
>
>
> As for Java, I could rant about the floods of deprecation warnings
> from old code. I shall content myself with one observation.
> Read http://java-performance.info/changes-to-string-java-1-7-0_06/
> Before Java 1.7, the substring operation in Java took O(1) time
> and space. From Java 1.7 on, it takes time and space linear in the
> size of the result. The syntax and abstract semantics did not
> change but the pragmatics did. Code that had adequate performance
> could suddenly start crawling.
>
> Oracle do a tolerably thorough job of describing compatibility
> issues between JDK releases. See for example
> http://www.oracle.com/technetwork/java/javase/8-compatibility-guide-2156366…
> where we learned that the 'apt' tool was gone, the JDBC-ODBC bridge
> was gone, 32-bit Solaris support (and yes, I was still using 32-bit
> code in SPARC Solaris and Intel Solaris) was gone, and the type
> inference algorithm had changed in a way that could break things.
> I am still somewhat peeved about some of the rewriting I've had to
> do over the last several releases.
>
> Then there is the simple fact that porting code from one release of
> an OS to another can be a pain. Solaris 10 to OpenSolaris was easy.
> OpenSolaris to Solaris 11 was not as painless. Solaris 11 to
> OpenIndiana was not a happy time for me. OpenBSD changes forced
> rework. I'd finally got my program to port smoothly between Solaris,
> Darwin, and Linux. And then I had trouble porting to the next major
> release of Linux. And with Ubuntu 17, I've got another problem I
> still haven't tracked down. All of this in a C program that gets
> regularly (sp)linted and checked all sorts of ways, written with
> the intention of producing portable code.
>
> EVERYTHING BREAKS.
>
>
> On 7 May 2018 at 22:42, Trygve Reenskaug <trygver(a)ifi.uio.no
> <mailto:trygver@ifi.uio.no>> wrote:
>
> Please tell me when Java, C, C++, etc programs stopped working
> because their runtime systems had changed.
> Please tell me when Java, C, C++, etc compilers stopped compiling
> old code because the languages had changed.
>
>
> On 07.05.2018 11:57, Norbert Hartl wrote:
>> I understand what you are saying but it contains some
>> misconceptions about the modern software world.
>>
>> âThe earth is not stopping to turn just because you want to stay
>> on the sunny sideâ
>>
>> There is two funny concepts going on in the modern software
>> industry. The one tells you that because you want to do a product
>> everything else around you should come to a full stop so can
>> comfortably build your software not disturbed by other things.
>> The second one tells you that you _have to upgrade_ ⦠there is
>> this magical force preventing you from staying where you are.
>> Both notions are funny alone but they come combined and then they
>> turn out to be a non-sensical monster.
>>
>> Letâs take a different approach. Put in everything you say about
>> software, libraries, etc the word version. So you can build upon
>> Pharo version 3 your own product. You can stay at that version
>> and it wonât change. If the software you sell is not 80% pharo
>> but your own you should not have a problem just to stay on that
>> version because you develop your own stuff. But still the world
>> did not stop turning and there is pharo 4. You decide there are a
>> few nice features but the work to adjust is too big to take the
>> risk. Then there is pharo 5 and you ⦠nahhh not this timeâ¦.Then
>> there is pharo6 and they not only changed the image but also the
>> way source code is managed. That prevents you further from
>> adjusting. But hey you can still be happy with pharo3 and it does
>> not change.
>>
>> So what is the real problem? Yes, money/time is not enough. I
>> think there are a lot of people risking their health to promote
>> pharo and now we have a consortium that can pay engineers to do
>> work on pharo. So let me tell you a future story:
>>
>> You see what pharo is doing and you think it is good. You can
>> also see that there are too less resources to proceed in the way
>> you need it to go. So you decide to show pharo to the world
>> inspiring people with some kind of a vision. The result is that
>> more people pay into the consortium and we hire more engineers.
>> And then one day the consortium has enough money to pay engineers
>> that can care about a LTS (long term support) version of pharo.
>> So you can stay on pharo version 3 and still get those annoying
>> bugs fixed. And hey this team has also enough time to provide you
>> with tools that make a migration to pharo version 4 more easy and
>> less annoying for you. And then you have your own product based
>> on pharo version 4. And then for version 5, version 6,â¦. Sounds
>> like a dreamâ¦but heyâ¦it is indeed realistic. It just depends on
>> how the people approach it
>>
>> How does this sound?
>>
>> Norbert
>>
>>> Am 07.05.2018 um 11:31 schrieb Trygve Reenskaug
>>> <trygver(a)ifi.uio.no <mailto:trygver@ifi.uio.no>>:
>>>
>>> Thanks for your quick answer. I have only a fleeting knowledge
>>> of Pharo but liked what I saw. The Squeak class library has seen
>>> organic growth since 1978 or earlier. Pharo gave it a thorough
>>> overhaul. At the Pharo kernel was a minimal image with a minimal
>>> class library. The rest of the functionality was partitioned
>>> into packages that could be added to the kernel image as
>>> required. Beautiful. But only my dream?
>>>
>>> /Matthew 7:24-27: And the rain fell, and the floods came,
>>> and the winds blew and beat on that house, but it did not
>>> fall, because it had been founded on the rock. And everyone
>>> who hears these words of mine and does not do them will be
>>> like a foolish man who built his house on the sand."/
>>>
>>> I am developing an IDE for non-programmers called BabyIDE, a
>>> non-intrusive extension of Squeak. Where the Class Browser in
>>> Squeak is used to work with one class at the time, the BabyIDE
>>> browser is used to work with structures of collaborating
>>> objects, ignoring their classes. I would like to develop a
>>> BabyIDE image that gets broad usage and long life. I'm looking
>>> for a rock to build on and hoped it could be what I thought was
>>> the Pharo kernel+ a few selected packages. In your answer, I
>>> read that if I build BabyIDE on Pharo, I will be building on sand.
>>>
>>> pharo.org <http://pharo.org/>writes: "/Pharo is a pure
>>> object-oriented programming language.../". The only language I
>>> can see is defined by the release image. A Pharo programmer
>>> builds application programs in this language. He or she can add
>>> new classes, change existing ones, subclass them, add or change
>>> methods, change the Smalltalk dictionary, etc. etc. An
>>> extremely flexible and powerful language.
>>>
>>> A tale from the future when Pharo is a mainstream
>>> language:Business customers benefit from end users using
>>> applications that are written by Pharo programmers who built on
>>> the Pharo language and environment that had been developed by
>>> the Pharo community. One day there is a happy announcement: A
>>> new version of Pharo will be launched tomorrow. It is truly cool
>>> and includes any number of improvements, some of them
>>> documented. And, by the way, applications written in the current
>>> Pharo will no longer work. So please inform your customers that
>>> you will not be able to serve them for a while. We are confident
>>> that all your application programmers will be happy to drop
>>> whatever they are doing in order to adapt their applications to
>>> the new Pharo so that you can start serving your customers again.
>>>
>>> Cheers
>>> --Trygve
>>>
>>>
>>>
>>> On 06.05.2018 13:00, Norbert Hartl wrote:
>>>> Can you elaborate on what you consider as a kernel? There are
>>>> always things moving in the pharo world. The last years the
>>>> virtual machine got some iterations and it is still not fully
>>>> stable. For pharo it is hard to have it stable because we feel
>>>> the need that a lot of the existing parts need to be replaced
>>>> to be useful in these times. Furthermore pharo is also
>>>> prototyping platform for programming language features. All of
>>>> these are counter-stability measures. So if you need a stable
>>>> kernel from native ground up to UI pharo wonât be that thing
>>>> you are looking for the coming years (if at all). You always
>>>> need to adopt to change so you need to define your required
>>>> scope better in order to get an estimate.
>>>>
>>>> Norbert
>>>>
>>>> Am 06.05.2018 um 11:31 schrieb Trygve Reenskaug
>>>> <trygver(a)ifi.uio.no <mailto:trygver@ifi.uio.no>>:
>>>>
>>>>> I'm working on a programing paradigm and IDE for the personal
>>>>> programmer who wants to control his or her IoT. The size of
>>>>> the target audience I have in mind is >100 million. I gave up
>>>>> Squeak long ago as a platform because they obsolete my code
>>>>> faster than I can write it. I have now frozen Squeak 3.10.2
>>>>> and hope its runtime will survive until I find a better
>>>>> foundation. My hope is that Pharo has a stable kernel that I
>>>>> can build on. According to Stephan, this is not so. Is there
>>>>> any plan for creating a stable Pharo kernel that people can
>>>>> use for building software of lasting value for millions of
>>>>> non-expert users?
>>>>> --Thanks, Trygve
>>>>>
>>>>> On 05.05.2018 13:53, Stephan Eggermont wrote:
>>>>>> Iâve taken a look at what would be needed to
>>>>>> support magma on pharo a few years ago. Chris always told us he uses it
>>>>>> professionally on squeak and/*has not enough capacity to keep up with changes in pharo
>>>>>> without having a customer/maintainer for it.*/ Twice a year
>>>>>> or so someone asks about magma on pharo and takes a look. AFAIK there are
>>>>>> no real obstacles to a port, but magma uses a lot of deep implementation
>>>>>> specifics that will take an experienced smalltalker to deal with, and a lot
>>>>>> of mailing list archeology as pharo changed a lot since magma worked on
>>>>>> pharo last
>>>>>>
>>>>>> Stephan
>>>>>
>>>>> --
>>>>> /The essence of object orientation is that
>>>>> objectscollaboratetoachieve a goal./
>>>>> TrygveReenskaug mailto: trygver(a)ifi.uio.no
>>>>> <mailto:%20trygver@ifi.uio.no>
>>>>> Morgedalsvn. 5A http://folk.uio.no/trygver/
>>>>> <http://folk.uio.no/trygver/>
>>>>> N-0378 Oslo http://fullOO.info <http://fulloo.info/>
>>>>> Norway Tel: (+47) 22 49 57 27
>>>
>>> --
>>> /The essence of object orientation is that
>>> objectscollaboratetoachieve a goal./
>>> TrygveReenskaug mailto: trygver(a)ifi.uio.no
>>> <mailto:%20trygver@ifi.uio.no>
>>> Morgedalsvn. 5A http://folk.uio.no/trygver/
>>> <http://folk.uio.no/trygver/>
>>> N-0378 Oslo http://fullOO.info <http://fulloo.info/>
>>> Norway Tel: (+47) 22 49 57 27
>>
>
> --
>
> /The essence of object orientation is that objects collaborateto
> achieve a goal. /
> Trygve Reenskaug mailto: trygver(a)ifi.uio.no
> <mailto:%20trygver@ifi.uio.no>
> Morgedalsvn. 5A http://folk.uio.no/trygver/
> <http://folk.uio.no/trygver/>
> N-0378 Oslo http://fullOO.info <http://fullOO.info>
> Norway Tel: (+47) 22 49 57 27
>
>
--
/The essence of object orientation is that objects collaborateto achieve
a goal. /
Trygve Reenskaug mailto: trygver(a)ifi.uio.no <mailto:%20trygver@ifi.uio.no>
Morgedalsvn. 5A http://folk.uio.no/trygver/
N-0378 Oslo http://fullOO.info
Norway                     Tel: (+47) 22 49 57 27
May 10, 2018
Serializing Excpetion with Fuel on the production and opening debugger on the dev machine - hot to? [Pharo 5]
by Petr Fischer
Hello, what is the current procedure for achieving %subj%? I am on latest Pharo 5.
I am serializing server side exception with:
FLSerializer serialize: anException toFileNamed: 'something'.
But how to open a debugger after materialization on the "dev machine side"?
I found (Google, Mailing list) some examples, but it's obsolete (the debugger class no longer exists in Pharo 5 etc etc).
Thanks! Petr Fischer
May 10, 2018
Re: [Pharo-users] Personal Programming onPharo
by Trygve Reenskaug
Hi Hannes,
It's great that you consider spending time on BabyIDE. Porting BabyIDE
to Pharo needs to be done sooner or later, but it may be harder to find
somebody who will actually use the results.(BabyIDE was first released
10 years ago. AFAIK I am still the only user of the ST version.)
A plan for creating an alpha version of PP could be
1. Establish a project with funding and people (including project
manager and lead programmer).
2. Use present BabyIDE to create a new and clean Squeak version with
DCI architecture.
3. Port new BabyIDE to Pharo.
4. ...
We will then have a platform that extends Pharo with the new
programming paradigm for programming system behavior (use cases). This
will be a valuable addition to Pharo as a tool for professional
programmers. We will also have a platform for building an alpha version
of PP.
/But before I do anything else, I have to finish my PP documentation on
my home page
http://folk.uio.no/trygver/
 ./
More about DCI at
http://fulloo.info
http://fulloo.info/Examples/SqueakExamples/index.html   Includes code
for examples
http://fulloo.info/Downloads/BabyIDE.zip    Includes Squeak BabyIDE
image and Win7-VM.
                 I'll update the ZIP if anybody is interested in
actually running BabyIDE
--Trygve
On 08.05.2018 20:06, H. Hirzel wrote:
> On 5/6/18, Trygve Reenskaug<trygver(a)ifi.uio.no> wrote:
>> I'm working on a programing paradigm and IDE for the personal programmer
>> who wants to control his or her IoT. The size of the target audience I
>> have in mind is >100 million. I gave up Squeak long ago as a platform
>> because they obsolete my code faster than I can write it. I have now
>> frozen Squeak 3.10.2 and hope its runtime will survive until I find a
>> better foundation. My hope is that Pharo has a stable kernel that I can
>> build on.
> Hello Tryge
>
> Good to see that you reconsider to use Smalltalk in 2018, this time Pharo.
>
> Am I assuming correctly that you want to continue to work on your IDE
> which the supports the DCI (Data-Context-Interaction) programming
> style [1]? The IDE was called "BabyIDE" [2].
>
> In 2015 you wrote to the Squeak mailing list that you are abandoning
> Squeak (Squeak 3.8, 4.5 or 4.6 at that time and Smalltalk as a whole)
> in favour of JavaScript, a mainstream language. That you now at least
> reconsider to use Smalltalk (Pharo) is an interesting result as it
> reinforces the idea that doing things the Smalltalk way is more
> promising than going for JavaScript directly [6].
>
> As for loading the BabyIDE into Squeak: It is noteworthy that after 10
> years (done around Squeak version 3.8) of maintaining a fork the
> Squeakland (Etoys) image has been merged back into Squeak 6.0a trunk.
> [5]
>
> I could actually load some of your tools last year into Squeak 6.0a
> with very modest fixes last year. [2].
>
> It seems that splitting your IDE enhancements into different parts
> which can be treated independently will probably help.
>
> And in addition helpful would be IMHO to write HOW you construct
> these tools and WHY you do it. These will help people to maintain your
> code even if the underlying system changes.
>
> It seems worthwhile to try out how it goes with the most recent Squeak
> version, Squeak 6.0a trunk [8].
>
> Another option is to wait a few months and look for the bootstrap
> version of Pharo 7.
> All the code is in readable format on github and various types of
> image files may be built build from it [7].
>
> And the third option is to check out if Cuis (the third Smalltalk
> which runs on the OpenSmalltalk [3] VM) suits your needs. [4]
>
>
> Kind regards
>
> Hannes Hirzel
>
>
> -------------------
>
> [1] Data-Context-Interactionhttp://wiki.squeak.org/squeak/6048
> [2] BabySREhttp://wiki.squeak.org/squeak/2550
> [3]http://www.opensmalltalk.org/
> [4] Cuis Smalltalk
> https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev ; there is a Cuis
> mailing list.
> [5] Etoys in 2017http://wiki.squeak.org/squeak/6531
> [6] Of course these days JavaScript cannot be avoided. But it is
> preferable to generate it with a Smalltalk tool.
> [7] The file format used in Pharo 7 is called Tonel (no exclamation marks!)
> [8] Squeak 6.0a trunk downloadhttp://files.squeak.org/6.0alpha/
>
>
--
/The essence of object orientation is that objects collaborateto achieve
a goal. /
Trygve Reenskaug mailto: trygver(a)ifi.uio.no <mailto:%20trygver@ifi.uio.no>
Morgedalsvn. 5A http://folk.uio.no/trygver/
N-0378 Oslo http://fullOO.info
Norway                     Tel: (+47) 22 49 57 27
May 10, 2018
Re: [Pharo-users] Tonel, Pharo 6.1 and file per class?
by Tim Mackinnon
Done (although possibly we should note to use git and not iceberg to merge the branch?)
> On 10 May 2018, at 01:54, Bernardo Ezequiel Contreras <vonbecmann(a)gmail.com> wrote:
>
>
>
> On Wed, May 9, 2018 at 9:36 PM, Tim Mackinnon <tim(a)testit.works <mailto:tim@testit.works>> wrote:
>
> I also wasnât sure how you merge a branch back on to master with Iceberg (can you ?) - so I just did that bit in gitlab.
>
>
> no, i didn't use iceberg. i just run the script (without the push at the end) and then i use git commands to get back to master
> and merge the migrate-sources-to-tonel branch. and then i pushed to origin.
>
> if you have a better script, just propose the fix in github. there's a pencil in the left hand
> with the caption 'Fork this project and edit this file' after the modification you have the
> option to create a pull request.
>
>
> --
> Bernardo E.C.
>
> Sent from a cheap desktop computer in South America.
May 10, 2018
Re: [Pharo-users] Tonel, Pharo 6.1 and file per class?
by Bernardo Ezequiel Contreras
On Wed, May 9, 2018 at 9:36 PM, Tim Mackinnon <tim(a)testit.works> wrote:
>
> I also wasnât sure how you merge a branch back on to master with Iceberg
> (can you ?) - so I just did that bit in gitlab.
>
>
no, i didn't use iceberg. i just run the script (without the push at the
end) and then i use git commands to get back to master
and merge the migrate-sources-to-tonel branch. and then i pushed to origin.
if you have a better script, just propose the fix in github. there's a
pencil in the left hand
with the caption 'Fork this project and edit this file' after the
modification you have the
option to create a pull request.
--
Bernardo E.C.
Sent from a cheap desktop computer in South America.
May 10, 2018
Re: [Pharo-users] Tonel, Pharo 6.1 and file per class?
by Tim Mackinnon
Thats exactly what I was looking for - as I can never fathom the deep rooted directories I modified it a bit to:
crntRepo := (Iceberg repositoryForPackage: BaselineOfYourApp package) backend.
locationDir := crntRepo location.
subDir := crntRepo subdirectory.
sourceDir := locationDir.
I also wasnât sure how you merge a branch back on to master with Iceberg (can you ?) - so I just did that bit in gitlab.
Thanks again - is it worth updating that md with the above - and can we put a link to this in the readme of Tonel (and in fact Iceberg)? There are too many unjoined bits of info that make it difficult to fathom what is going on. It would be great to put them together so others can avoid the lost hours.
Tim
> On 10 May 2018, at 00:33, Bernardo Ezequiel Contreras <vonbecmann(a)gmail.com> wrote:
>
> Tim, i've used the following script
>
> https://github.com/pharo-vcs/tonel/blob/master/MigrateFromFileTree.md <https://github.com/pharo-vcs/tonel/blob/master/MigrateFromFileTree.md>
>
> in my pet projects. hope this helps.
>
> On Wed, May 9, 2018 at 8:22 PM, Tim Mackinnon <tim(a)testit.works <mailto:tim@testit.works>> wrote:
> Hmmm - I donât think Iâve fully understood the instructions. If I already have a project in filetree git format - does creating the .properties file work? What do I do to convert it to tonel format? I think Iâve noticed a few announcements where people have said theyâve moved to the new tonel format - so how did they do it?
>
> I tried using git on the command line to add .properties file there - but not sure it did anything?
>
> Tim
>
>
>
>
>
>
> --
> Bernardo E.C.
>
> Sent from a cheap desktop computer in South America.
May 10, 2018
Re: [Pharo-users] Metacello load in code vs. Iceberg menu install? Can you automate remote loading?
by Gabriel Cotelli
I think you can use:
Metacello new
baseline: 'PagerDuty';
repository: 'gitlab://macta/WillowPagerDuty:master/source';
load.
or something like that
On Wed, May 9, 2018 at 8:44 PM Tim Mackinnon <tim(a)testit.works> wrote:
> Hi - Iâm trying to automate the deployment of a seaside image to Digital
> Ocean. I was following the Enterprise Pharo booklet - and its a bit out of
> date, but I wanted to do the bit about taking a clean image and then
> loading in my project which Iâve stored in Git using Iceberg.
>
> So on the command line I am trying to eval â
> Iceberg enableMetacelloIntegration: true.
> Metacello new
> baseline: 'PagerDuty';
> repository: 'git@gitlab.com:macta/WillowPagerDuty.git';
> load.â
>
> But I get retry errors and a walkback, so Iâve tried to do the same in the
> playground in a fresh image and its true - I get an error because ZnClient
> is trying to connect to a url like "
> http://:80/git@gitlab.com:macta/WillowPagerDuty.git/?C=M;O%3DD
> <http://:80/git@gitlab.com:macta/WillowPagerDuty.git/?C=M;O=D>â (so it
> interprets that git@ specification strangely).
>
> But what is weird, is that if I use Iceberg - connected to the same repo
> (and specified the same way) - and then use the Metacello - Install
> baseline menu (right click on the BaselineOfXXX package) it then works
> perfectly.
>
> So whatâs the difference? It looks like the latter is mapping down to a
> "repository: 'gitlocal://', packageDir;â whereas the above is trying to
> read it over the wire?
>
> I then tried using an access token for gitlab, so its an https variant -
> but that gave me an error as well? Does this mean to automate I have to
> bring down the initial BaseLine - but then if that baseline refers to
> others - that seems to work, so Iâm a bit confused about what is going on?
>
> Tim
>
May 10, 2018