[Pharo-users] Re: Energy efficiency of Pharo/Smalltalk

2020-10-20 Thread Mariano Martinez Peck
Here is an interesting article that could help as a start:

https://thenewstack.io/which-programming-languages-use-the-least-electricity/

Cheers,


On Thu, Oct 15, 2020 at 8:41 PM Richard O'Keefe  wrote:

> It doesn't make a whole lot of sense to talk about the energy efficiency
> of a programming language.  For example, I've seen the run time of a
> C benchmark go from 50 seconds to 1 microsecond when the optimisation
> level was changed.  It doesn't even make much sense to talk about the
> energy efficiency of the code generated by a specific compiler with
> specific options: the underlying hardware counts too.   A colleague of
> mine, looking at text compression algorithms for an information retrieval
> engine, found that the fastest algorithm depended on just which x86-64
> chip, even what motherboard, was in use.  It's obviously going to be
> the same for energy efficiency.
>
> So let's specify a particular physical machine, a particular compiler,
> and a particular set of compiler options.  NOW does it make sense to
> talk about energy efficiency?  Nope.  It's going to depend on the
> problem as well.  And the thing is that people tend to do different
> things in different programming languages, and different communities
> attract different support.  There is no portable Smalltalk equivalent
> of NumPy, able to automatically take advantage of GPUs, for example.
>
> You can get some real surprises.
> For example, just now while writing this message, I fired up
> powerstat(8).  I had the browser open and power consumption was
> about 12.8 W.  I then launched Squeak and ran some benchmarks.
> Power consumption went DOWN to 11.4 W.
> That is, Squeak was "costing" me -1.4 W.
>
> If you understand the kind of things modern CPUs get up to, that
> is not as surprising as it seems.  All it demonstrates is that
> getting MEANINGFUL answers is hard enough; getting GENERALISBLE
> answers is going to be, well, if anyone succeeded, I think they
> would have earned at least a Masters.
>
>
> On Tue, 13 Oct 2020 at 23:38, Jonathan van Alteren <
> jvalte...@objectguild.com> wrote:
>
>> Hi Stéphane,
>>
>> Thanks for your feedback. I agree that the usefulness of these results is
>> limited. However, if we (Object Guild) want to make a case for energy
>> efficiency, it can help if the language itself can be shown to be efficient
>> as well.
>>
>> For now, I think the efficiency will need to come from a good object
>> design.
>>
>> Kind regards,
>>
>> Jonathan van Alteren
>>
>> Founding Member | Object Guild B.V.
>> *Sustainable Software for Purpose-Driven Organizations*
>>
>> On 11 Oct 2020, 16:49 +0200, Stéphane Ducasse ,
>> wrote:
>>
>> The problem is that what do you measure.
>> When you move computation from the CPU to a GPU for example does it
>> consume less or more.
>> I think that such analyses are totally stupid.
>> Is a fast execution consume less? I have serious doubts about it.
>> Now if we measure how fast we drain a battery because of polling vs event
>> based then this is different.
>>
>> S.
>>
>> On 1 Oct 2020, at 13:47, Jonathan van Alteren 
>> wrote:
>>
>> Hi all,
>>
>> I am interested in energy efficiency metrics for Pharo (version >=8).
>> Just now, I came across this research and related GitHub project:
>>
>>- https://sites.google.com/view/energy-efficiency-languages
>>- https://github.com/greensoftwarelab/Energy-Languages
>>
>>
>> Unfortunately, the paper mentions that Smalltalk was excluded from the
>> results because the (VW) compiler was proprietary :-S However, the GitHub
>> repository does contain Smalltalk code and results, but I haven't been able
>> to evaluate those.
>>
>> [1] Does anyone here have more information on this topic?
>>
>>
>> The benchmarks seem to be low-level algorithms. Although that is useful,
>> I think that a better argument for Pharo/Smalltalk efficiency is that a
>> good OO design (e.g. created using responsibility-driven design with
>> behaviorally complete objects) will be a better fit, can be much simpler
>> and will thus be more efficient during development, as well as easier to
>> maintain and evolve.
>>
>> [2] Has anyone done any research in this area that can quantify this
>> aspect?
>>
>> Kind regards,
>>
>> Jonathan van Alteren
>>
>> Founding Member | Object Guild B.V.
>> *Sustainable Software for Purpose-Driven Organizations*
>>
>> jvalte...@objectguild.com
>>
>>
>> 
>> Stéphane Ducasse
>> http://stephane.ducasse.free.fr / http://www.pharo.org
>> 03 59 35 87 52
>> Assistant: Aurore Dalle
>> FAX 03 59 57 78 50
>> TEL 03 59 35 86 16
>> S. Ducasse - Inria
>> 40, avenue Halley,
>> Parc Scientifique de la Haute Borne, Bât.A, Park Plaza
>> Villeneuve d'Ascq 59650
>> France
>>
>>

-- 
Mariano Martinez Peck
Email: marianop...@gmail.com
Twitter: @MartinezPeck
LinkedIn: www.linkedin.com/in/mariano-martinez-peck
<https://www.linkedin.com/in/mariano-mart%C3%ADnez-peck/>
Blog: https://marianopeck.wordpress.com/


[Pharo-users] Re: Energy efficiency of Pharo/Smalltalk

2020-10-01 Thread Mariano Martinez Peck
Hi there,

We did a related experiment with VA Smalltalk and other languages like
Python, Java, etc... the context was how a JIT compiler can also help you
reduce energy consumption...which could be very important for IoT. We did
experiments on a Raspberry Pi, run some benchmarks and with some hardware
tool we were measuring the wattage.

You can see the whole presentation here: https://youtu.be/2xO0ohUNnug

Hopefully this can get you started with Pharo experiments.

Cheers,

On Thu, Oct 1, 2020 at 8:47 AM Jonathan van Alteren <
jvalte...@objectguild.com> wrote:

> Hi all,
>
> I am interested in energy efficiency metrics for Pharo (version >=8). Just
> now, I came across this research and related GitHub project:
>
>- https://sites.google.com/view/energy-efficiency-languages
>- https://github.com/greensoftwarelab/Energy-Languages
>
>
> Unfortunately, the paper mentions that Smalltalk was excluded from the
> results because the (VW) compiler was proprietary :-S However, the GitHub
> repository does contain Smalltalk code and results, but I haven't been able
> to evaluate those.
>
> [1] Does anyone here have more information on this topic?
>
>
> The benchmarks seem to be low-level algorithms. Although that is useful, I
> think that a better argument for Pharo/Smalltalk efficiency is that a good
> OO design (e.g. created using responsibility-driven design with
> behaviorally complete objects) will be a better fit, can be much simpler
> and will thus be more efficient during development, as well as easier to
> maintain and evolve.
>
> [2] Has anyone done any research in this area that can quantify this
> aspect?
>
> Kind regards,
>
> Jonathan van Alteren
>
> Founding Member | Object Guild B.V.
> *Sustainable Software for Purpose-Driven Organizations*
>
> jvalte...@objectguild.com
>


-- 
Mariano Martinez Peck
Email: marianop...@gmail.com
Twitter: @MartinezPeck
LinkedIn: www.linkedin.com/in/mariano-martinez-peck
<https://www.linkedin.com/in/mariano-mart%C3%ADnez-peck/>
Blog: https://marianopeck.wordpress.com/


Re: [Pharo-users] [GemStone-Smalltalk] [squeak-dev] Webminar about VA Smalltalk new OS Process Framework

2020-07-29 Thread Mariano Martinez Peck
Hi,
This webinar already took place but you can see the recording here:
https://youtu.be/uwEu_-tflKg

Best,


On Wed, Jul 29, 2020 at 12:57 PM Norman Nunley via GemStone-Smalltalk <
gemstone-smallt...@lists.gemtalksystems.com> wrote:

> Is there any chance that you'll record this webinar?  I'd love to attend,
> but I have work meeting conflicts.
>
> Norman
>
> On Wed, Jul 8, 2020 at 10:36 AM Mariano Martinez Peck <
> marianop...@gmail.com> wrote:
>
>> Greetings all, This is a friendly reminder of the presentation we will
>> host tomorrow for VAST's newest OSProcess framework. Best regards,
>>
>> On Tue, Jun 30, 2020 at 10:25 AM Mariano Martinez Peck <
>> marianop...@gmail.com> wrote:
>>
>>> Greetings all,
>>>
>>> Some time ago, I had the pleasure and privilege of being sponsored by
>>> the Pharo Consortium to implement OSSubprocess. Because of that work, I
>>> quickly realized that a new OS process framework created by Instantiations
>>> was quite advanced and unlike anything I had seen before.  If you are able,
>>> I would highly recommend that you attend the technology preview of this
>>> framework coming to VAST 2021:
>>>
>>> Seth Berman will be presenting, registration here:
>>> https://attendee.gotowebinar.com/register/7491754880594201356
>>>
>>> We hope the community can attend and we look forward to your feedback
>>> and questions during the event's Q session.
>>>
>>> Best regards,
>>>
>>> --
>>> Mariano Martinez Peck
>>> Email: marianop...@gmail.com
>>> Twitter: @MartinezPeck
>>> LinkedIn: www.linkedin.com/in/mariano-martinez-peck
>>> <https://www.linkedin.com/in/mariano-mart%C3%ADnez-peck/>
>>> Blog: https://marianopeck.wordpress.com/
>>>
>>
>>
>> --
>> Mariano Martinez Peck
>> Email: marianop...@gmail.com
>> Twitter: @MartinezPeck
>> LinkedIn: www.linkedin.com/in/mariano-martinez-peck
>> <https://www.linkedin.com/in/mariano-mart%C3%ADnez-peck/>
>> Blog: https://marianopeck.wordpress.com/
>>
>> ___
> GemStone-Smalltalk mailing list
> gemstone-smallt...@lists.gemtalksystems.com
> https://lists.gemtalksystems.com/mailman/listinfo/gemstone-smalltalk
>


-- 
Mariano Martinez Peck
Email: marianop...@gmail.com
Twitter: @MartinezPeck
LinkedIn: www.linkedin.com/in/mariano-martinez-peck
<https://www.linkedin.com/in/mariano-mart%C3%ADnez-peck/>
Blog: https://marianopeck.wordpress.com/


[Pharo-users] Webminar about VA Smalltalk new OS Process Framework

2020-06-30 Thread Mariano Martinez Peck
Greetings all,

Some time ago, I had the pleasure and privilege of being sponsored by the
Pharo Consortium to implement OSSubprocess. Because of that work, I quickly
realized that a new OS process framework created by Instantiations was
quite advanced and unlike anything I had seen before.  If you are able, I
would highly recommend that you attend the technology preview of this
framework coming to VAST 2021:

Seth Berman will be presenting, registration here:
https://attendee.gotowebinar.com/register/7491754880594201356

We hope the community can attend and we look forward to your feedback and
questions during the event's Q session.

Best regards,

-- 
Mariano Martinez Peck
Email: marianop...@gmail.com
Twitter: @MartinezPeck
LinkedIn: www.linkedin.com/in/mariano-martinez-peck
<https://www.linkedin.com/in/mariano-mart%C3%ADnez-peck/>
Blog: https://marianopeck.wordpress.com/


Re: [Pharo-users] [Pharo-dev] [ANN] PharoPro

2020-06-23 Thread Mariano Martinez Peck
A bit late to the party, but I still wanted to congratulate everyone
involved and wish you all the best. I said (but didn't do) many times in
the past that having a LTS version would be really good. So I hope you can
make it. Also, thanks for the FAQ entry comparing with the Consortium, as
that was my immediate question hhahaha.

Best,

On Wed, Jun 17, 2020 at 10:07 PM Pierce Ng  wrote:

> On Wed, Jun 17, 2020 at 10:34:09AM +0200, Norbert Hartl wrote:
> > we are very proud to announce the availability of PharoPro, a company
> > that offers professional support for the pharo platform. Our mission
> > is to enable people and companies to secure their business when
> > building products with pharo.
>
> Great stuff! All the best!
>
> Pierce
>
>
>

-- 
Mariano Martinez Peck
Email: marianop...@gmail.com
Twitter: @MartinezPeck
LinkedIn: www.linkedin.com/in/mariano-martinez-peck
<https://www.linkedin.com/in/mariano-mart%C3%ADnez-peck/>
Blog: https://marianopeck.wordpress.com/


Re: [Pharo-users] Getting Pharo running on AWS

2020-05-29 Thread Mariano Martinez Peck
Hi Mark,

Something you may want to consider in the future is to use Docker. You can
easily deploy Docker images with Pharo and you can also use
`docker-machine` to create and manage your AWS EC2 instances.
I recently wrote a blog post about that but with VA Smalltalk:
https://dev.to/martinezpeck/deploying-vasmalltalk-on-amazon-aws-arm-servers-aan

Best,






On Fri, May 29, 2020 at 9:30 AM Sven Van Caekenberghe  wrote:

>
>
> > On 29 May 2020, at 14:19, Mark Guzdial  wrote:
> >
> > Thanks, Sven.  Yes, there’s a big learning curve to be able to use your
> scripts, but they do seem powerful.
> >
> > I’m trying to work my way through your minimal-pharo-server-tools.  I’m
> using these scripts right now:
> >
> > $ git clone https://github.com/svenvc/minimal-pharo-server-tools.git
> >
> > $ ~/minimal-pharo-server-tools/install.sh
> > $ cd build && ~/pharo/build.sh
> > $ ~/minimal-pharo-server-tools/run/pharo-http-server/deploy.sh
> > $ sudo systemctl start pharo-http-server
> >
> > Cloning and installing went fine. I’m working on this line "cd build &&
> ~/pharo/build.sh.”  There is no build directory in cloned git repository.
> There is a build.sh, but it has hard-coded references to the directory
> pharo (as in the line).  There is no directory pharo in the repository, and
> it doesn’t get created in install.sh.  Should I be renaming the
> server-tools directory as pharo?  Or should I be installing pharo inside
> the repository structure?
> >
> > tl;dr: What directory structure do your tools expect, and what do I have
> to create (vs what your scripts create)?
>
> Yes, there was a small typo there: there is no ~/build directory, there is
> a ~/pharo directory, which gets created when you run the install.sh script.
>
> Later, the deploy.sh script creates the ~/pharo-http-server directory
> where the example server/services runs from.
>
> > Thanks!
> >  - Mark
> >
> >
> >> On May 29, 2020, at 2:43 AM, Sven Van Caekenberghe 
> wrote:
> >>
> >> Hi Mark,
> >>
> >> There is of course a significant learning curve here. You will need to
> understand what Metacello is, Monticello & Iceberg (GitHub) repositories,
> ConfigurationOfXXX & BaselineOfXXX.
> >>
> >> The books are good starting points.
> >>
> >> This is another recent thread:
> http://forum.world.st/running-Pharo8-in-Digitalocean-tt5115160.html
> >>
> >> HTH,
> >>
> >> Sven
> >>
> >>> On 29 May 2020, at 02:07, Mark Guzdial  wrote:
> >>>
> >>> While I’m asking newbie questions, perhaps you could explain this
> example in the Enterprise book:
> >>>
> >>> 
> >>>
> >>> What is http://www.smalltalkhub.com/mc/Me/MyApp/main here?  Is
> ConfigurationOfMyApp my name, or is it a command line parameter?
> >>>
> >>> Thanks!
> >>> - Mark
> >>>
> >>>
> >>
> >>
> >
>
>
>

-- 
Mariano Martinez Peck
Email: marianop...@gmail.com
Twitter: @MartinezPeck
LinkedIn: www.linkedin.com/in/mariano-martinez-peck
<https://www.linkedin.com/in/mariano-mart%C3%ADnez-peck/>
Blog: https://marianopeck.wordpress.com/


Re: [Pharo-users] Status of Marea?

2020-04-10 Thread Mariano Martinez Peck
Hi Hernán,

If I remember correctly, that was the last repo I used. I just tried to
check in SmalltalkHub if there was a new repo but seems already down, so I
can't check.
Also, none of my Marea images work anymore for me because latest OSX
dropped 32 bits support. But I can look for the images and send it to you
if you want.

To bring it to latest Pharo I would think:

1) Update it to use latest Fuel version
2) Slots may have broken class proxies
3) Update Marea proxies to use the latest version of Ghost proxies
(wherever that is)

As a side note, Marea would work much better these days because of the lazy
become (AFAIK that is already in Cog since some time).

Let me know if that helps,



On Fri, Apr 10, 2020 at 5:25 PM Hernán Morales Durand <
hernan.mora...@gmail.com> wrote:

> Hi everyone,
>
> Just checking what it would take to update Marea for a production
> environment in Pharo 8 or Pharo 9 or beyond. The last repo link I found is
> this:
>
> http://ss3.gemstone.com/ss/Marea.html
>
> And I couldn't find other codebase in the Mariano's Github repo.
>
> Any updates out there?
>
> Cheers,
>
> Hernán
>
>

-- 
Mariano Martinez Peck
Email: marianop...@gmail.com
Twitter: @MartinezPeck
LinkedIn: www.linkedin.com/in/mariano-martinez-peck
<https://www.linkedin.com/in/mariano-mart%C3%ADnez-peck/>
Blog: https://marianopeck.wordpress.com/


Re: [Pharo-users] Resources Page

2020-01-28 Thread Mariano Martinez Peck
On Tue, Jan 28, 2020 at 11:35 PM Benoit St-Jean via Pharo-users <
pharo-users@lists.pharo.org> wrote:

> I don't know if it's still the case but "trial version" for VAST, in the
> past, only meant that you could use the product forever but you didn't
> have the possibility to create an executable iirc.
>

No, that's not the case and AFAIK it has never been. The correct statement
is what I said before:

1) Trial versions are 45 days limit
2) Trial versions are the full version of the product, that is, there is no
kind of limit or missing functionality (like creating executables).

Best,

-- 
Mariano Martinez Peck
Email: marianop...@gmail.com
Twitter: @MartinezPeck
LinkedIn: www.linkedin.com/in/mariano-martinez-peck
<https://www.linkedin.com/in/mariano-mart%C3%ADnez-peck/>
Blog: https://marianopeck.wordpress.com/


Re: [Pharo-users] Resources Page

2020-01-28 Thread Mariano Martinez Peck
On Tue, Jan 28, 2020 at 10:26 PM Richard Sargent <
richard.sarg...@gemtalksystems.com> wrote:

> Thanks.
>
> On Tue, Jan 28, 2020, 17:21 horrido  wrote:
>
>> Done. I didn't realize there was a free license for GemStone/S.
>>
>> Too bad VA Smalltalk doesn't offer a free license.
>>
>
> I believe they do.
>
>
Yes we do.

I would say there are 3 main entry points to using VAST.
We have an *evaluation version* that is intended for those folks or
enterprises interested in the platform and our professional services for
their commercial needs.
The second two entry points are more a measure of goodwill and community
investment.  They don't tend to impact our commercial business model
favorably or unfavorably, but we are glad to participate.
Those are *academic licenses*, available to professors and their students.
We also offer, or sometimes donate, *open-source licenses* of VAST to
students, attendees of our technical workshops or folks that give their
time to community involvement.

And this is not something new: it's there in our websites since a long time:

https://www.instantiations.com/products/academic-license-program.html
https://www.instantiations.com/company/open-source.html

Hope this clarifies.

-- 
Mariano Martinez Peck
Email: marianop...@gmail.com
Twitter: @MartinezPeck
LinkedIn: www.linkedin.com/in/mariano-martinez-peck
<https://www.linkedin.com/in/mariano-mart%C3%ADnez-peck/>
Blog: https://marianopeck.wordpress.com/


Re: [Pharo-users] smalltalk conferences

2020-01-28 Thread Mariano Martinez Peck
On Mon, Jan 27, 2020 at 10:30 PM tbrunz  wrote:

> We need to start one.  Along with a North American version of ESUG.
>
>
There are a few Camp Smalltalk held in United States. The last one held by
Instantiations at Charlotte, NC last year [1] was more like a small
conference rather than a Camp and it a lot of fun as you can see in this
video [2]. Then there was another one at Portland too [3] that was
sponsored by many companies and vendors.

I guess that's a good start.

[1]
https://www.eventbrite.com/e/camp-smalltalk-charlotte-2019-tickets-52380940804#
[2] https://youtu.be/TLIHjbTipQw
[3]
https://www.eventbrite.com/e/camp-smalltalk-portland-2019-tickets-66639706155#



-- 
Mariano Martinez Peck
Email: marianop...@gmail.com
Twitter: @MartinezPeck
LinkedIn: www.linkedin.com/in/mariano-martinez-peck
<https://www.linkedin.com/in/mariano-mart%C3%ADnez-peck/>
Blog: https://marianopeck.wordpress.com/


Re: [Pharo-users] A Canticle for Smalltalk

2019-08-06 Thread Mariano Martinez Peck
On Tue, Aug 6, 2019 at 5:39 PM horrido  wrote:

> I've read a number of LinkedIn posts from Mariano Martínez Peck about
> recent
> innovations to VA Smalltalk, IIRC. Seems to me that Instantiations are
> doing
> a good job of innovating, too.
>
>
Thanks Richard. Funny thing... I was typing my response while yours jumped
in :)


-- 
Mariano Martinez Peck
Email: marianop...@gmail.com
Twitter: @MartinezPeck
LinkedIn: www.linkedin.com/in/mariano-martinez-peck
<https://www.linkedin.com/in/mariano-mart%C3%ADnez-peck/>
Blog: https://marianopeck.wordpress.com/


Re: [Pharo-users] A Canticle for Smalltalk

2019-08-06 Thread Mariano Martinez Peck
Hi Torsten, how are you?

Please find my answers below.

On Tue, Aug 6, 2019 at 12:37 PM Torsten Bergmann  wrote:

> >Yes. And I think it's even more sad than the containers example doesn't
> work anymore... AFAIK they replaced the system.
>
> Many things seem to be possible in times where talks like "How to get rid
> of Smalltalk" [1] will be presented on
> a Smalltalk conference (here ESUG 2019).
>
>
Yes, I saw it too and caught my attention. Here is more details about the
talk:
https://github.com/ESUG/esug.github.io/blob/source/2019-Conference/talks/2019-HowToGetRidOfSmalltalk
I think it's a nice gesture from ESUG to not ban it and let him speak.
Whether we agree or not, that's a different discussion. But we can't ban.



> Did commercial / traditional Smalltalk world really change over the years?
> I'm not following them too closely in recent months
> but I see some commercial vendors still try to attract people with old
> success stories and videos from ancient times.
>


You know I am working for Instantiations. I have seen what you mean too in
other vendors but I cannot speak in public about that. Feel free to send me
a private email.


Where is the "coolness factor" combined with fancy marketing to attract new
> generations and audience...
>
>

That's exactly  the kind of marketing that we are doing at Instantiations.
We are doing a lot of R in many areas such as IoT, ARM (we have ARM 32
and ARM 64), Raspberry Pi, AI/ML TensorFlow, Docker and many many other
aspects. We have also moved forward on improving dialect compatibility such
as writing a Tonel reader AND WRITER. Just take a look to my or or
Instantiations  twitter/linkedin activity and you will see it. You can also
see our recent newsletter:

https://mailchi.mp/instantiations/va-smalltalk-news-august-1-3037649
https://mailchi.mp/instantiations/va-smalltalk-news-april-17

Instantiations sponsored Camp St NC on March
https://twitter.com/CampSmalltalkNA  , its sponsoring ESUG and will sponsor
Smalltalks.

If you check everything I sent, you will notice there is not a single
reference to success stories (except one that partner with us to build the
new LLVM JIT).



> And this although Smalltalk seems to be often mentioned as favourite
> language like in [2]
>
> Pharo is in fact the main innovation driver these days. Another reason to
> move on, to improve it or even change Pharo more radical
> into a world beyond traditional Smalltalk. We all know that many new cool
> and interesting things could be done on top
> of the powerful base of a lively and dynamic object oriented system which
> we still share with the historic roots
>
>
Well, I don't fully agree there. See my response here:
http://forum.world.st/Re-Pharo-users-OT-slightly-What-makes-other-dialects-enjoyable-for-you-WAS-difference-between-double-tp5098137p5098178.html
I don't mind Pharo moving forward in innovation and with more radical
changes beyond traditional Smalltalk etc etc. But then don't call it
"business friendly".
It's not that you have 100 paid engineers to work on it.  IMHO you cannot
correctly target both.

Best regards,

-- 
Mariano Martinez Peck
Email: marianop...@gmail.com
Twitter: @MartinezPeck
LinkedIn: www.linkedin.com/in/mariano-martinez-peck
<https://www.linkedin.com/in/mariano-mart%C3%ADnez-peck/>
Blog: https://marianopeck.wordpress.com/


Re: [Pharo-users] A Canticle for Smalltalk

2019-08-06 Thread Mariano Martinez Peck
The last place was a few days ago:
https://twitter.com/MartinClausen8/status/1157051595999404033
But... a whole longer discussion took place a few months ago...but I cannot
find it now.

On Tue, Aug 6, 2019 at 5:19 PM BrunoBB  wrote:

> Sorry,
>
> The main phrase:
>
> Today, we continue to reap the rewards of this remarkable system.
>
> regards,
> bruno
>
>
>
> --
> Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html
>
>

-- 
Mariano Martinez Peck
Email: marianop...@gmail.com
Twitter: @MartinezPeck
LinkedIn: www.linkedin.com/in/mariano-martinez-peck
<https://www.linkedin.com/in/mariano-mart%C3%ADnez-peck/>
Blog: https://marianopeck.wordpress.com/


Re: [Pharo-users] A Canticle for Smalltalk

2019-08-06 Thread Mariano Martinez Peck
Yes. And I think it's even more sad than the containers example doesn't
work anymore... AFAIK they replaced the system.

On Tue, Aug 6, 2019, 05:06 Tim Mackinnon  wrote:

> It’s very entertaining but it seems a bit sad - it’s a shame it refers to
> JP-Morgan as “used Smalltalk “ as actually they are “still using Smalltalk”
> (so it’s not in the past)
>
> Tim
>
> Sent from my iPhone
>
> On 5 Aug 2019, at 16:19, Richard Kenneth Eng 
> wrote:
>
> A big fan of my work created this rogue video:
> https://drive.google.com/file/d/1opveHaukFK8WbQ8wg8b14wuKJsjoOZfO/view
>
> I appreciate the homage, but I can't take credit for it.
>
> It's really quite beautiful, though. I'm using it as part of my evangelism.
>
>


Re: [Pharo-users] [Pharo-dev] [ANN] OSWinSubprocess a library to spawn Windows System processes

2019-07-11 Thread Mariano Martinez Peck
Hi Christophe,

First of all, THANK YOU a lot for putting together this great work. This
was long overdue and I never had the available time for doing it. We can
discuss implementation details of OSSubprocess as much as we want, but I
was personally quite satisfied with the API. So if you could come up with a
similar API for Windows, I very much welcome that. And you can see even in
OSSubprocess github issues that it has been asked a few times.

As for the pipes...one short term solution you may want to try is to use
files. If you see the whole API of OSSubprocess is polymorphic to the type
of the underlying streams used for standard streams. So, for stdout,
stderr, stdin etc... you can choose to either use pipes or ... regular
files. In fact, in the tests, you can see 2 subclasses...one that tests all
the tests with pipes and the other one with files.

Finally, it explained here the differences:
https://github.com/pharo-contributions/OSSubprocess#regular-files-vs-pipes

Anyway, just thought I could throw my 2 cents.

Congratulations,

-- 
Mariano Martinez Peck
Email: marianop...@gmail.com
Twitter: @MartinezPeck
LinkedIn: www.linkedin.com/in/mariano-martinez-peck
<https://www.linkedin.com/in/mariano-mart%C3%ADnez-peck/>
Blog: https://marianopeck.wordpress.com/


Re: [Pharo-users] Smalltalk-Bolivia at ICSE SRC 2019

2019-06-05 Thread Mariano Martinez Peck
Hi Juan Pablo,

That's really great news. Specially congratulations to her and for all of
you. BTW, was she part of the Summer Smalltalk we did in Bolivia back in
2014?
https://marianopeck.wordpress.com/2014/12/07/my-presentations-at-summer-school-on-languages-and-applications-bolivia-2014/

It's nice to see Smalltalk still being pushed in Bolivia. I wish you the
best.

Cheers,

-- 
Mariano Martinez Peck
Email: marianop...@gmail.com
Twitter: @MartinezPeck
LinkedIn: www.linkedin.com/in/mariano-martinez-peck
<https://www.linkedin.com/in/mariano-mart%C3%ADnez-peck/>
Blog: https://marianopeck.wordpress.com/


Re: [Pharo-users] [ANN| Moved ImageWorker to smalltalkhub

2019-04-22 Thread Mariano Martinez Peck
On Mon, Apr 22, 2019 at 5:36 AM Norbert Hartl  wrote:

> I migrated the source of ImageWorker from smalltalkhub to github
>
> https://github.com/pharo-contributions/ImageWorker
>
> Now I’m changing voyage to use the github ImageWorker.
>
> FYI,
>
> Norbert
>


OK... so then to email subject s/to/from

Anyway, thanks for doing that!

-- 
Mariano Martinez Peck
Email: marianop...@gmail.com
Twitter: @MartinezPeck
LinkedIn: https://www.linkedin.com/in/mariano-mart%C3%ADnez-peck/


Re: [Pharo-users] [Pharo-dev] [OT] (slightly) What makes other dialects "enjoyable" for you? (WAS: difference between double dispatch...)

2019-04-11 Thread Mariano Martinez Peck
Hi Esteban,

We talk this privately a couple of weeks ago, but I thought it was worth
writing again here. As for other IDE's being enjoyable, I can only talk
about VASmalltalk. If there is ONE thing I enjoy from it, is the stability.
May be ugly, may be too-windows, may be full of menus you don't understand
what they do, but it's really rock solid.
Pharo has been doing a LOT of progress on so many areas and its expected to
decrease a bit on stability. Unless you are Oracle and can hire 100
engineers.
So, my small recommendation to you back then was to make at least ONE
release (called LTS or whatever) were you just focus on stability and bugs.
No new features. No new framework. Just stability. Make it rock solid. Then
after that release, you can keep moving forward, but that would give
companies and really really stable Pharo to rely on.

Best,

-- 
Mariano Martinez Peck
Email: marianop...@gmail.com
Twitter: @MartinezPeck
LinkedIn: https://www.linkedin.com/in/mariano-mart%C3%ADnez-peck/


Re: [Pharo-users] [OT] (slightly) What makes other dialects "enjoyable" for you? (WAS: difference between double dispatch...)

2019-04-10 Thread Mariano Martinez Peck
On Wed, Apr 10, 2019 at 6:21 AM jtuc...@objektfabrik.de <
jtuc...@objektfabrik.de> wrote:

> Richard,
>
>
> as a comment on VA Smalltalk: you are referring to the Linux version,
> which is also your Screenshot. I agree that Linux version of VA
> Smalltalk is far from what I'd call enjoyable or beautiful.
> If you take a look at the Windows version of VAST, you'll immediately
> realize that Linux users miss a lot of nice stuff that has been added to
> VA Smalltalk over the last few releases.
>
> The reason here is most likely that commercial Smalltalk projects mainly
> target Windows. This has changed for headless servers and I think it is
> slowly starting to happen for GUI clients, but it will take some time.
> We developers like Linux, but most of our end users still live and
> breathe on Windows. Not that I like it, but it's a fact, at least in the
> commercial field.
>
> Joachim
>

Hi,

I was about to answer same thing. Differently than Pharo, VW etc where the
rendering happens inside Smalltalk, in VA Smalltalk, its native. And so,
there are differences in the implementations between Unix and Windows. The
version in Windows is "much less ugly" than the one on Linux. In the
upcoming release we have also added HiDPI, as you can see here:
https://twitter.com/MartinezPeck/status/1063432539908571136
And in 9.1, we did fix many UI related things for the Linux flavor,
included the shortcuts. If you are still facing issues, please contact us
separately (not to spam Pharo list)

Best,

-- 
Mariano Martinez Peck
Email: marianop...@gmail.com
Twitter: @MartinezPeck
LinkedIn: https://www.linkedin.com/in/mariano-mart%C3%ADnez-peck/


Re: [Pharo-users] ARM vm limitations ?

2019-04-09 Thread Mariano Martinez Peck
On Mon, Mar 18, 2019 at 8:26 AM Albrecht Baur via Pharo-users <
pharo-users@lists.pharo.org> wrote:

> Hi, I'd like to play around with pharo on ARM devices (like a
> HummingBoard, the ones from ODROID or one of the beagleboards). But I am
> not sure if I have to take care of the ARM architecture version (ARMv6 /
> ARMv7 / ARMv8) when choosing my toy.
>
> I found this vm:
> http://files.pharo.org/vm/pharo-spur32/linux/armv6/
> Is it only for armv6 like the folder name says or is ARMv7 and ARMv8
> working too?
>
> Are there any limitations I should know before choosing a ARM device?
>
> Is there a vm for 64bit (aarch64)?
>

Hi Albrecht,

I am also interested in this answer. In general, I am interested in IoT
support for Smalltalk.

The only thing I found aside from ARMv6 is this:
https://github.com/OpenSmalltalk/opensmalltalk-vm/tree/Cog/build.linux32ARMv7
But I don't know what's the status of it.

You may have more chances to get an answer with the vm list:
  
Or maybe Pharo dev list.

Cheers,

-- 
Mariano Martinez Peck
Email: marianop...@gmail.com
Twitter: @MartinezPeck
LinkedIn: https://www.linkedin.com/in/mariano-mart%C3%ADnez-peck/


Re: [Pharo-users] Serializing classes with Fuel

2019-03-05 Thread Mariano Martinez Peck
On Tue, Mar 5, 2019 at 1:42 PM Konrad Hinsen 
wrote:

> Hi everyone,
>
> does anyone here have some experience with Fuel?
>
> Its Web site says "It can serialize/materialize not only plain objects
> but also classes, traits, methods, closures, contexts, packages,
> etc.". So I should be able to serialize a class somehow, right?
>
> But classes are by default treated as global objects, even if they
> aren't. The class I want to serialize is created by
> newAnonymousSubclass. And yet, Fuel only stores its name in the output
> file.
>
> The documentation describes considerGlobal: which does the opposite of
> what I want. So my question is: how can I tell Fuel *not* to consider a
> class as global?
>
> Konrad.
>
>
Yes, that's the "default" behavior. To fully serialize classes you need
FuelMetalevel packages. This brings a new visitors and mappers to allow you
to fully serialize methods, classes, contexts, etc.
I am sorry but I couldn't remember where the docs about that were. You may
want to at least take a look to the packages and their tests.

Best,


-- 
Mariano
https://twitter.com/MartinezPeck
http://marianopeck.wordpress.com


Re: [Pharo-users] OSProcess / OSSubprocess / LibC uniqueInstance

2019-02-19 Thread Mariano Martinez Peck
Yeah, readme is out of date. 64 bits is working:
https://github.com/pharo-contributions/OSSubprocess/issues/22

On Tue, Feb 19, 2019 at 4:48 PM Alistair Grant 
wrote:

> On Tue, 19 Feb 2019 at 13:45, Albrecht Baur via Pharo-users
>  wrote:
> >
> > Thank you.
> >
> > The Metacello snippet helps. It loads a newer version than that from the
> catalog browser.
> >
> >
> > But 2 more questions:
> >
> > 1.: Is there a reason not to use just ...
> >
> > LibC uniqueInstance system: 'zip -r 123.zip zipme/'
>
> You don't have the same level of control over the process, can't pipe
> stdio, it introduces issues with interrupts (SIGINT, SIGQUIT), etc.
>
>
> > And 2.: Is it ok to use OSSubprocess on in 64 bit images even though the
> documentation says it doesn't work ? (but it does)
> >
> > -> https://github.com/pharo-contributions/OSSubprocess#installation
>
> That's a surprise.  Yes, OSSubprocess is officially supported on 64
> bits, the readme is out of date.
>
> HTH,
> Alistair
>
>

-- 
Mariano
https://twitter.com/MartinezPeck
http://marianopeck.wordpress.com


Re: [Pharo-users] My Keynote at the Salta Conference

2018-11-24 Thread Mariano Martinez Peck
On Sat, Nov 24, 2018 at 9:54 AM horrido  wrote:

> All of these are good ideas. But they deviate from my vision. At any rate,
> my
> competition idea was a big hit in Salta, and I am committed to moving
> forward with it.
>
> Since nobody has stepped up to the plate, David Buck will try to find time
> to code the competition. However, progress will be slow because of his busy
> schedule.
>
> And since David is not familiar with Pharo, we'll have to do the
> competition
> in VisualWorks, after all. Perhaps in the next edition of the James
> Robertson Memorial Programming Competition (hopefully in 2021 for the
> United
> States), someone will port the VisualWorks code over to Pharo (hint, hint).
>
>
Hi Richard,

Please note that for the people that put the money might not be the same
doing it in a commercial Smalltalk rather than an open-source one.
Sure, most commercial Smalltalks do offer open source licenses, but that's
not the same as being an open source Smalltalk. So, I don't know what did
you promise for the competition, but if it was with Pharo, it may be they
only want Pharo or at least an open source Smalltalk.

Best,

-- 
Mariano
https://twitter.com/MartinezPeck
http://marianopeck.wordpress.com


Re: [Pharo-users] VPS difficulties

2018-11-21 Thread Mariano Martinez Peck
Run Pharo 32 bits and install 32 bit libs...

On Wed, Nov 21, 2018, 21:07 Richard Kenneth Eng  I'm creating the competition website using Pharo and Teapot. For
> encryption, I'm using Pierce Ng's PasswordCrypt, which requires a 32-bit C
> library. This means I must run 32-bit Pharo.
>
> And this means I must run 32-bit Pharo under 32-bit Linux. Therein lies
> the rub...
>
> I would like to host the website at DigitalOcean or Linode or OVH. As far
> as I can tell, however, these services do not support 32-bit Linux, only
> 64-bit.
>
> What can I do?
>


Re: [Pharo-users] [Pharo-dev] [Ann] OSSubprocess v1.0.1

2018-06-27 Thread Mariano Martinez Peck
Excellent catch! Thanks Guille and the rest of the crew!

On Tue, Jun 26, 2018 at 11:25 AM Guillermo Polito 
wrote:

> Hi all,
>
> There is a new version of OSSubprocess available. This is a Bugfix
> release. This release fixes a problem with waitpid that happened
> regularly and randomly in OSSubprocess users mostly in the CI. For those
> interesting, the details of the bug can be read in:
>
> https://github.com/pharo-contributions/OSSubprocess/issues/36
> Bugfix list
>
> #39 
> travis_wait hides smalltalkCI output
> #36  Often
> get waitpid() -1 in CI
>
> Thanks a lot to Pablo and Santi that helped me debugging,
> Enjoy,
> Guille
>


-- 
Mariano
http://marianopeck.wordpress.com


Re: [Pharo-users] [Ann] OSSubprocess 1.0.0

2018-05-23 Thread Mariano Martinez Peck
Hi Thierry. Excellent question. For OSSubprocess this is not an issue
because I look up by pid in my list of forked children... So if not found I
do nothing... At least that's what I remember (away from my machine now).
So at worst it would be a performance problem when both loaded.

As for osprocess I don't recall if this would be a problem but I imagine it
won't. Maybe David can tell.


On Wed, May 23, 2018, 5:31 PM Thierry Goubier <thierry.goub...@gmail.com>
wrote:

> Hi Mariano,
>
> 2018-05-23 19:57 GMT+02:00 Mariano Martinez Peck <marianop...@gmail.com>:
> >
> >
> > On Wed, May 23, 2018 at 2:46 PM Sean P. DeNigris <s...@clipperadams.com>
> > wrote:
> >>
> >> David T. Lewis wrote
> >> > FFI based solutions work at a different level of abstraction than
> >> > VM plugins, and there is a role for both.
> >>
> >> Thanks for the context, David. Now that we understand the different
> >> niches,
> >> the main problem is that they can not be loaded in the same image
> without
> >> breaking :/
> >>
> >
> > The problem is to find a solution that works for both, Squeak and Pharo
> as
> > well as for OSProcess and OSSubprocess.
> >
> > I guess one possibility is to modify both, OSProcess and OSSubprocess
> > initialization of the child reaper so that they install the same
> "generic"
> > child reapear. Aside from initializating the child repear, they should be
> > added into an "observer list". When, when it comes the second project to
> get
> > loaded it which check that a child reaper is already registered..in which
> > case he just register itself as "observer".
> >
> >  This child reaper should be generic enough (cannot be coupled to WHAT
> to do
> > when the semaphore is signaled). Using Announcements (or other mechanisim
> > that would work for Pharo and Squeak) we could simply "notify" the
> > registered observers and each observer would do whatever is needed (what
> is
> > actually now hardcoded in each child reaper)
> >
> > Maybe that works...just an idea.
>
> I think that looks like a nice design. Just one question: do we need
> to track down whether the child reaper event should be directed to
> OSProcess or to OSSubprocess? Wondering if there is an issue with one
> of them trying to close the other one's resource (but I haven't
> checked, so I may be wrong).
>
>
>
> Thierry
>
> >
> >>
> >>
> >>
> >> -
> >> Cheers,
> >> Sean
> >> --
> >> Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html
> >>
> >
> >
> > --
> > Mariano
> > http://marianopeck.wordpress.com
>
>


Re: [Pharo-users] [Ann] OSSubprocess 1.0.0

2018-05-23 Thread Mariano Martinez Peck
On Wed, May 23, 2018 at 2:46 PM Sean P. DeNigris 
wrote:

> David T. Lewis wrote
> > FFI based solutions work at a different level of abstraction than
> > VM plugins, and there is a role for both.
>
> Thanks for the context, David. Now that we understand the different niches,
> the main problem is that they can not be loaded in the same image without
> breaking :/
>
>
The problem is to find a solution that works for both, Squeak and Pharo as
well as for OSProcess and OSSubprocess.

I guess one possibility is to modify both, OSProcess and OSSubprocess
initialization of the child reaper so that they install the same "generic"
child reapear. Aside from initializating the child repear, they should be
added into an "observer list". When, when it comes the second project to
get loaded it which check that a child reaper is already registered..in
which case he just register itself as "observer".

 This child reaper should be generic enough (cannot be coupled to WHAT to
do when the semaphore is signaled). Using Announcements (or other
mechanisim that would work for Pharo and Squeak) we could simply "notify"
the registered observers and each observer would do whatever is needed
(what is actually now hardcoded in each child reaper)

Maybe that works...just an idea.



>
>
> -
> Cheers,
> Sean
> --
> Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html
>
>

-- 
Mariano
http://marianopeck.wordpress.com


Re: [Pharo-users] [Ann] OSSubprocess 1.0.0

2018-05-23 Thread Mariano Martinez Peck
Hi guys,

First, I would like to say that David was always very helpful, positive and
we have discussed and worked together a lot for this.

When I was sponsored to build OSSubprocess I already got the "we would like
this have this", so maybe some additional opinion from the ESUG board may
help clarify. From what I understand/remember/believe, the main reasons for
building OSSubprocess were:

1) *FFI-based tool*. Low the barrier of having to modify the VM to make a
fix. Despite all our efforts, we still have way more people able to deal
with FFI than with the VM. Even more if the VM is now shared under a common
project, in which is not always easy to plug Pharo-specific stuff.

2) *Cleaner/nicer API*. You may or may not agree with this and that's
perfect (we all have different opinions). When I was using OSProcess I
always thought the API was not as I would like to, so my goal was to
provide a API closer to my wishes. Again, not necessary better.

3) *Smaller functionality than OSProcess*: OSProcess is huge...it allows
you to fork squeak images, fork() + exec*()  whatever you want, runs on
Windows, etc. We wanted something smaller...just enough to be able to fork
processes. That is... to capture the most common/easy process forking.. But
if you really need something very advance, you may still go to bare metals
and use OSProcess approach (fork + exec).

4) *Added infrastructure*. We wanted the project to be on Git, with a very
detailed documentation, very high test coverage, and CI integration.


-

So...that is about the reasons... as to why it breaks when OSProcess is
loaded to, it's because for OSSubprocess I took the wonderful idea from
OSProcess of the child reaper. This is a process that runs on the Smalltalk
side and handles exception (via semaphore) when the child has died.   This
is (currently) only possible thanks to OSProcess primitive. That means
OSSubprocess still needs (one or very little) OSProcess primitives down in
the VM. When you load either of the projects, they launch the child reaper
process, register the semaphore etc etc. So the problem is when you loaded
one and you then try to load the second one, the initialization of the
second one you plug its own semaphore etc etc and so the previous gets
broken as it doesn't have a working child reaper process.

If someone has a better idea on how to solve this, then please speak up.


Cheers,


On Wed, May 23, 2018 at 11:12 AM Sean P. DeNigris 
wrote:

> Guillermo Polito wrote
> > I try not to depend on projects using OSProcess in that case.
>
> That is not exactly a robust solution! What is the only project providing
> the functionality you need depends on OSP?!
>
>
> Guillermo Polito wrote
> > I understand that the incompatibilities bother, but putting all the fault
> > in OSSubprocess and not in OSProcess seems not fair :)
>
> Ha ha, well OSProcess was born in 2005, and then OSSP appeared reusing some
> of its functionality just recently, so I'd say it's fair indeed!
>
>
> Guillermo Polito wrote
> > Maybe both should be modified to be compatible?
>
> Maybe. I don't really understand the source of the incompatibility well
> enough.
>
>
> Guillermo Polito wrote
> > I found OSProcess API particularly bad. It's never clear to me whether to
> > use OSProcess, PipeableSomething or CommandWhatever (I don't even
> remember
> > the names of the things that **do work** and I have to look them every
> > time).
>
> The things you're describing are not accidental complexity, but the fact
> that OSP (and its companion CommandShell) actually have a far wider feature
> set than just simple commands. CommandShell makes many shell-like things
> possible in-image, but one doesn't have to use or even know anything about
> all that to do simple things. That said, every time I did into CS and see
> all the things that are possible I am amazed.
>
>
> Guillermo Polito wrote
> > Most people only want to do
> > output := OSProcess executeCommand: 'ls'.
> > Blocking. Recovering stdout. And that's all.
>
> (PipeableOSProcess command: 'ls') output
>
> That doesn't seem horribly complex to do in OSP ;)
>
>
> Guillermo Polito wrote
> > Well from a technical point of view, if you want to choose from one or
> > another today I'd say…
>
> Ah, interesting and informative. Thank you.
>
>
>
> -
> Cheers,
> Sean
> --
> Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html
>
>

-- 
Mariano
http://marianopeck.wordpress.com


Re: [Pharo-users] GemStone/S on Docker?

2018-04-10 Thread Mariano Martinez Peck
On Tue, Apr 10, 2018 at 9:32 AM, sergio ruiz  wrote:

>
> What do you mean by „something that doesn’t require refactoring“ ?
>
>
> I used mongo voyager for a few projects.. i ended up having to refactor
> here and there to get it to work (to connect my data mongodb).. I’d like to
> try an object database.
>
>
> I think to put GemStone/S on docker should be easy package wise. Years ago
> when I used GemStone I created these scripts
>
> https://github.com/noha/stone-creator
>
>
>
> great! i’ll take a look at this.
>
>
I wouldn't. The excellent work of Norbert was later
inspired/continuated/extended officially by GemStone under a much bigger
project called GsDevKit [1]

[1] https://github.com/GsDevKit/GsDevKit_home

Cheers,



> Thanks!
>
>
> 
> peace,
> sergio
> photographer, journalist, visionary
>
> Public Key: http://bit.ly/29z9fG0
> #BitMessage BM-NBaswViL21xqgg9STRJjaJaUoyiNe2dV
> http://www.codeandmusic.com
> http://www.twitter.com/sergio_101
> http://www.facebook.com/sergio101
>



-- 
Mariano
http://marianopeck.wordpress.com


[Pharo-users] [ANN] 64 bits support preview

2018-03-05 Thread Mariano Martinez Peck
Hi guys,

Thanks for Guillermo Polito we now have 64 bits support for OSSubprocess.
You can see the required changes in this PR [1]. I made a branch called
`support64bits` so that you can help us test it even if CI said it was good
[2]. If you do test it and come back to us with the results, please tell us
which OS you used.

To install from the branch:

Metacello new
  configuration: 'OSSubprocess';
  repository: 'github://marianopeck/OSSubprocess:support64bits/repository';
version: #stable;
load.


Roadmap: Current release is v0.2.5. So I will let that release for Pharo <=
5.0. I will make a new release with the Pharo 64 bits and call it v0.3.
That release should be used for Pharo 6.x. Once v0.3 is out, I will make a
new release v0.4 with some changes I wanted to do since a lng time and
its a small refactor to minimize OSSubprocess dependency on OSProcesses
primitives (at VM side). This is thanks to Holger Freyther and Alistair
Grant [3]. As that requires a new VM, then v0.4 should be used in Pharo >=
7.0.

Cheers,


[1] https://github.com/marianopeck/OSSubprocess/pull/30
[2] https://travis-ci.org/guillep/OSSubprocess/builds/349280174
[3] https://github.com/pharo-project/pharo-vm/pull/142

-- 
Mariano
http://marianopeck.wordpress.com


Re: [Pharo-users] [ANN] PharoLauncher v1.1 released!

2018-01-25 Thread Mariano Martinez Peck
Thanks Christophe,

Is there a way to update my existing Launcher image or should I wait until
you release a future binary (no problem, I can wait).

Thanks!

On Thu, Jan 25, 2018 at 10:23 AM, Christophe Demarey <
christophe.dema...@inria.fr> wrote:

>
> > Le 25 janv. 2018 à 13:54, Christophe Demarey <
> christophe.dema...@inria.fr> a écrit :
> >
> > Hi Mariano,
> >
> >> Le 25 janv. 2018 à 12:33, Mariano Martinez Peck <marianop...@gmail.com>
> a écrit :
> >>
> >> Hi Christoph,
> >>
> >> One issue I am having is that the Launch without settings is actually
> running the settings  anyway... (it was not the case before).
> >>
> >> Do you see this as well?
> >
> > Hum, yes I’m able to reproduce that.
> > Could you open a bug entry for this problem (https://github.com/pharo-
> project/pharo-launcher/issues)? I will take a look at it ASAP.
>
> Was easy to fix:
>
> Name: PharoLauncher-Core-ChristopheDemarey.173
> Author: ChristopheDemarey
> Time: 25 January 2018, 2:22:42.742766 pm
> UUID: 975f6569-fb1f-0d00-89b5-97830cafd288
> Ancestors: PharoLauncher-Core-ChristopheDemarey.172
>
> fixes 2 bugs:
>  - OS detection tu run image for a shell was wrong for OS X
>  - no default preferences option was lost when running image from a shell
>



-- 
Mariano
http://marianopeck.wordpress.com


Re: [Pharo-users] [ANN] PharoLauncher v1.1 released!

2018-01-25 Thread Mariano Martinez Peck
Hi Christoph,

One issue I am having is that the Launch without settings is actually
running the settings  anyway... (it was not the case before).

Do you see this as well?



On Fri, Jan 19, 2018 at 9:04 AM, Stephane Ducasse 
wrote:

> tx!
>
>
> On Thu, Jan 18, 2018 at 9:28 PM, Christophe Demarey
>  wrote:
> >
> >> Le 18 janv. 2018 à 21:16, Stephane Ducasse  a
> écrit :
> >>
> >> supe super col
> >> Christophe? do have I just to replace the previous version and use
> >> this one and I will get everything as before
> >> but with the new version?
> >
> > yes.
> > Only settings directory is different but it did not work very well
> before. So, if you had settings that were no defaults settings, you will
> need to store your settings with the new launcher.
>
>


-- 
Mariano
http://marianopeck.wordpress.com


Re: [Pharo-users] [ANN] PharoLauncher v1.1 released!

2018-01-18 Thread Mariano Martinez Peck
On Thu, Jan 18, 2018 at 5:16 PM, Stephane Ducasse 
wrote:

> supe super col
> Christophe? do have I just to replace the previous version and use
> this one and I will get everything as before
> but with the new version?
>
>
I did that and it worked for me



> Stef
>
> On Tue, Jan 16, 2018 at 9:46 PM, Christophe Demarey
>  wrote:
> > Hi all,
> >
> > I just released PharoLauncher 1.1. There are now 64-bits versions for Mac
> > and Linux. Jenkins build is now managed through a Jenkins file.
> >
> > Here is the changelog (details on
> > https://github.com/pharo-project/pharo-launcher/issues):
> > New features:
> > #66 new command: import an image into the launcher default image folder
> > #65 new command: remove a template from "Downloaded templates"
> > #64 new command: create a local template from an image and remove the
> image
> > #57 new option: run an image from a login shell to inherit from shell
> > startup scripts to set up environment variables.
> > #54 It is now possible to run an image anywhere on your file system if
> you
> > click "launch" and no image is selected
> > #23 Pharo Launcher now has an "about" box giving its description, version
> > and a link to the bug tracker.
> > Improvements:
> > #62 Pharo Launcher should not load default Pharo settings
> > #51 Pharo Launcher now sets the current directory to the directory
> > containing the image (was the VM directory). Avoid confusions in Pharo 7
> > images.
> > Bux fixes:
> > #60 hardReset option causes troubles to PharoLauncher
> > #56 #, was sent to nil
> > #55 Display name of Pharo 7 images unusable
> > #52 Cannot open a Pharo 2 image
> > #47 Cannot run pharo 50 pre-Spur images
> >
> > You can get platform bundles from files.pharo.org:
> > http://files.pharo.org/pharo-launcher/1.1/
> >
> > Regards,
> > Christophe.
>
>


-- 
Mariano
http://marianopeck.wordpress.com


Re: [Pharo-users] [ANN] PharoLauncher v1.1 released!

2018-01-17 Thread Mariano Martinez Peck
Thanks Christophe!! This is very cool!

On Wed, Jan 17, 2018 at 10:03 AM, Juraj Kubelka 
wrote:

> Thank you a lot Christophe!
> I really enjoy using PharoLauncher.
>
> Juraj
>
>
> On Jan 16, 2018, at 17:46, Christophe Demarey 
> wrote:
>
> Hi all,
>
> I just released *PharoLauncher 1.1*. There are now 64-bits versions for
> Mac and Linux. Jenkins build is now managed through a Jenkins file.
>
> Here is the changelog (details on https://github.com/pharo-
> project/pharo-launcher/issues):
> New features:
> #66 new command: import an image into the launcher default image folder
> #65 new command: remove a template from "Downloaded templates"
> #64 new command: create a local template from an image and remove the image
> #57 new option: run an image from a login shell to inherit from shell
> startup scripts to set up environment variables.
> #54 It is now possible to run an image anywhere on your file system if you
> click "launch" and no image is selected
> #23 Pharo Launcher now has an "about" box giving its description, version
> and a link to the bug tracker.
> Improvements:
> #62 Pharo Launcher should not load default Pharo settings
> #51 Pharo Launcher now sets the current directory to the directory
> containing the image (was the VM directory). Avoid confusions in Pharo 7
> images.
> Bux fixes:
> #60 hardReset option causes troubles to PharoLauncher
> #56 #, was sent to nil
> #55 Display name of Pharo 7 images unusable
> #52 Cannot open a Pharo 2 image
> #47 Cannot run pharo 50 pre-Spur images
>
> You can get platform bundles from files.pharo.org:
> http://files.pharo.org/pharo-launcher/1.1/
>
> Regards,
> Christophe.
>
>
>


-- 
Mariano
http://marianopeck.wordpress.com


Re: [Pharo-users] OT: Re: Open Debugger, Save and Quit

2018-01-12 Thread Mariano Martinez Peck
On Wed, Nov 8, 2017 at 1:45 AM, Joachim Tuchel 
wrote:

> Ben,
>
> (this is a bit off-topic)
>
> do you happen to know the purpose of that pre-debug-window? I must say
> that I find it annoying every time I get it in Pharo or VA? Why doesn't the
> debugger show up immediately?
>
>

I disabled that in all my images (via a startup setting). See
#*alwaysOpenFullDebugger
*below:

"Define some settings/preferences for GTDebugger"
(Smalltalk at: #GTGenericStackDebugger) perform:
#enableDebuggerWindowDistinctColor: with: true.
(Smalltalk at: #GTGenericStackDebugger) perform: #enableStackColoring:
with: true.
*(Smalltalk at: #GTGenericStackDebugger) perform: #alwaysOpenFullDebugger:
with: true.*


Cheers,




But your suggestion is a good one, imo. In the startup phase of an image,
> the image might not be ready to provide any means of reacting to a problem,
> so why bother showing errors that early?
>
> What you describe should be quite easy to achieve with a handler that
> records and resumes errors during startup.
>
> Joachim
>
> Am 08.11.2017 03:54 schrieb Ben Coman :
> >
> >
> >
> > On Wed, Nov 8, 2017 at 10:16 AM, Sean P. DeNigris 
> wrote:
> >>
> >> In a headless image, I'd like to do the following: if there's any error,
> >> arrange to have a debugger open on the next (headful) launch, and then
> save
> >> and quit.
> >>
> >> I'm drawing a blank - how would I do that?
> >>
> >> I explored various dead ends, the culmination of which was the
> >> image-breaking:
> >> actualWorkBlock on: Error do: [ [ Smalltalk snapshot: true andQuit:
> true ]
> >> fork. Halt now ]
> >>
> >> Thanks!
> >
> >
> > Sorry not a solution, but you sparked a side-thought...  To avoid
> sometimes being swamped by Pre-Debug windows.  Instead of an error bringing
> up an individual Pre-Debug window, we could have error go into a queue
> which a singleton Pre-Debug window could have a view into. This "Error
> Queue Viewer"  would have on row per error, and you click on a row to open
> a normal debugger, much like you click  button in the existing
> Pre-Debug window.  In a headless image, the Error Queue Viewer would not
> appear, but the error would keep being queued until the next time the Error
> Queue Viewer is manually opened.  The same error-queue might provide a
> similar interface point for Pharo Remote Tools, so you can see errors that
> occurred while you were not connected.
> >
> > cheers -ben




-- 
Mariano
http://marianopeck.wordpress.com


Re: [Pharo-users] Fuel serialize of 70MB takes forever on Linux vs. Mac

2017-12-22 Thread Mariano Martinez Peck
On Fri, Dec 22, 2017 at 9:40 AM, Andreas Brodbeck  wrote:

> Am 19.12.17 um 11:40 schrieb Andreas Brodbeck:
> > Am 18.12.17 um 20:45 schrieb Henrik-Nergaard:
> >
> > So: It's not the storage! It's something inside Fuel. I keep
> > investigating and will update here.
>
> ... so here are my latest findings:
>
> I took both images onto the same machine, a Mac. And these are the
> differences of the same Fuel serialization:
>
> *
> Fuel 2.1.10 Pharo 6.1 (#60520) 64bit: 90 seconds
> Fuel 2.1.10 Pharo 6.1 (#60527) 32bit: 245 seconds
> *
>
> For the record, here the versions of the two (equal) VMs:
>
> VM 32bit: 5.0 5.0.201707201942 Mac OS X built on Jul 20 2017 21:45:23
> UTC Compiler: 4.2.1 Compatible Apple LLVM 6.1.0 (clang-602.0.53)
> [Production Spur VM]
>
> VM 64bit: 5.0 5.0.201707201942 Mac OS X built on Jul 20 2017 21:08:05
> UTC Compiler: 4.2.1 Compatible Apple LLVM 6.1.0 (clang-602.0.53)
> [Production Spur 64-bit VM]
>
>
>
> I didn't expect the 64bit version to be a faster VM generally. What
> could be the reason here?
>
>
We have a special cluster for numbers that when they fit there, the
serialization is faster (see #clusterClassForSmallInteger:). If bigger than
the allowed range then it follows the slower kind of variable/indexed
object.
Another possibility could be Floats.
Can you check in your debug if you have a cluster (FLSmallIntegerCluster
subclass ) with MANY numbers?
Else, check with many floats..

I think it should be somehow related to that...

Cheers,




>
> Cheers, Andreas
>
> --
> Andreas Brodbeck
> www.mindclue.ch
>
>
>


-- 
Mariano
http://marianopeck.wordpress.com


Re: [Pharo-users] Fuel serialize of 70MB takes forever on Linux vs. Mac

2017-12-19 Thread Mariano Martinez Peck
On Tue, Dec 19, 2017 at 7:40 AM, Andreas Brodbeck  wrote:

> Am 18.12.17 um 20:45 schrieb Henrik-Nergaard:
> > Hi Andreas,
> >
> > It looks like you may have problems with hash collisions
> > FLLargeIdentityDictionary.
> > What are the tally sizes of the FLLargeIdentityDicitonary used when you
> > serialize? (If these have a tally larger than ~ 75% of the available size
> > (4096 items), then there may well be some performance loss).
>
> Well, hm, I have FLLargeIdentityDicitonary instances with up to 300'000
> items... But that's what "large" means, right?
>
> Is there anything I can do here? I don't think so.
>
> >
> > You could check if file writing is the problem by measuring the time it
> > takes to only serialize in memory.
> > You can try to use: "FLSerializer serializeToByteArray: " and see if it
> > gives petter performance?
>
> Thanks for this hint! I did that, and measured the same crazy
> difference, 6minutes vs. 1.5 minutes.
>
> So: It's not the storage! It's something inside Fuel. I keep
> investigating and will update here.
>
>
Hi Andreas,

Reading the thread nothing obvious comes to my mind. Sorry. My guy feeling
is that some of the primitives used by FLLargeIdentityDicitonary become
slower in latest VMs.
I guess the main one to check is #fuelPointsTo:   (primitive 132)  (see the
senders). Maybe you can do a quick test (isolated from your app) and
compare agains old pharo ?

Another thing would be comparing your scenario using a identity set. Just
save your image before doing this:

| set dict |
set := FLLargeIdentitySet.
dict := FLLargeIdentityDictionary.
Smalltalk at: #FLLargeIdentitySet put: IdentitySet.
Smalltalk at: #FLLargeIdentityDictionary put: IdentityDictionary.

And re-run the serialization.


Anyway, cannot think of much more things now.

Cheers,


Re: [Pharo-users] Pharo Launcher name

2017-12-17 Thread Mariano Martinez Peck
I also find having it called Pharo quite disturbing. PharoLauncher should
be much better. Something that also disturbing is to see the same icon as
all my pharo images / VMs. It would be much better if aside from having a
different name, it could have a different icon.

Cheers,

On Sun, Dec 17, 2017 at 2:55 PM, Stephane Ducasse 
wrote:

> I agree with you and we should rename it PharoLauncher.
>
> Stef
>
> On Sun, Dec 17, 2017 at 12:32 AM, Glenn Hoetker  wrote:
> > I love the Pharo Launcher.  But, I find it confusing to have an
> application
> > called “Pharo.app”. Nothing in that name suggests it is a launcher.  It
> is
> > also very confusing to have an application called “Pharo.app” next to one
> > called “Pharo6.1.app” when they are very different things (at least from
> a
> > users perspective).
> >
> > Has changing the name of the Pharo Launcher to “Pharo Launcher” ever been
> > considered?
> >
> > Just a thought. Most of all, thanks for the wonderful tool.
> >
> > Glenn
>
>


-- 
Mariano
http://marianopeck.wordpress.com


Re: [Pharo-users] Iceberg is cool!

2017-12-13 Thread Mariano Martinez Peck
Well, I am enjoying it too even if I still would need more features :)
BTW, how can I update a Pharo 6.1  that came with 0.6.2 to 0.6.5 ? Can I
simply run the update script listed here [1] ?

Thanks in advance

[1] https://github.com/pharo-vcs/iceberg#for-pharo-6



On Wed, Dec 13, 2017 at 8:42 AM, Norbert Hartl  wrote:

> I just got back from vacation and prepared a new image to work on the
> current project. Well, I upgraded iceberg to 0.6.5 and everything works
> like expected. I can see nicely what my colleagues have done while I was
> away. I can update everything easily. And most important I can do changes
> and then cherry pick and commit.
>
> So even if people are complaining about missing features (they always do!)
> I can say that for a basic workflow (for me about 95% of my work)
> everything seems to be in place. So everyone should feel invited to add the
> missing pieces.
>
> Well done and thank you,
>
> Norbert
>
>


-- 
Mariano
http://marianopeck.wordpress.com


Re: [Pharo-users] Fuel transfer from Pharo 1.4 to Pharo 6.1

2017-12-06 Thread Mariano Martinez Peck
Hi guys,

Let me try to explain the current situation. Fuel does check if a closure
is clean or not. If clean, it avoids serializing the whole stack. The way
it does this is to simply clean the outerContext of the block to NOT have a
sender. See methods CompiledMethod >> fuelAccept:
So..a clean closure would avoid serializing the sender and the sender of
the sender and ... the whole stack. But... at the very least it does need
to serialize the outerContext of that closure. That outerContext (even if
the block is clean) has a reference to the method in which the closure was
compiled. See this example:

TestCase compile: 'deleteMe

^ [ :aNumber | Transcript show: aNumber ]'.

(TestCase new perform: #deleteMe) cleanCopy outerContext method.


Do you  see how even a clean closure will still serialize ONE compiled
method? (#deleteMe in this case). That is the method that could have
changed bytecodes (remember that by default, Fuel does NOT fully serialize
the methods if they are installed in classes...it will simply serialize the
necessary information for looking it up at runtime) and that's where Fuel
could bark even for clean closures. But of course, far less chances than
serializing all the methods of the stack.


A more robust solution might be that if the block is clean, then do not
serialize the closure as a closure with a clean context, but as a string
(source). Then at materialization time, compile. The problem is that as far
as I remember we never implemented substitution hook at materialization
(only for serialization) so I don't have a place to hook. Yeah... you could
do a become: with a postMaterialziationAction but that;s too hackish
hahaha.

Hope this helps,



On Wed, Dec 6, 2017 at 9:58 AM, Andreas Brodbeck  wrote:

> Am 05.12.17 um 17:25 schrieb Sean P. DeNigris:
> > Andreas Brodbeck-3 wrote
> >> --- Searched for some few usages of SortedCollection and made sure, that
> >> there is no sortBlock but only the default sort behaviour.
> >
> > Can't we have Fuel handle the sort block if it's clean? I feel like we
> > discussed this before but can't recall the conclusion…
>
> Fuel does handle blocks perfectly, as long as you don't upgrade the
> underlying Pharo from version 1.4 to 6.1 (or similar big step), like I
> did... The reason is the change of the bytecodes of a compiled method
> somewhere between 1.4 and 6.1, which will then not materialize correctly
> and raises a FLMethodChanged error. Therefore I had to deal with it,
> like described before.
>
> Cheers, Andreas
>
>
> --
> Andreas Brodbeck
> www.mindclue.ch
>
>
>


-- 
Mariano
http://marianopeck.wordpress.com


Re: [Pharo-users] Fuel transfer from Pharo 1.4 to Pharo 6.1

2017-12-05 Thread Mariano Martinez Peck
On Tue, Dec 5, 2017 at 6:39 AM, Andreas Brodbeck <da...@mindclue.ch> wrote:

> Am 28.11.17 um 13:52 schrieb Mariano Martinez Peck:
> > On Tue, Nov 28, 2017 at 9:31 AM, Andreas Brodbeck <da...@mindclue.ch>
> wrote:
> >
> >> Am 28.11.17 um 12:46 schrieb Mariano Martinez Peck:
> >>> Hi Andreas,
> >>>
> >>> Do you know why method contexts are trying to be serialized? Of course,
> >>> probably because of closures.  Do you think / know / are aware of
> >> closures
> >>> as part of your graph? Maybe Sorted Collection?
> >>> I am asking because if the only thing is SortedCollection then we can
> use
> >>> some hook...
> >>
> >> I have closures in several places in the object graph. These are objects
> >> with some pluggable functionality, which I rely on.
> >>
> >
> >
> > *OK. The question is then if those closures are "clean" or not.* In other
> > words, what's their scope? Do they refer to variables defined outside
> the
> > closure (in which case you would need the methods contexts / stack) or
> are
> > they clean in the sense that you could be able to replace them via a
> string
> > and then compile them again ?
> > Some time ago we added a #isClean to BlockClosure. You can test a few of
> > your closures to see if this is the case or not.
> >
> > Btw, I have an application for a client in which we also have closures to
> > define some pluggable behavior. But what I do is:
> >
> > 1) guarantee they are 100% clean (does not go outside of scope)
> > 2) aside from the "block" instVar I also add another instVar which is the
> > "string" version of it. Then I always implement
> > #fuelIgnoredInstanceVariableNames to ignore all those "block" instVars,
> yet
> > DO NOT ignore the "string" like of those closures. Then, of course, the
> > getter of the block instvar does a lazy compilation if the block instVar
> is
> > nil...
> >
> > I know you already have your application written, but I am trying to
> > explain how I was able to use Fuel for this case...
>
> Just for the record, here is the solution what I ended up with:
>
> --- Install Fuel version 1.9.4 for debugging:
>
> (ConfigurationOfFuel project version: '1.9.4')
> load: #(default FuelDebug FuelPreview).
>
> --- Analyze the fuel serialization of the root object myDatabaseObject
> in the Pharo 1.4 image:
>
> FileStream forceNewFileNamed: 'debug.fuel' do: [:aFile |
> FLSerializer newDefault
> setDebug;
> serialize: myDatabaseObject on: aFile binary].
>
> FLDebugSerialization last log inspect.
>
>
> --- In the inspected Fuel-Log, look for the FLCompiledMethodCluster,
> which told me in which classes I use BlockClosures which fuel wants to
> persist.
>
> --- Changed my source code and the live objects where I use persisted
> BlockClosures to only use "clean" BlockClosure and only fuel-store them
> as Strings (Using fuelIgnoredInstanceVariableNames) an recompile them
> when the instance is materialized (Using fuelAfterMaterialization), as
> suggested by Mariano.
>
> --- Searched for some few usages of SortedCollection and made sure, that
> there is no sortBlock but only the default sort behaviour.
>
>
> So finally I got rid of persisted BlockClosures in the fuel file. That
> 1.9.4 Fuel file stored with Pharo 1.4 could then be materialized in
> Pharo 6.1. with the same Fuel version 1.9.4 without problems! I'm happy.
>
>
>

Awesome! That's exactly what I would have done.



-- 
Mariano
http://marianopeck.wordpress.com


Re: [Pharo-users] files.pharo.org downloads => needs testers

2017-11-29 Thread Mariano Martinez Peck
>From Argentina:

Dload  Upload   Total   SpentLeft  Speed
100 17.7M  100 17.7M0 0  2728k  0  0:00:06  0:00:06 --:--:--
4154k
  % Total% Received % Xferd  Average Speed   TimeTime Time
Current
 Dload  Upload   Total   SpentLeft
Speed
100 17.7M  100 17.7M0 0  1323k  0  0:00:13  0:00:13 --:--:--
1920k
  % Total% Received % Xferd  Average Speed   TimeTime Time
Current
 Dload  Upload   Total   SpentLeft
Speed
100 17.7M  100 17.7M0 0  1146k  0  0:00:15  0:00:15 --:--:--
2788k






On Wed, Nov 29, 2017 at 8:35 AM, Serge Stinckwich <
serge.stinckw...@gmail.com> wrote:

> From Cameroon, LTE
> inria.fr very slow for me ...
>
> curl -o 1.zip http://files2.pharo.org/image/70/Pharo-7.0.0-alpha.build.
> 328.sha.c366633.arch.32bit.zip --next -o 2.zip http://file-pharo.inria.fr/
> image/70/Pharo-7.0.0-alpha.build.328.sha.c366633.arch.32bit.zip --next -o
> 3.zip http://files.pharo.org/image/70/Pharo-7.0.0-alpha.build.
> 328.sha.c366633.arch.32bit.zip
>   % Total% Received % Xferd  Average Speed   TimeTime Time
> Current
>  Dload  Upload   Total   SpentLeft
> Speed
> 100 17.7M  100 17.7M0 0   700k  0  0:00:25  0:00:25 --:--:--
> 799k
>   % Total% Received % Xferd  Average Speed   TimeTime Time
> Current
>  Dload  Upload   Total   SpentLeft
> Speed
> 100 17.7M  100 17.7M0 0  32836  0  0:09:26  0:09:26 --:--:--
> 22514
>   % Total% Received % Xferd  Average Speed   TimeTime Time
> Current
>  Dload  Upload   Total   SpentLeft
> Speed
> 100 17.7M  100 17.7M0 0   569k  0  0:00:31  0:00:31 --:--:--
> 586k
>
> On Wed, Nov 29, 2017 at 11:43 AM, Alistair Grant 
> wrote:
>
>> Czech Republic:
>>
>> $ curl -o 1.zip
>> http://files2.pharo.org/image/70/Pharo-7.0.0-alpha.build.328
>> .sha.c366633.arch.32bit.zip
>> \
>> > --next -o 2.zip http://file-pharo.inria.fr/ima
>> ge/70/Pharo-7.0.0-alpha.build.328.sha.c366633.arch.32bit.zip \
>> > --next -o 3.zip http://files.pharo.org/image/7
>> 0/Pharo-7.0.0-alpha.build.328.sha.c366633.arch.32bit.zip
>>   % Total% Received % Xferd  Average Speed   TimeTime Time
>> Current
>>  Dload  Upload   Total   SpentLeft
>> Speed
>> 100 17.7M  100 17.7M0 0  1948k  0  0:00:09  0:00:09 --:--:--
>> 2799k
>> 100 17.7M  100 17.7M0 0  4012k  0  0:00:04  0:00:04 --:--:--
>> 4977k
>> 100 17.7M  100 17.7M0 0   106k  0  0:02:51  0:02:51 --:--:--
>> 57552
>>
>>
>> Thanks to Ben for making this easy.
>>
>> Cheers,
>> Alistair
>>
>> On 29 November 2017 at 11:36, Sven Van Caekenberghe  wrote:
>> >
>> >
>> >> On 29 Nov 2017, at 11:32, stephan  wrote:
>> >>
>> >> On 29-11-17 04:29, Ben Coman wrote:
>> >>> Performance from Western Australia...
>> >> From the Netherlands
>> >> curl -o 1.zip http://files2.pharo.org/image/
>> 70/Pharo-7.0.0-alpha.build.328.sha.c366633.arch.32bit.zip --next -o
>> 2.zip http://file-pharo.inria.fr/image/70/Pharo-7.0.0-alpha.build.
>> 328.sha.c366633.arch.32bit.zip --next -o 3.zip
>> http://files.pharo.org/image/70/Pharo-7.0.0-alpha.build.328.
>> sha.c366633.arch.32bit.zip
>> >>  % Total% Received % Xferd  Average Speed   TimeTime Time
>> Current
>> >> Dload  Upload   Total   SpentLeft
>> Speed
>> >> 100 17.7M  100 17.7M0 0  4418k  0  0:00:04  0:00:04
>> --:--:-- 4419k
>> >> 100 17.7M  100 17.7M0 0  4150k  0  0:00:04  0:00:04
>> --:--:-- 4859k
>> >> 100 17.7M  100 17.7M0 0  4619k  0  0:00:03  0:00:03
>> --:--:-- 4786k
>> >>
>> >> Stephan
>> >
>> > "The votes from the Belgian jury"
>> >
>> > $ curl -o 1.zip http://files2.pharo.org/image/
>> 70/Pharo-7.0.0-alpha.build.328.sha.c366633.arch.32bit.zip --next -o
>> 2.zip http://file-pharo.inria.fr/image/70/Pharo-7.0.0-alpha.build.
>> 328.sha.c366633.arch.32bit.zip --next -o 3.zip
>> http://files.pharo.org/image/70/Pharo-7.0.0-alpha.build.328.
>> sha.c366633.arch.32bit.zip
>> >   % Total% Received % Xferd  Average Speed   TimeTime Time
>> Current
>> >  Dload  Upload   Total   SpentLeft
>> Speed
>> > 100 17.7M  100 17.7M0 0  3414k  0  0:00:05  0:00:05
>> --:--:-- 4200k
>> >   % Total% Received % Xferd  Average Speed   TimeTime Time
>> Current
>> >  Dload  Upload   Total   SpentLeft
>> Speed
>> > 100 17.7M  100 17.7M0 0  5167k  0  0:00:03  0:00:03
>> --:--:-- 5168k
>> >   % Total% Received % Xferd  Average Speed   TimeTime Time
>> Current
>> >  Dload  Upload   Total   SpentLeft
>> Speed
>> > 100 17.7M  100 17.7M0 0  5952k  

Re: [Pharo-users] Fuel transfer from Pharo 1.4 to Pharo 6.1

2017-11-28 Thread Mariano Martinez Peck
On Tue, Nov 28, 2017 at 10:20 AM, Sven Van Caekenberghe <s...@stfx.eu>
wrote:

>
>
> > On 28 Nov 2017, at 13:52, Mariano Martinez Peck <marianop...@gmail.com>
> wrote:
> >
> >
> >
> > On Tue, Nov 28, 2017 at 9:31 AM, Andreas Brodbeck <da...@mindclue.ch>
> wrote:
> > Am 28.11.17 um 12:46 schrieb Mariano Martinez Peck:
> > > Hi Andreas,
> > >
> > > Do you know why method contexts are trying to be serialized? Of course,
> > > probably because of closures.  Do you think / know / are aware of
> closures
> > > as part of your graph? Maybe Sorted Collection?
> > > I am asking because if the only thing is SortedCollection then we can
> use
> > > some hook...
> >
> > I have closures in several places in the object graph. These are objects
> > with some pluggable functionality, which I rely on.
> >
> >
> > OK. The question is then if those closures are "clean" or not. In other
> words, what's their scope? Do they refer to variables defined outside  the
> closure (in which case you would need the methods contexts / stack) or are
> they clean in the sense that you could be able to replace them via a string
> and then compile them again ?
> > Some time ago we added a #isClean to BlockClosure. You can test a few of
> your closures to see if this is the case or not.
> >
> > Btw, I have an application for a client in which we also have closures
> to define some pluggable behavior. But what I do is:
> >
> > 1) guarantee they are 100% clean (does not go outside of scope)
> > 2) aside from the "block" instVar I also add another instVar which is
> the "string" version of it. Then I always implement #
> fuelIgnoredInstanceVariableNames to ignore all those "block" instVars,
> yet DO NOT ignore the "string" like of those closures. Then, of course, the
> getter of the block instvar does a lazy compilation if the block instVar is
> nil...
>
> Ah, that's cheating ;-)
>


I didn't say it wasn't hahahahahaha


>
> But totally acceptable with clean blocks.
>
> So,
>
> [ :x :y | x < y ] isClean.
>
>   => true
>
> [ :x :y | x < y ] sourceNode formattedCode.
>
>   => '[ :x :y | x < y ]'
>
> But
>
> Compiler evaluate: '[ :x :y | x < y ]'.
>
>   => [ :arg1 :arg2 | arg1 < arg2 ]
>
> So the argument names get lost, which seems like a pity. How are you doing
> it ? Can it be done differently ?
>
>

I really don't care at all how closures look like. The idea is: always keep
the string version instVars and sixx/fuel ignore the block version. block
version getter compiles from string if nil.
I think you might have understood I use the same instVar and that sometimes
I set a string and sometimes I set a closure. If that's the case, then yes,
I ended up with 2 different instVars...


Example:


FaAction class >> fuelIgnoredInstanceVariableNames
^ #('actionBlock')


FaPersistentObject subclass: #FaAction
instanceVariableNames: 'action actionBlock'
classVariableNames: ''
package: 'FA-Core'


FaAction  >> actionBlock
^ actionBlock
ifNil: [ action isEmptyOrNil
ifTrue: [ nil ]
ifFalse: [actionBlock := self compile: action ] ]

That's is obviously a simplified example and it might have some syntax
error but I guess you get the idea, right?


So this has worked very well for me with Fuel on Pharo and Sixx on
GemStone. There are obvious drawbacks like: it only works for clean
closures, having to have 2 instVar per "concept" , have to compile when I
only have the string, etc etc.






> > I know you already have your application written, but I am trying to
> explain how I was able to use Fuel for this case...
> >
> >
> > Just for my better understanding, I like to ask: The FLMethodChanged
> > errors will show up for *EVERY* method of a materialized object (Since
> > the bytecodesHash changed for every method) or just those methods which
> > involve fuel-persisted MethodContexts? (Sorry, if the question is
> > stupid, but I am rather new to Fuel internals)
> >
> >
> > As far as I can remember, the latter.
> >
> >
> >
> >
> > Cheers,
> > Andreas
> >
> > --
> > Andreas Brodbeck
> > www.mindclue.ch
> >
> >
> >
> >
> >
> > --
> > Mariano
> > http://marianopeck.wordpress.com
>
>
>


-- 
Mariano
http://marianopeck.wordpress.com


Re: [Pharo-users] Fuel transfer from Pharo 1.4 to Pharo 6.1

2017-11-28 Thread Mariano Martinez Peck
On Tue, Nov 28, 2017 at 9:20 AM, Andreas Brodbeck  wrote:

> Am 28.11.17 um 11:13 schrieb H. Hirzel:
> > Hello Andreas
> >
> > Unfortunately Fuel is not meant for this kind of use case of migrating
> > an object model.
>
> That's sad to hear. From 1.4 to 6.1 is a big step, I agree, but I really
> thought that Fuel can be considered as a good "transport vehicle" at
> least for small steps like from Pharo 5 to 6.
>
>

Yes, watching it from now, I think this was our biggest drawback of fuel.




> >
> > So other options have to be considered.
>
> That probably would be a custom mechanism storing objects in a database
> or fileformat and re-import, I think. Lots of work and very error prone.
> But maybe the only way unfortunately ...
>
> SIXX would be an option you think?
>
>

No. SIXX doesn't know how to deal with closures.




> >
> > Does your object model have cycles?
>
> Yes.
>
>
> Regards,
> Andreas
>
> --
> Andreas Brodbeck
> www.mindclue.ch
>
>
>


-- 
Mariano
http://marianopeck.wordpress.com


Re: [Pharo-users] Fuel transfer from Pharo 1.4 to Pharo 6.1

2017-11-28 Thread Mariano Martinez Peck
On Tue, Nov 28, 2017 at 9:31 AM, Andreas Brodbeck <da...@mindclue.ch> wrote:

> Am 28.11.17 um 12:46 schrieb Mariano Martinez Peck:
> > Hi Andreas,
> >
> > Do you know why method contexts are trying to be serialized? Of course,
> > probably because of closures.  Do you think / know / are aware of
> closures
> > as part of your graph? Maybe Sorted Collection?
> > I am asking because if the only thing is SortedCollection then we can use
> > some hook...
>
> I have closures in several places in the object graph. These are objects
> with some pluggable functionality, which I rely on.
>


*OK. The question is then if those closures are "clean" or not.* In other
words, what's their scope? Do they refer to variables defined outside  the
closure (in which case you would need the methods contexts / stack) or are
they clean in the sense that you could be able to replace them via a string
and then compile them again ?
Some time ago we added a #isClean to BlockClosure. You can test a few of
your closures to see if this is the case or not.

Btw, I have an application for a client in which we also have closures to
define some pluggable behavior. But what I do is:

1) guarantee they are 100% clean (does not go outside of scope)
2) aside from the "block" instVar I also add another instVar which is the
"string" version of it. Then I always implement
#fuelIgnoredInstanceVariableNames to ignore all those "block" instVars, yet
DO NOT ignore the "string" like of those closures. Then, of course, the
getter of the block instvar does a lazy compilation if the block instVar is
nil...

I know you already have your application written, but I am trying to
explain how I was able to use Fuel for this case...


>
> Just for my better understanding, I like to ask: The FLMethodChanged
> errors will show up for *EVERY* method of a materialized object (Since
> the bytecodesHash changed for every method) or just those methods which
> involve fuel-persisted MethodContexts? (Sorry, if the question is
> stupid, but I am rather new to Fuel internals)
>
>
As far as I can remember, the latter.




>
> Cheers,
> Andreas
>
> --
> Andreas Brodbeck
> www.mindclue.ch
>
>
>


-- 
Mariano
http://marianopeck.wordpress.com


Re: [Pharo-users] Fuel transfer from Pharo 1.4 to Pharo 6.1

2017-11-28 Thread Mariano Martinez Peck
Hi Andreas,

Do you know why method contexts are trying to be serialized? Of course,
probably because of closures.  Do you think / know / are aware of closures
as part of your graph? Maybe Sorted Collection?
I am asking because if the only thing is SortedCollection then we can use
some hook...

Let me know,

On Tue, Nov 28, 2017 at 7:01 AM, Andreas Brodbeck  wrote:

> Hi all,
>
> I have a long running Seaside/Pharo application which still runs perfect
> on Pharo 1.4. I want to step into the future and migrate to the newest
> Pharo 6.1.
>
> The application's persistence is just in the image, so my plan is to use
> Fuel to transfer the objects from Pharo 1.4 to Pharo 6.1.
>
> My first attempt:
>
> --- Using Fuel version 1.9.4 on both VMs.
> --- Class TimeStamp was missing, so I created it.
> --- I use a Fuel-migration for the renaming of "MethodContext" into the
> new "Context" class.
>
>
> But now I am stuck with FLMethodChanged errors. My investigation shows
> that there are unequal values for the method Context>>bytecodesHash when
> comparing Pharo 1.4 with 6.1. (BTW: Pharo 5 gives same values like 6.1).
>
> So, basically Fuel can not materialize the instances because the
> bytecode hash of all methods have changed, comparing 1.4 to 6.1. My
> feeling says that this could be a major problem for my plans to migrate
> from Pharo 1.4 to 6.1.
>
> Is there a chance to still load those instances with Fuel into the new
> 6.1 Pharo?
>
> Thanks!
> Andreas
>
> --
> Andreas Brodbeck
> www.mindclue.ch
>
>
>


-- 
Mariano
http://marianopeck.wordpress.com


Re: [Pharo-users] Pharo-Chrome (was: Soup bug(fix))

2017-11-16 Thread Mariano Martinez Peck
On Thu, Nov 16, 2017 at 6:27 PM, Stephane Ducasse <stepharo.s...@gmail.com>
wrote:

> Hi mariano
>
> pay attention to really use the version of guillermo because he was
> fixing some bugs.
>
>
Hi Stef,

Well, in general the idea is to use the "upstream" project and not personal
forks. As far as I am aware of, I have merged all PR from Guille into
`master`.
So unless he has recent commits that were not yet made available via a PR,
then my upstream project should be correct.
The only thing I would do as a user is to load `master` rather than the
latest released stable version as latest Guille PR merge happened AFTER the
last release.

Cheers,



> Stef
>
> On Wed, Nov 15, 2017 at 3:15 AM, Mariano Martinez Peck
> <marianop...@gmail.com> wrote:
> > If this is a problem with OSSubprocess I am happy to help it debug it,
> but
> > please share with me the exact steps to reproduce it and which code to
> look
> > at. And which OS and which Pharo. And it should be 32 bits (OSSubprocess
> > doesn't work on 64 yet)
> >
> > Thanks,
> >
> > On Tue, Nov 14, 2017 at 9:47 PM, Sean P. DeNigris <s...@clipperadams.com
> >
> > wrote:
> >>
> >> Alistair Grant wrote
> >> > This looks like you are using an old (cached?) version.
> >>
> >> Ugh, yes. I just deleted the local clone and let Iceberg reclone.
> >>
> >> Now when I tried:
> >> `GoogleChrome get:
> >> 'https://finance.yahoo.com/quote/%5EAXJO/history?p=%5EAXJO'`
> >> I got:
> >> Error: Error: posix_spawn(), code: 2, description: No such file or
> >> directory
> >> Even though pasting the command into Terminal successfully launched
> >> Chrome.
> >>
> >> BTW I had to insert a leading / to into the executable location.
> >>
> >>
> >>
> >> -
> >> Cheers,
> >> Sean
> >> --
> >> Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html
> >>
> >
> >
> >
> > --
> > Mariano
> > http://marianopeck.wordpress.com
>
>


-- 
Mariano
http://marianopeck.wordpress.com


Re: [Pharo-users] Pharo-Chrome (was: Soup bug(fix))

2017-11-16 Thread Mariano Martinez Peck
On Wed, Nov 15, 2017 at 7:04 PM, Sean P. DeNigris 
wrote:

> Alistair Grant wrote
> > Sorry for making you do all the work
>
> Not at all; happy to help. It takes a village! BTW I tracked it down to the
> spaces in the command path. IIRC from my OSP hacking days, it probably has
> something to do with the path not being run through the shell to interpret
> the $\s.
>
>
Yeah, OSSubprocess wont interpret, not expand anything. If you want to use
shell, then you have to use #shellCommand: or #shell:command:  (see its
senders for test examples)

Cheers,


-- 
Mariano
http://marianopeck.wordpress.com


Re: [Pharo-users] Pharo-Chrome (was: Soup bug(fix))

2017-11-14 Thread Mariano Martinez Peck
If this is a problem with OSSubprocess I am happy to help it debug it, but
please share with me the exact steps to reproduce it and which code to look
at. And which OS and which Pharo. And it should be 32 bits (OSSubprocess
doesn't work on 64 yet)

Thanks,

On Tue, Nov 14, 2017 at 9:47 PM, Sean P. DeNigris 
wrote:

> Alistair Grant wrote
> > This looks like you are using an old (cached?) version.
>
> Ugh, yes. I just deleted the local clone and let Iceberg reclone.
>
> Now when I tried:
> `GoogleChrome get:
> 'https://finance.yahoo.com/quote/%5EAXJO/history?p=%5EAXJO'`
> I got:
> Error: Error: posix_spawn(), code: 2, description: No such file or
> directory
> Even though pasting the command into Terminal successfully launched Chrome.
>
> BTW I had to insert a leading / to into the executable location.
>
>
>
> -
> Cheers,
> Sean
> --
> Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html
>
>


-- 
Mariano
http://marianopeck.wordpress.com


Re: [Pharo-users] Adding an Iceberg repository at startup

2017-11-10 Thread Mariano Martinez Peck
Thanks guys. I ended up doing this:

StartupPreferencesLoader default executeAtomicItems: {
StartupAction
name: '02 Iceberg'
code: [
| repo |

IceCredentialsProvider default sshCredentials
username: 'git';
publicKey: '/Users/mariano/.ssh/id_rsa_github.pub';
privateKey: '/Users/mariano/.ssh/id_rsa_github';
keyPassphrase: 'YYY'.

IceCredentialsProvider default plaintextCredentials
username: 'marianop...@gmail.com';
password: 'XXX'.

Iceberg enableMetacelloIntegration: true.
IceRepository
shareRepositoriesBetweenImages: true;
sharedRepositoriesLocationString: '/Users/mariano/Pharo/git'.
Iceberg showSystemRepositories: false.

repo := IceRepositoryCreator new
location:
'/Users/mariano/pharo61/pharo-local/iceberg/marianopeck/OSSubprocess'
asFileReference;
subdirectory: 'repository';
createRepository.
repo register.

 "more registrations here"

]
runOnce: true.
}.


On Fri, Nov 10, 2017 at 10:11 AM, Peter Uhnák <i.uh...@gmail.com> wrote:

> You can create repositories programatically.
>
> repo := IceRepositoryCreator new
> location: '/home/user/.../';
> subdirectory: 'codeSubdirectory';
> createRepository.
> repo register.
>
>
> On Fri, Nov 10, 2017 at 1:11 PM, Mariano Martinez Peck <
> marianop...@gmail.com> wrote:
>
>> I would also like that :)
>>
>> On Fri, Nov 10, 2017 at 6:45 AM, Prof. Andrew P. Black <bl...@cs.pdx.edu>
>> wrote:
>>
>>> I would like to have the git repositories that I’m working from
>>> automatically added to the list of known repositories in Iceberg at startup
>>> time.  In other words, I don;t want to have to do a bunch of “Add local
>>> repository” commands before I can start work.
>>>
>>> What magic can I put in my settings.st file to make this happen?
>>>
>>> Andrew
>>>
>>>
>>>
>>
>>
>> --
>> Mariano
>> http://marianopeck.wordpress.com
>>
>
>


-- 
Mariano
http://marianopeck.wordpress.com


Re: [Pharo-users] Adding an Iceberg repository at startup

2017-11-10 Thread Mariano Martinez Peck
I would also like that :)

On Fri, Nov 10, 2017 at 6:45 AM, Prof. Andrew P. Black 
wrote:

> I would like to have the git repositories that I’m working from
> automatically added to the list of known repositories in Iceberg at startup
> time.  In other words, I don;t want to have to do a bunch of “Add local
> repository” commands before I can start work.
>
> What magic can I put in my settings.st file to make this happen?
>
> Andrew
>
>
>


-- 
Mariano
http://marianopeck.wordpress.com


Re: [Pharo-users] perspective request for those earning a living from Smalltalk

2017-10-22 Thread Mariano Martinez Peck
Done :)

On Sun, Oct 22, 2017 at 10:33 AM, Ben Coman  wrote:

> At https://news.ycombinator.com/item?id=15523807
> the question is asked... "Does anyone on here program in Smalltalk
> professionally? Not to get off topic, but I'm curious and would like to
> know how it stacks up compared to what they did previously? "
>
> If you've earning a living from programming Smalltalk, please drop a
> comment there.
>
> cheers -ben
>



-- 
Mariano
http://marianopeck.wordpress.com


[Pharo-users] [ANN] OSSubprocess Bugfix and enhancements release

2017-10-06 Thread Mariano Martinez Peck
Dear all,

I have just released a new bugfix and enhancements release v0.2.5 for
OSSubprocess as you can see in [1].

This new release is thanks to the awesome work of Guillermo Polito [2]. He
found a problem (and a fix) that would hung/block the Pharo image in a wait
state. This problem has been forever and I have faced it myself. It would
only happen when using #waitForExit and under certain scenario.  Because of
that, I recommend everyone to move to this release.

Aside from that serious bug, he has also done quite some improvements in
the tests and in the Travis setup. Once this PR [3] has been merged and
SmalltalkCI updated, our Travis build [4] should show all green builds for
Linux/OSX and Pharo 5.0 and 6.1.

I have also copied the configuration into Pharo 5.0 and 6.0 catalog so as
of tomorrow, it should be there.


Cheers,

[1] https://github.com/marianopeck/OSSubprocess/releases/tag/v0.2.5
[2] https://github.com/marianopeck/OSSubprocess/pull/25
[3] https://github.com/hpi-swa/smalltalkCI/pull/320
[4] https://travis-ci.org/marianopeck/OSSubprocess


-- 
Mariano
http://marianopeck.wordpress.com


[Pharo-users] This sentence made my day [WAS] Re: Dark Mode

2017-08-27 Thread Mariano Martinez Peck
On Sun, Aug 27, 2017 at 6:50 PM, PBKResearch 
wrote:

> I agree with Dimitris - it is all a matter of preference - not all eyes
> are the same. For myself, I find the default dark theme in Pharo very
> uncomfortable. On my system, some elements have a black foreground on a
> dark grey background, which is almost impossible to see. This is always
> true of the maximise/minimise/close buttons, but sometimes also of text
> fields in a playground. Whenever I download a new image, I immediately
> switch to the Watery theme, with light background and nice coloured buttons
> on the windows.
>
> Of course, my eyes may not be typical. I am now aged 84, and I have had
> cataract operations on both eyes. My sight is actually quite good - my
> optometrist confirms that I am legal to drive without spectacles - but my
> adverse reaction to dark mode is strong and immediate.
>
>

Sometimes is hard to explain to someone outside the community why
Smalltalkers love they language so much. I think above paragraph says it
all. It made my day. I wish I can follow that path! hahaha.




> Just my 2p worth
>
> Peter Kenny
>
> -Original Message-
> From: Pharo-users [mailto:pharo-users-boun...@lists.pharo.org] On Behalf
> Of stephan
> Sent: 27 August 2017 21:46
> To: pharo-users@lists.pharo.org
> Subject: Re: [Pharo-users] Dark Mode
>
> On 27-08-17 22:37, Dimitris Chloupis wrote:
> > White or dark is a matter of preference. But the matter of preference
> > is also a matter of biology . Not all eyes are same.
>
> The research is pretty clear: a large majority of developers does better
> with light themes. I have been sufficiently clear on the choice to make
> Pharo6 theme dark default
>
> Stephan
>
>
>
>


-- 
Mariano
http://marianopeck.wordpress.com


Re: [Pharo-users] [ANN] PharoLambda 1.5 - Pharo running on AWS Lambda now with saved Debug sessions via S3

2017-08-10 Thread Mariano Martinez Peck
Yeah, very nice. I just watched it all and looks cool. I am happy that the
debugger/stack/context serialization is still breaking other people's mind
:)
There are a few limitations and problems with the serialization of debugger
and materialization in another image. I think I listed those several times
in the mailing list, but if you want, let me know, and I can remind them
again (there we workarounds or help with the limits).

Cheers,

On Thu, Aug 10, 2017 at 5:57 PM, Alexandre Bergel 
wrote:

> Impressive stuff!!
>
> Alexandre
> --
> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
> Alexandre Bergel  http://www.bergel.eu
> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>
>
>
> On Aug 10, 2017, at 9:47 AM, Tim Mackinnon  wrote:
>
> I just wanted to thank everyone for their help in getting my pet project
> further along, so that now I can announce that PharoLambda is now working
> with the V7 minimal image and also supports post mortem debugging by saving
> a zipped fuel context onto S3.
>
> This latter item is particularly satisfying as at a recent serverless
> conference (JeffConf) there was a panel where poor development tools on
> serverless platforms was highlighted as a real problem.
>
> In our community we’ve had these kinds of tools at our fingertips for ages
> - but I don’t think the wider development community has really noticed.
> Debugging something short lived like a Lambda execution is quite startling,
> as the current answer is “add more logging”, and we all know that sucks. To
> this end, I’ve created a little screencast showing this in action - and it
> was pretty cool because it was a real example I encountered when I got
> everything working and was trying my test application out.
>
> I’ve also put a bit of work into tuning the excellent GitLab CI tools, so
> that I can cache many of the artefacts used between different build runs
> (this might also be of interest to others using CI systems).
>
> The Gitlab project is on: https://gitlab.com/macta/PharoLambda
> And the screencast: https://www.youtube.com/watch?v=bNNCT1hLA3E
>
> Tim
>
>
> On 15 Jul 2017, at 00:39, Tim Mackinnon  wrote:
>
> Hi - I’ve been playing around with getting Pharo to run well on AWS
> Lambda. It’s early days, but I though it might be interesting to share what
> I’ve learned so far.
>
> Usage examples and code at https://gitlab.com/macta/PharoLambda
>
> With help from many of the folks here, I’ve been able to get a simple
> example to run in 500ms-1200ms with a minimal Pharo 6 image. You can easily
> try it out yourself. This seems slightly better than what the GoLang folks
> have been able to do.
>
> Tim
>
>
>
>


-- 
Mariano
http://marianopeck.wordpress.com


Re: [Pharo-users] What sets the Monticello Local Cache Directory default in a new image?

2017-08-02 Thread Mariano Martinez Peck
On Wed, Aug 2, 2017 at 12:04 PM, Tim Mackinnon <tim@testit.works> wrote:

> I’d be curious about your script if it is easily handy
>

As said, nothing fancy at all [1].
And it keeps evolving all the time as Pharo evolves too.



> (I did notice a blog article you wrote on StartupLoader a while back).
>
>
Yeah, but that post is not a bit outdated as StartupLoader changed quite a
bit since I wrote the article.  But the idea is still the same.



> By the way - I really appreciated your article "Moving contexts
> and debuggers between images with Fuel” -
>

Thanks. Yes, that fact made us won the first price [2]. I still remember I
was sit on my living room, preparing the demo for ESUG I was thinking how
could I show Fuel in a cool manner. I knew at that point we were able to
serialize closures, methods, classes, etc... but I just thought "what If I
serialize the debugger?". I took me 5 minutes to try it out and realized it
worked from the first run hahaa. That was one of my top 5 best programming
days of my life hahaha.

This feature was then used for the "Fuel out stack" and to revive  CI
failure tests locally.



> it inspired me to figure it out for debugging on AWS lambda (which is very
> cool BTW - and I’ll write it up soon when I have it bedded in)
>
>
Cool. I have been following your emails about having a small image and a
small vm and I am very interesting on that. Well, I should be considering
which was my PhD [3] hahaha


[1]  http://ws.stfx.eu/OCV4GOA5D6DR
[2]
http://www.esug.org/wiki/pier/Conferences/2011/InnovationTechnologyAwards
[3] https://marianopeck.wordpress.com/2012/11/07/dr-mariano-martinez-peck/


Cheers,



> Tim
>
> On 2 Aug 2017, at 15:10, Mariano Martinez Peck <marianop...@gmail.com>
> wrote:
>
>
>
> On Wed, Aug 2, 2017 at 10:50 AM, Tim Mackinnon <tim@testit.works> wrote:
>
>> Mariano - out of curiosity, how do you build your image - do you use zero
>> conf and then apply a known .st script? (I used to use pharo launcher back
>> in the day - but now I find that zeroconf is actually handier anyway).
>>
>>
> My work flow explained below is only for when I am using stable Pharo for
> a paid client. In this case, I am not grabbing Pharo latest code all the
> time. Only every in a while. So, my workflow is as follow:
>
> 1) with zero conf I simply grab image and vm (I try to keep my app working
> with latest stable)
>
> 2) Apply a known load script that we keep maintained (this is somehwere in
> a wiki). This script contains:
>2.1) settings of Author, Monticello username and pass etc.
>2.2) Several custom settings/preferences that I like to change to
> the default image (this could be replaced by startup preferences thingy).
>2.3) Workaround for bugs I hit and that are not backported to
> stable version.
>2.4) Install 3er party libs I want for my development image
> (Calypso browser, code critics (now integrated), etc etc).
>2.5) Finally, I load my app code.
>
>
> 3) Once I am done loading all of it, I save that image as
> "PharoMyAppTemplate.image". And I never do real work with that image.
>
> 4) Each time I need a new image (to make a new feature, a bug fix,
> whatever) I take "PharoMyAppTemplate.image" and I do a "save as" with
> either number like "PharoMyApp1.image" or "PharoMyAppBug3232.image" or
> ""PharoMyAppNewFeature.image" etc. I create these images many times and I
> don't have a strong policy on when to create new ones. Whenever I create
> one of these images, I upload my app code to latest code.
>
> 5) Every in a while, I update my template image. Mostly when I change my
> dependencies.
>
> I can share the script if you want.
>
> Cheers,
>
>
>
>
>> Tim
>>
>> On 2 Aug 2017, at 13:24, Mariano Martinez Peck <marianop...@gmail.com>
>> wrote:
>>
>>
>>
>> On Wed, Aug 2, 2017 at 9:16 AM, Tim Mackinnon <tim@testit.works> wrote:
>>
>>> Hi - I’ve noticed that when I download a new image+vm with zeroconf (in
>>> a fresh directory) - that when I launch it, the setting Tools | Software
>>> Config Mgnmnt | Monticello | Local Cache Directory has a value that points
>>> to a directory from one of my earlier images.
>>>
>>> Is this normal (does it store this information somewhere on my computer
>>> so that different setups can access it)?
>>>
>>> At first I thought this was annoying - but I’m now wondering if this is
>>> useful as I’m guessing that there isn’t any reason to have separate caches
>>> for version controlled libraries and so maybe I should actually set it to
>

Re: [Pharo-users] What sets the Monticello Local Cache Directory default in a new image?

2017-08-02 Thread Mariano Martinez Peck
On Wed, Aug 2, 2017 at 10:50 AM, Tim Mackinnon <tim@testit.works> wrote:

> Mariano - out of curiosity, how do you build your image - do you use zero
> conf and then apply a known .st script? (I used to use pharo launcher back
> in the day - but now I find that zeroconf is actually handier anyway).
>
>
My work flow explained below is only for when I am using stable Pharo for a
paid client. In this case, I am not grabbing Pharo latest code all the
time. Only every in a while. So, my workflow is as follow:

1) with zero conf I simply grab image and vm (I try to keep my app working
with latest stable)

2) Apply a known load script that we keep maintained (this is somehwere in
a wiki). This script contains:
   2.1) settings of Author, Monticello username and pass etc.
   2.2) Several custom settings/preferences that I like to change to
the default image (this could be replaced by startup preferences thingy).
   2.3) Workaround for bugs I hit and that are not backported to stable
version.
   2.4) Install 3er party libs I want for my development image (Calypso
browser, code critics (now integrated), etc etc).
   2.5) Finally, I load my app code.


3) Once I am done loading all of it, I save that image as
"PharoMyAppTemplate.image". And I never do real work with that image.

4) Each time I need a new image (to make a new feature, a bug fix,
whatever) I take "PharoMyAppTemplate.image" and I do a "save as" with
either number like "PharoMyApp1.image" or "PharoMyAppBug3232.image" or
""PharoMyAppNewFeature.image" etc. I create these images many times and I
don't have a strong policy on when to create new ones. Whenever I create
one of these images, I upload my app code to latest code.

5) Every in a while, I update my template image. Mostly when I change my
dependencies.

I can share the script if you want.

Cheers,




> Tim
>
> On 2 Aug 2017, at 13:24, Mariano Martinez Peck <marianop...@gmail.com>
> wrote:
>
>
>
> On Wed, Aug 2, 2017 at 9:16 AM, Tim Mackinnon <tim@testit.works> wrote:
>
>> Hi - I’ve noticed that when I download a new image+vm with zeroconf (in a
>> fresh directory) - that when I launch it, the setting Tools | Software
>> Config Mgnmnt | Monticello | Local Cache Directory has a value that points
>> to a directory from one of my earlier images.
>>
>> Is this normal (does it store this information somewhere on my computer
>> so that different setups can access it)?
>>
>> At first I thought this was annoying - but I’m now wondering if this is
>> useful as I’m guessing that there isn’t any reason to have separate caches
>> for version controlled libraries and so maybe I should actually set it to
>> some common directory?
>>
>> What is the recommended strategy?
>>
>>
> My strategy is to use a shared repository for all my images. As part of my
> build image scripts I do something like this:
>
>
> " === Personal Settings  "
> MCCacheRepository cacheDirectory: '/Users/mariano/Pharo/localRepo/' 
> asFileReference.MCGitHubRepository cacheDirectory: 
> '/Users/mariano/Pharo/localRepo/' asFileReference.GTPlayBook cacheDirectory: 
> '/Users/mariano/Pharo/play-cache/' asFileReference.
>
> GTPlayBook stashDirectory: '/Users/mariano/Pharo/play-stash/'
> asFileReference.
>
>
> I guess you save stuff:
>
> find /Users/mariano/Pharo/localRepo/ -type f | wc -l
>
>*32301*
>
>  du -sh /Users/mariano/Pharo/localRepo
> *6.1G*/Users/mariano/Pharo/localRepo
>
>
> Not only you save disk space, but also:
> 1) Each image build is likely to take less time as many files will be
> already in the cache (no need to redownload it).
> 2) it works as a yet another backup of your code and other packages.
>
>
>
> --
> Mariano
> http://marianopeck.wordpress.com
>
>
>


-- 
Mariano
http://marianopeck.wordpress.com


Re: [Pharo-users] What sets the Monticello Local Cache Directory default in a new image?

2017-08-02 Thread Mariano Martinez Peck
On Wed, Aug 2, 2017 at 9:16 AM, Tim Mackinnon  wrote:

> Hi - I’ve noticed that when I download a new image+vm with zeroconf (in a
> fresh directory) - that when I launch it, the setting Tools | Software
> Config Mgnmnt | Monticello | Local Cache Directory has a value that points
> to a directory from one of my earlier images.
>
> Is this normal (does it store this information somewhere on my computer so
> that different setups can access it)?
>
> At first I thought this was annoying - but I’m now wondering if this is
> useful as I’m guessing that there isn’t any reason to have separate caches
> for version controlled libraries and so maybe I should actually set it to
> some common directory?
>
> What is the recommended strategy?
>
>
My strategy is to use a shared repository for all my images. As part of my
build image scripts I do something like this:


" === Personal Settings  "
MCCacheRepository cacheDirectory: '/Users/mariano/Pharo/localRepo/'
asFileReference.MCGitHubRepository cacheDirectory:
'/Users/mariano/Pharo/localRepo/' asFileReference.GTPlayBook
cacheDirectory: '/Users/mariano/Pharo/play-cache/' asFileReference.

GTPlayBook stashDirectory: '/Users/mariano/Pharo/play-stash/'
asFileReference.


I guess you save stuff:

find /Users/mariano/Pharo/localRepo/ -type f | wc -l

   *32301*

 du -sh /Users/mariano/Pharo/localRepo
*6.1G*/Users/mariano/Pharo/localRepo


Not only you save disk space, but also:
1) Each image build is likely to take less time as many files will be
already in the cache (no need to redownload it).
2) it works as a yet another backup of your code and other packages.



-- 
Mariano
http://marianopeck.wordpress.com


Re: [Pharo-users] Performance Testing Tools

2017-07-19 Thread Mariano Martinez Peck
The ones I remember are Smark [1] and CalipeL [2]

Cheers,

[1] http://www.smalltalkhub.com/#!/~StefanMarr/SMark
[2] https://bitbucket.org/janvrany/jv-calipel

On Wed, Jul 19, 2017 at 4:17 AM, Luke Gorrie  wrote:

> Hi Evan,
>
> I am also really interesting in this topic and have been doing a bunch of
> work on automating statistical benchmarks. I don't have a background in
> statistics or formal QA but I am learning as I go along :).
>
> The tools I'm building are outside Smalltalk. Our full performance test
> suite takes about a week of machine time to run because tests ~15,000 QEMU
> VMs with different software versions / configurations / workloads. There is
> a CI server that runs all those tests, getting pretty fast turnarounds by
> distributing across a cluster of servers and reusing results from
> unmodified software branches, and spits out a CSV with one row per test
> result (giving the benchmark score and the parameters of the test.)
>
> Then what to do with that ~15,000 line CSV file? Just now I run Rmarkdown
> to make a report on the distribution of results and then manually inspect
> that to check for interesting differences. I lump all of the different
> configurations in together and treat them as one population at the moment.
> Here is an example report:
> https://hydra.snabb.co/build/1604171/download/2/report.html
>
> It's a bit primitive but it is getting the job done for release
> engineering. I'm reasonably confident that new software releases don't
> break or slow down in obscure configurations. We are building network
> equipment and performance regressions are generally not acceptable.
>
> I'm looking into more clever ways to automatically interpret the results,
> e.g. fumbling around at https://stats.stackexchange.
> com/questions/288416/non-parametric-test-if-two-
> samples-are-drawn-from-the-same-distribution.
>
> Could relate to your ambitions somehow?
>
>
> On 19 July 2017 at 02:00, Evan Donahue  wrote:
>
>> Hi,
>>
>> I've been doing a lot of performance testing lately, and I've found
>> myself wanting to upgrade my methods from ad hoc use of bench and message
>> tally. Is there any kind of framework for like, statistically comparing
>> improvements in performance benchmarks across different versions of code,
>> or anything that generally helps manage the test-tweak-test loop? Just
>> curious what's out there before I go writing something. Too many useful
>> little libraries to keep track of!
>>
>> Evan
>>
>
>


-- 
Mariano
http://marianopeck.wordpress.com


Re: [Pharo-users] [OFFTOPIC] Update: Debris Publishing / Quuve Research & Portfolio Management Platform

2017-07-12 Thread Mariano Martinez Peck
BTW, thanks for creating the ycombinator post!

https://news.ycombinator.com/item?id=14756598#14757008

Cheers,

On Wed, Jul 12, 2017 at 4:53 PM, Mariano Martinez Peck <
marianop...@gmail.com> wrote:

> Hi all,
>
> A while back our team presented Quuve [1], a customizable investment
> management ecosystem for professional investors. We also discussed the
> technologies employed to build it [2] (it is developed on Pharo and
> deployed on GemStone). We are reaching out again because we recently
> revamped our website [3] and created a number of promotional videos that
> demonstrate Quuve's power [4]. We would appreciate your help in marketing
> our wares!
>
> Quuve is the world's first fully integrated and customizable research and
> portfolio management platform. The system offers powerful features never
> before seen by the investment community and it empowers users to tailor tools
> in ways that accommodate their idiosyncratic investment style. In the
> coming years, customization, data-inheritance, shared databases,
> machine-learning, and robo-trading will become standard among investors of
> all sizes, and we expect Quuve will blaze the trail.
>
> If you have any questions about Quuve please let us know.
>
> [1] http://pharo.org/success/Quuve
> [2] http://forum.world.st/Fwd-Debris-Quuve-Technologies-used
> -td4819786.html
> [3] http://www.debrispublishing.com/
> [4] https://www.youtube.com/watch?list=PLfTMPTPc22sGNrm2rXt8
> kD-9iFTgqbAUG=zdm4CVse2Hc
>
> Thanks,
>
> --
> Mariano
> http://marianopeck.wordpress.com
>



-- 
Mariano
http://marianopeck.wordpress.com


Re: [Pharo-users] [Glass] How do you develop for gemstone in open source tools (pharo)?

2017-06-23 Thread Mariano Martinez Peck
On Thu, Jun 22, 2017 at 6:16 PM, Petr Fischer via Glass <
gl...@lists.gemtalksystems.com> wrote:

> Hello, I'm curious how _comfortably_ develop software for Gemstone, which
> is the preferred/best way (and future)?
>
> 1) tODE - OK, a decent amount of work was inserted to it to make it work
> somehow. Decent tools with git support, a lot of windows (autolayouting
> required), very basic inspector, based on obsolete Pharo3, no autocomplete,
> weird auto code formating etc. :(
> Will the development continue (better inspectors, autocomplete, etc)?
>
> 2) gt4gemstone - new project based on GT tools, great
> playground/workspace/inspectors, running in latest Pharo, but again, just
> basic browser, no autocompletion, no syntax coloring (so far), but modern
> way
> What is the plan? Write proper class browser and code editor again from
> scratch?
> There is amazing new browser for Pharo, Calypso, which has remote browsing
> capabilities (but probably different remoting/proxy layer than gt tools) -
> is possible to utilize this project for remote Gemstone browsing in future?
>
> 3) develop in Pharo, then deploy to Gemstone
> With some compatibility layers, there is possibility to develop
> application/business logic in Pharo (with bare collections, dicts,
> containers etc.) and then deploy code to Gemstone and test. Nice scenario,
> latest modern dev tools (browsers, inspectors, versioning) from Pharo, but
> on the dev side in Pharo, no transaction logic (test transaction logic with
> junit impossible/not available etc.), also not compatible class library -
> so also with drawbacks with different Smalltalk implementation chaos :(
>
I would very much like to get involved with Gemstone dev, but it scratches
> a bit now.
>
>
Hi Hi Petr,

I personally do 3). I like developing on Pharo and keep doing that on each
latest stable release. And yeah, you must have some compatibility layers,
you must keep a ConfigurationOf working on both platforms, different class
libraries (files, etc), etc. This takes time at the beginning, but then it
gets easier and easier. I still use tODE for evaluating code (workspace),
browsing GemStone specific code (browser), debug (stored continuations),
and for developing the GemStone specific code.


4)

I think you made a good summary. In all those cases, you still consider
GemStone like both things, the language interpreter PLUS the persistency.
There is one last approach which uses GemStone mostly only for
"persistence". In this scenario you would use GemStone similarly to what
you do with a normal relational DB, that is, you open a connection, then do
something.  Dale went a bit further and developed a simple Voyage kind of
API with this idea in mind. Anyway, below are some interesting links.


[0]
https://github.com/GsDevKit/gsDevKitHome/blob/dev/docs/articles/gsDevKitServerBlocks.md

[1] https://github.com/dalehenrich/Tugrik

[2] https://github.com/dalehenrich/voyage
[3] http://www.slideshare.net/esug/tugrik-a-new-persistence-option-for-pharo




> Thanks! pf
> ___
> Glass mailing list
> gl...@lists.gemtalksystems.com
> http://lists.gemtalksystems.com/mailman/listinfo/glass
>



-- 
Mariano
http://marianopeck.wordpress.com


Re: [Pharo-users] crash.dmp of OSSubProcess on Pharo 6.0

2017-06-09 Thread Mariano Martinez Peck
Hi John,

Was this using 64bits flavor ? If true, can you try with 32 and let me
know?
I ask because I know OSSubprocess doesn't work on 64 bits yet, but to fix
this I need some pull requets merged in the VM...

Cheers,

On Fri, Jun 9, 2017 at 1:21 AM, john pfersich  wrote:

> I got a seg fault when I tried to execute some OSSubProcess code in Pharo
> 6.0.
>
> Namely,
>
> | process |
> process := OSSUnixSubprocess new
> command: '/bin/cat';
> redirectStdin;
> redirectStdout;
> run.
> process stdinStream
> nextPutAll: 'we are testing!';
> nextPutAll: 'we again!';
> close.
> process waitForExit.
> process stdoutStream upToEndOfFile inspect.
> process closeAndCleanStreams.
>
> Attached is the crash.dmp file
>



-- 
Mariano
http://marianopeck.wordpress.com


Re: [Pharo-users] Analyzing Fuel Problem

2017-06-06 Thread Mariano Martinez Peck
Hi Sean,

Sorry for the delay on the answer. Yes, that's a good spot. Another thing I
usually do is to put a halt in FLSerialization >> run. Just after
#analysisStep for example, and then inspect the local variables.

Also, if you want to understand WHY an object is getting in, then you can
also halt in #trace and #privateTrace: from FLAnalysis. That way you
monitor which objects gets pushed into the analysis stack. You can do
something like

self haltIf: [ anObject whateverConditionToHaltOnDesiredObject = true ].

Finally, there are more tools for debugging this kind of issue, but I don't
know their state. You can read more about them here [1].

Best regards,


[1]
https://rmod.inria.fr/web/software/Fuel/Version1.9/Documentation/Debugging

On Fri, Jun 2, 2017 at 10:26 PM, Sean P. DeNigris 
wrote:

> I had an object graph that was pulling in all sorts of unrelated classes
> when
> serialized with Fuel. I was trying to find the offending object, and came
> up
> with the following:
> ```
> (FLAnalyzer newDefault analysisFor: root) clusterization globalsBucket
> ```
>
> This worked, but I was wondering if that's "the right way" to do it...
>
> Thanks.
>
>
>
> -
> Cheers,
> Sean
> --
> View this message in context: http://forum.world.st/
> Analyzing-Fuel-Problem-tp4949104.html
> Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.
>
>


-- 
Mariano
http://marianopeck.wordpress.com


Re: [Pharo-users] [Moose-dev] Re: [ann] gt4gemstone

2017-05-02 Thread Mariano Martinez Peck
On Wed, May 3, 2017 at 1:55 AM, Tudor Girba <tu...@tudorgirba.com> wrote:

> Hi,
>
> > On May 3, 2017, at 1:00 AM, Mariano Martinez Peck <marianop...@gmail.com>
> wrote:
> >
> > Hi Doru,
> >
> > That's very cool! I am on vacation now so I don't have much time to take
> a deeper look.
> > Quick questions:
> > 1) is this using the CGI FFI port I did for Pharo 5 UFFI?
>
> Of course :).
>


Cool!  I am glad that is being used and that it was worth! I still remember
the skype call we had some time ago :)


>
> > 2) Which pharo and gemstone versions are supported? Does this work for
> Pharo 5.0 and GemStone 3.3.3 ?
>
> - Pharo 5.0, Pharo 6.0.
> - GemStone 3.3.3
>
>
Excellent. That fits my client app. I will try to test it when I am back.

Best,



> Cheers,
> Doru
>
>
> > Thanks!
> >
> >
> > On Tue, May 2, 2017 at 6:29 PM, Tudor Girba <tu...@tudorgirba.com>
> wrote:
> > Hi,
> >
> > feenk.com is proud to announce gt4gemstone, a version of the Glamorous
> Toolkit aimed at supporting remote development with GemStone/S from Pharo.
> gt4gemstone is released as an open-source project under the MIT license and
> was built primarily by Andrei Chis with some marginal contributions from me.
> >
> > The project is hosted at:
> > https://github.com/feenkcom/gt4gemstone
> >
> > The toolkit currently offers several features:
> > • Remote Playground
> > • Remote Inspector with extensions that can be coded exactly
> like the ones in Pharo
> > • Remote Debugger with mixed stacks (Pharo and GemStone)
> > • Basic Remote Code Browser
> > • Remote Session Handler
> > • Integration with Roassal
> > • A Glamour-specific proxy model for efficient serialization of
> Glamour presentations
> > • A basic proxy model for working with any remote objects from
> GemStone
> >
> > One particular aspect that we focused on is performance. So much so,
> that at one point inspecting objects in gt4gemstone was faster than doing
> them locally. In the meantime, the GT inspector from Pharo also received an
> upgrade.
> >
> > But, perhaps the most exciting thing about this project is that most
> extensions of the inspector can be expressed exactly in the same way both
> in Pharo and in GemStone, and this makes the scenario of building in Pharo
> and deploying in GemStone even more appealing.
> >
> > The official announcement with some extra details can be found here:
> > http://www.humane-assessment.com/blog/introducing-gt4gemstone/
> >
> > Cheers,
> > Tudor
> >
> > --
> > www.tudorgirba.com
> > www.feenk.com
> >
> > "There are no old things, there are only old ways of looking at them."
> >
> >
> >
> >
> > ___
> > Moose-dev mailing list
> > moose-...@list.inf.unibe.ch
> > https://www.list.inf.unibe.ch/listinfo/moose-dev
> >
> >
> >
> > --
> > Mariano
> > http://marianopeck.wordpress.com
> > ___
> > Moose-dev mailing list
> > moose-...@list.inf.unibe.ch
> > https://www.list.inf.unibe.ch/listinfo/moose-dev
>
> --
> www.tudorgirba.com
> www.feenk.com
>
> “Live like you mean it."
>
> ___
> Moose-dev mailing list
> moose-...@list.inf.unibe.ch
> https://www.list.inf.unibe.ch/listinfo/moose-dev
>



-- 
Mariano
http://marianopeck.wordpress.com


Re: [Pharo-users] [Moose-dev] [ann] gt4gemstone

2017-05-02 Thread Mariano Martinez Peck
Hi Doru,

That's very cool! I am on vacation now so I don't have much time to take a
deeper look.
Quick questions:
1) is this using the CGI FFI port I did for Pharo 5 UFFI?
2) Which pharo and gemstone versions are supported? Does this work for
Pharo 5.0 and GemStone 3.3.3 ?

Thanks!


On Tue, May 2, 2017 at 6:29 PM, Tudor Girba  wrote:

> Hi,
>
> feenk.com is proud to announce gt4gemstone, a version of the Glamorous
> Toolkit aimed at supporting remote development with GemStone/S from Pharo.
> gt4gemstone is released as an open-source project under the MIT license and
> was built primarily by Andrei Chis with some marginal contributions from me.
>
> The project is hosted at:
> https://github.com/feenkcom/gt4gemstone
>
> The toolkit currently offers several features:
> • Remote Playground
> • Remote Inspector with extensions that can be coded exactly like
> the ones in Pharo
> • Remote Debugger with mixed stacks (Pharo and GemStone)
> • Basic Remote Code Browser
> • Remote Session Handler
> • Integration with Roassal
> • A Glamour-specific proxy model for efficient serialization of
> Glamour presentations
> • A basic proxy model for working with any remote objects from
> GemStone
>
> One particular aspect that we focused on is performance. So much so, that
> at one point inspecting objects in gt4gemstone was faster than doing them
> locally. In the meantime, the GT inspector from Pharo also received an
> upgrade.
>
> But, perhaps the most exciting thing about this project is that most
> extensions of the inspector can be expressed exactly in the same way both
> in Pharo and in GemStone, and this makes the scenario of building in Pharo
> and deploying in GemStone even more appealing.
>
> The official announcement with some extra details can be found here:
> http://www.humane-assessment.com/blog/introducing-gt4gemstone/
>
> Cheers,
> Tudor
>
> --
> www.tudorgirba.com
> www.feenk.com
>
> "There are no old things, there are only old ways of looking at them."
>
>
>
>
> ___
> Moose-dev mailing list
> moose-...@list.inf.unibe.ch
> https://www.list.inf.unibe.ch/listinfo/moose-dev
>



-- 
Mariano
http://marianopeck.wordpress.com


Re: [Pharo-users] OSProcess or OSSubprocess?

2017-03-20 Thread Mariano Martinez Peck
On Mon, Mar 20, 2017 at 6:00 AM, Hernán Morales Durand <
hernan.mora...@gmail.com> wrote:

> Hi guys,
>
> I need to monitor Unix command execution inside the image. The commands
> use heavy computation so they usually report progress in the terminal.
>
> Are OSProcess or OSSubprocess ready to do in-image monitoring so I can
> watch the same terminal output in the Transcript updating for example every
> 10 seconds?
>
>
Hi Hernan,

There is a tail -f example in OSSubprocess documentation that prints the
result on an inpsector and updates it [1]. However, OSSubprocess has
problems on Linux with the default VM... you must use the threaded
heartbeat (not the itimer).. see recent threads discussions for this.

Let me know if that works.


[1]
https://github.com/marianopeck/OSSubprocess#processing-streams-while-running



> Particularly for OSProcess I couldn't find any method to fetch partial
> output.
>
> Cheers,
>
> Hernán
>
>


-- 
Mariano
http://marianopeck.wordpress.com


Re: [Pharo-users] Magritte extension

2017-03-18 Thread Mariano Martinez Peck
Hi Asbath,

Some answers below. But a general comment is that the typical case to
customize magritte is by subclassing and then somehow use your own
subclasses instead of magritte ones.

On Fri, Mar 17, 2017 at 3:54 AM, Asbath Sama biyalou  wrote:

> Hello.
>
> I am using Magritte to generate reports for a pharo class. I want to
> customize generated components in order to have a better design.
>
> My class is Match
>
> Object subclass: #Match
> instanceVariableNames: 'date_match hour_match status actions stadium
> comments teams goals1 goals2 competition'
> classVariableNames: ''
> category: MyProject-Entity'
>
>
> Descriptions for some variables.
>
> Stadium is also a Class.
>
> Match>>descriptionStadium
> 
> ^ MASingleOptionDescription new
> label: 'Stadium';
> priority: 305;
> accessor: #stadium;
> options: Team allStadiumsName;
> componentClass: TBSMagritteSelectListComponent;
> beRequired;
> yourself
>
>
> Match>>descriptionTeams
> 
> ^ MAMultipleOptionDescription new
> label: 'Teams';
> priority: 805;
> accessor: #teams;
> options: Team allTeamsName;
> componentClass: MAMultiselectListComponent;
> yourself
>
>
> The generated component in the form is not very pretty. I want to have
> multiple checkbox.
>


In my case, I have customized ALL the components I use for Magritte. That
is, I have my own Fa version (Fa is my package prefix). So I have
 FaMAMultiselectListComponent  subclass of MAMultiselectListComponent. I
have FaTBSMagritteSelectListComponent, subclass of
TBSMagritteSelectListComponent , etc... so basically, you subclass and
override the parent methods you want. Most common methods you need to
override are renderEditorOn: html or renderViewerOn: html  etc...but that
depends on WHAT you want to change and in WHICH component. Note they are
all subclasses of MADescriptionComponent.

You can also set your own properties in the magritte so that you can read
them at your component level. For example, above I could say:

Match>>descriptionTeams

^ MAMultipleOptionDescription new
label: 'Teams';
priority: 805;
accessor: #teams;
options: Team allTeamsName;
propertyAt: 'showInMultipleCheckboxs' put: true;
componentClass: FaMAMultiselectListComponent;
yourself


Then in the rendering code of your subclass FaMAMultiselectListComponent
you can do:

(self magritteDescription propertyAt: 'showInMultipleCheckboxs') ifTrue: [
 self renderAsMultiCheckboxsOn: html...
] ifFalse: [
...
]

Of course, you can even define the accessors for #showInMultipleCheckboxs
as extension methods in  MADescription


To avoid having to define FaMAMultiselectListComponent for each
MAMultipleOptionDescription .. well, there are many ways. But I guess that
is for a later topic. Ask me if you want this.



>
> Match>>descriptionStatus
> 
> ^ MASingleOptionDescription new
> label: 'Status';
> priority: 505;
> accessor: #status;
> options: #('Pas en cours' 'En Cours' 'Mi-temps' 'Terminé');
> componentClass: TBSMagritteSelectListComponent;
> yourself
>
>
> For the report I use the class SEMatchReport
>
> TBSMagritteReport subclass: #SEMatchReport
> instanceVariableNames: 'report'
> classVariableNames: ''
> category: 'MyProject-Components'
>
>
> SEMatchReport class>>from
> | report matchs commandColumn |
> matchs := Match selectAll.
> report:= self rows: matchs description: (self
> filteredDescriptionsFrom: matchs anyOne).
>
> commandColumn := MACommandColumn new.
>
> (SEMatchReport new session isSimpleAdmin)
> ifTrue: [
> report addColumn: (commandColumn
> addCommandOn: report selector: #editMatch: text: 'Modifier';
> yourself;
> addCommandOn: report selector: #addAction: text: 'Ajouter
> une action'; yourself ) ]
> ifFalse: [
> report addColumn: (commandColumn
> addCommandOn: report selector: #editMatch: text: 'Modifier';
> yourself;
> addCommandOn: report selector: #deleteMatch: text:
> 'Supprimer'; yourself;
> addCommandOn: report selector: #addAction: text: 'Ajouter
> une action'; yourself ) ].
>
> ^ report
>
> I want to put some bootstrapp icons near commandColumn actions. like
> pencil or delete on 'Supprimer'.
>
>

To do this, again, subclass MACommandColumn, override renderCellContent:on:
 and use your particular subclass.



>
> SEMatchReport class>>filteredDescriptionsFrom: aMatch
> ^ aMatch magritteDescription select: [ :each | #(date_match
> hour_match stadium goals1 goals2 teams)
> includes: each accessor selector ]
>
> I notice that on the generated report on column stadium we have
> aStadium. We don't have the value (the name). I don't know how to
> mention it in the filtered descriptions.
>


That's weird. I don't know.


>
> Change the color of lines in the report, etc. All that things.
>
>
In this case I don't use the magritte row/even 

Re: [Pharo-users] Magritte extension

2017-03-17 Thread Mariano Martinez Peck
Hi,

Before a longer answer, what is TBSMagritteReport ? Is it yours or is it
some magritte extension for Bootstrap?

Thanks,

On Fri, Mar 17, 2017 at 3:54 AM, Asbath Sama biyalou  wrote:

> Hello.
>
> I am using Magritte to generate reports for a pharo class. I want to
> customize generated components in order to have a better design.
>
> My class is Match
>
> Object subclass: #Match
> instanceVariableNames: 'date_match hour_match status actions stadium
> comments teams goals1 goals2 competition'
> classVariableNames: ''
> category: MyProject-Entity'
>
>
> Descriptions for some variables.
>
> Stadium is also a Class.
>
> Match>>descriptionStadium
> 
> ^ MASingleOptionDescription new
> label: 'Stadium';
> priority: 305;
> accessor: #stadium;
> options: Team allStadiumsName;
> componentClass: TBSMagritteSelectListComponent;
> beRequired;
> yourself
>
>
> Match>>descriptionTeams
> 
> ^ MAMultipleOptionDescription new
> label: 'Teams';
> priority: 805;
> accessor: #teams;
> options: Team allTeamsName;
> componentClass: MAMultiselectListComponent;
> yourself
>
>
> The generated component in the form is not very pretty. I want to have
> multiple checkbox.
>
>
> Match>>descriptionStatus
> 
> ^ MASingleOptionDescription new
> label: 'Status';
> priority: 505;
> accessor: #status;
> options: #('Pas en cours' 'En Cours' 'Mi-temps' 'Terminé');
> componentClass: TBSMagritteSelectListComponent;
> yourself
>
>
> For the report I use the class SEMatchReport
>
> TBSMagritteReport subclass: #SEMatchReport
> instanceVariableNames: 'report'
> classVariableNames: ''
> category: 'MyProject-Components'
>
>
> SEMatchReport class>>from
> | report matchs commandColumn |
> matchs := Match selectAll.
> report:= self rows: matchs description: (self
> filteredDescriptionsFrom: matchs anyOne).
>
> commandColumn := MACommandColumn new.
>
> (SEMatchReport new session isSimpleAdmin)
> ifTrue: [
> report addColumn: (commandColumn
> addCommandOn: report selector: #editMatch: text: 'Modifier';
> yourself;
> addCommandOn: report selector: #addAction: text: 'Ajouter
> une action'; yourself ) ]
> ifFalse: [
> report addColumn: (commandColumn
> addCommandOn: report selector: #editMatch: text: 'Modifier';
> yourself;
> addCommandOn: report selector: #deleteMatch: text:
> 'Supprimer'; yourself;
> addCommandOn: report selector: #addAction: text: 'Ajouter
> une action'; yourself ) ].
>
> ^ report
>
> I want to put some bootstrapp icons near commandColumn actions. like
> pencil or delete on 'Supprimer'.
>
>
> SEMatchReport class>>filteredDescriptionsFrom: aMatch
> ^ aMatch magritteDescription select: [ :each | #(date_match
> hour_match stadium goals1 goals2 teams)
> includes: each accessor selector ]
>
> I notice that on the generated report on column stadium we have
> aStadium. We don't have the value (the name). I don't know how to
> mention it in the filtered descriptions.
>
> Change the color of lines in the report, etc. All that things.
>
> Sorry for the bad english.
>
> Thanks.
>
> Asbath
>
>


-- 
Mariano
http://marianopeck.wordpress.com


Re: [Pharo-users] Data Encryption

2017-02-21 Thread Mariano Martinez Peck
As for single username/pass encryption (not the whole DB), and assuming you
want two-way encrypt (that you want to decrypt), I have used both, Rijndael
and Blowfish, both in combination with SpsSplitPasswordStore.

Cheers,

On Tue, Feb 21, 2017 at 8:20 AM, Pierce Ng  wrote:

> On Mon, Feb 20, 2017 at 05:34:41AM -0800, sergio ruiz wrote:
> > I have been tasked with throwing together a small web app that will hold
> > the passwords to different projects for my company.
>
> Here is a collection for reference. If one of these is suitable you can
> skip the
> implementation and just deploy.
>
>   http://opensourcepasswordmanager.com/
>
> > - encrypt the entire database, so that if the machine was compromised
> > physically, the data would be useless.
>
> The NativeBoost version of my SQLite library supports SQLcipher which adds
> transparent full database encryption to SQLite. It is not in the UFFI
> version
> yet though.
>
>   http://sqlcipher.net
>
> > - encrypt the username and password fields to facilitate the above, also.
>
> If you are already familiar with using crypto API like OpenSSL or NaCl then
> Pharo's FFI is easy to get this done too.
>
> Pierce
>
>
>


-- 
Mariano
http://marianopeck.wordpress.com


Re: [Pharo-users] GitFileTree in Pharo 5

2017-02-02 Thread Mariano Martinez Peck
OSSubprocess has a problem which hangs the VM on Linux with an specific
flavor of the VM (the default one).

You can try with the VM form here:

https://dl.bintray.com/pharo-project/pharo-vm/pharo-linux-i386threaded-201612210925-0807b30.zip

It should work. Could you let us know?




On Thu, Feb 2, 2017 at 4:59 AM, Thierry Goubier 
wrote:

>
>
> 2017-02-02 8:49 GMT+01:00 Pierce Ng :
>
>> On Thu, Feb 02, 2017 at 03:13:41PM +0800, Pierce Ng wrote:
>> > On Tue, Jan 31, 2017 at 03:42:10PM +0100, Cyril Ferlicot D. wrote:
>> > > To load gitFileTree I use this script:
>> > > ```
>> > > Metacello new
>> > >   baseline: 'FileTree';
>> > >   repository: 'github://dalehenrich/filetree:pharo' , SystemVersion
>> > > current dottedMajorMinor , '_dev/repository';
>> > >   load: 'Git'
>> > > ```
>> > > Works for me on Pharo 5/windows and pharo 6/osx
>> >
>> > Thanks Cyril. Just tried it on Pharo 5 on Linux. Loads cleanly.
>>
>> Spoke too soon. Appeared to have loaded cleanly on one Pharo 5 image, but
>> got
>> same hung state on another two Pharo 5 images. Does seem to load cleanly
>> and
>> quickly on Pharo 60365, which is good enough.
>>
>
> Can you detail a bit more about the lockups? GitFileTree uses either
> OSProcess or OSSubprocess to access git, and the issue may be in one of
> those.
>
> I use GitFileTree all the time, and I do get that 'hung' state in some
> cases. At least with OSSubprocess, once an image is in that state, it will
> hang at the first external access (any command, not only gitfiletree)... No
> way out except scrapping the image (i.e. saving and restarting keep it in
> in the same state).
>
> Regards,
>
> Thierry
>
>
>
>
>>
>> Pierce
>>
>>
>


-- 
Mariano
http://marianopeck.wordpress.com


Re: [Pharo-users] webcam images for image processing

2016-12-30 Thread Mariano Martinez Peck
Hi,

I think you MUST talk to Juan Vuletich (CCed) as he is doing satellites
image processing in Smalltalk.

Cheers


On Fri, Dec 30, 2016 at 3:15 PM, Offray Vladimir Luna Cárdenas <
offray.l...@mutabit.com> wrote:

> Hi,
>
>
> On 30/12/16 03:47, Dimitris Chloupis wrote:
>
>>
>>
>> What I have found is that pharo is excellent as a central nervous system
>> , Brain + nerves , for an application. Because not only the language is
>> simple, but mostly because of live coding and ability of the IDE to deal
>> with complex code and isolate bugs.
>>
>
> I think that the Pharo approach could be something like the Cyborgs one of
> Star Trek. Attach to a preexisting substrate and extend it :-P. Seriously,
> having Pharo to talk better with the external non-Pharo/Smalltalk native
> technologies and ideas could help to bring this unpaired live coding
> experience to a lot of people: hacktivist, journalist, philosophers,
> musicians, and non-live coding programmers. My uses of this approach are
> trying to bridge Pharo with non-programmers cultures at our local
> hackerspace, and is giving very good outcomes.
>
>
>> Live coding is pretty much the bread and butter for us graphics
>> programmers (I use Pharo together with Unreal and Blender) because it
>> allows us to test things on the fly without having to worry about compile
>> times or syntax errors or crashes or whatever can interrupt us from "being
>> in the zone". Pharo is without exaggeration the best live coding language
>> out there by very far from others except Lisp which is the basis of
>> Smalltalk and where we have borrowed many ideas.
>>
>>
> I would add that live coding is the bread and butter of pretty much
> everyone who is making exploratory computing and prototyping in diverse
> fields, where you use computers to understand fuzzy problems.
>
> Cheers,
>
> Offray
>
>


-- 
Mariano
http://marianopeck.wordpress.com


Re: [Pharo-users] DNU on materializing a fueled out exception

2016-12-28 Thread Mariano Martinez Peck
On Wed, Dec 28, 2016 at 7:22 AM, Holger Freyther  wrote:

>
> > On 19 Dec 2016, at 08:53, Holger Freyther  wrote:
>
> Good Morning Everyone,
>
>
> > So it looks like now it should create a debug session first and then
> pass it to the debugger? I think loading new fuel in Pharo3.x is still
> possible so maybe it is best to re-add that protocol?
>
> I hope all of you had a nice break and look forward to 2017. I understand
> that in the future (Pharo6 or beyond) there are conceptually better ways to
> achieve what was working in Pharo3 (and maybe before) but right now
> something that worked stopped to work and from my point of view such a
> regression should be fixed.
>
>
Hi Holger,

Yes, terrible busy months around here, sorry.



> I am not asking someone to fix what I think is important but I am still
> struggling to grasp the process of getting a bugfix into Pharo5.



But are you sure there will be a bugfix release of 5.0? Because I am
not sure about that.



> Maybe someone can help to line it out?
>
> * I pick the approach Max suggested and put it into FLPlatform to open a
> debugger for a context
> * Put it into the Pharo50Inbox?
> * Create a ticket?
> * Make a slice?
>
> holger
>
>
>
>


-- 
Mariano
http://marianopeck.wordpress.com


Re: [Pharo-users] DNU on materializing a fueled out exception

2016-12-19 Thread Mariano Martinez Peck
On Mon, Dec 19, 2016 at 4:53 AM, Holger Freyther  wrote:

> Hi,
>
> I showed Pharo to a friend and wanted to show the nice feature of fueling
> out an exception and then using FLMaterializer 
> class>>#materializeFromFileNamed:
> to load it back and get a debugger up. In Pharo5 I am presented a DNU
> instead.
>
>
Hi Holger,

I hope you were able to show that example to him anyways. That example make
us won the first price at ESUG awards hahaha. I still remember when I was
sitting at home, trying to think of a good example to show and I thought:
"what if I serialize the debugger and the stack to another image?". I tried
and it worked out of the box. One of the happiest dev programming days ever
hahaha.


The DNU is on GTGenericStackDebugger as it doesn't understand the message
> Fuel is sending. What to fix, Fuel to use the new protocol or
> GTGenericStackDebugger to honor the old protocol?
>
> FueldOutStackDebugAction>>#serializeTestFailureContext: aContext
> toFileNamed: aFilename
> | serializer |
>
> serializer := FLSerializer newDefault.
> self encodeDebugInformationOn: serializer.
> serializer addPostMaterializationAction: [ :materialization |
> Smalltalk tools debugger
> openOn: Processor activeProcess
> context: materialization root
> label: 'External stack'
> contents: nil
> fullView: false ].
>
> So it looks like now it should create a debug session first and then pass
> it to the debugger? I think loading new fuel in Pharo3.x is still possible
> so maybe it is best to re-add that protocol?
>
>
Well, if the GT developers (CC'ed Dory) do not want to add back the old
protocol,  then no problem, we do have a way to manage portability across
dialects and versions. Max Leske (CC'ed) has changed and improved this in
the recent months. So I will wait to see if he can take care. Else, I will
do it.

Thanks for the report.



-- 
Mariano
http://marianopeck.wordpress.com


Re: [Pharo-users] may I please be added to the Mercap/HighchartsSt repo

2016-11-09 Thread Mariano Martinez Peck
That's great to hear. Let me know if the latest commits do work for you
(they should work for 5.0.2).

Cheers,

On Tue, Nov 8, 2016 at 7:43 PM, Richard Pillar via Pharo-users <
pharo-users@lists.pharo.org> wrote:

>
>
> -- Forwarded message --
> From: Richard Pillar <richardpil...@googlemail.com>
> To: Any question about pharo is welcome <pharo-users@lists.pharo.org>
> Cc:
> Date: Tue, 8 Nov 2016 22:43:30 +
> Subject: Re: [Pharo-users] may I please be added to the
> Mercap/HighchartsSt repo
> Hi,
>
> This is great news.
>
> I have been using Highcharts for some of my personal projects and have
> added code to build box plots and heat charts.
>
> I will download the updates shortly.
>
> Many Thanks
>
> Richard
>
> On Mon, Nov 7, 2016 at 2:33 AM, Mariano Martinez Peck <
> marianop...@gmail.com> wrote:
>
>> Paul,
>>
>> Quick comment: I was about to make an ANN soon but I have been
>> refactoring it a LOT these last days and I did:
>>
>> 1) make it fully the auto-generation code (already done)
>> 2) making it work for highcharts 5.0.2 (already done)
>> 3) start supporting highstocks (was going to start this this week).
>>
>> Please please please grab the very last version. What are your plans with
>> it?
>>
>> I just added you.
>>
>> Cbest
>>
>>
>>
>> On Sat, Nov 5, 2016 at 3:24 PM, PAUL DEBRUICKER <pdebr...@gmail.com>
>> wrote:
>>
>>> I'd like to add code that allows the creation of boxplots:
>>>
>>> http://www.highcharts.com/docs/chart-and-series-types/box-plot-series
>>>
>>>
>>> my username is pdebruic
>>>
>>>
>>> Thanks
>>>
>>>
>>
>>
>> --
>> Mariano
>> http://marianopeck.wordpress.com
>>
>
>
>


-- 
Mariano
http://marianopeck.wordpress.com


Re: [Pharo-users] may I please be added to the Mercap/HighchartsSt repo

2016-11-06 Thread Mariano Martinez Peck
Paul,

Quick comment: I was about to make an ANN soon but I have been
refactoring it a LOT these last days and I did:

1) make it fully the auto-generation code (already done)
2) making it work for highcharts 5.0.2 (already done)
3) start supporting highstocks (was going to start this this week).

Please please please grab the very last version. What are your plans with
it?

I just added you.

Cbest



On Sat, Nov 5, 2016 at 3:24 PM, PAUL DEBRUICKER  wrote:

> I'd like to add code that allows the creation of boxplots:
>
> http://www.highcharts.com/docs/chart-and-series-types/box-plot-series
>
>
> my username is pdebruic
>
>
> Thanks
>
>


-- 
Mariano
http://marianopeck.wordpress.com


Re: [Pharo-users] About STONS efficiency at storing nested objects { was : (Re: Keeping data with an application)}

2016-11-02 Thread Mariano Martinez Peck
On Wed, Nov 2, 2016 at 8:51 PM, Henrik Nergaard 
wrote:

> You could always store the closure as a string and then evaluate it on
> materialization, at least if it is clean (no thisContext and no return)
>
> For blocks without no self usage:
> --
> | blk |
>
> blk := [ :a :b | a <= b ].
>
> #_ assert: blk isClean.
>
> blk := Compiler evaluate: blk asString.
>
> #_ assert: (blk value: 1 value: 2)
> 
>
> If self is used then it must also be stored to materialize it correctly
> again:
>
> 
> | blk ref |
>
> blk := [ self crLog ].
> ref := blk receiver.
> blk := Smalltalk compiler evaluate: blk asString in: nil to: ref.
> blk value
> 
>
> On the topic of STON, is there a way to specify that a variable should
> only be serialized if it is referenced elsewhere depper in the tree?
> This could be useful, for example when storing morphs that are active in
> the world to only include #owner that are not the root serialized object
> and other structures were you might not want to serialize its parent but
> only deeper into the tree structure.
>
>

I proposed exactly that to SIXX developer which would allow you to
serialize at least SortedCollection with clean closures.






> Best regards,
> Henrik
>
>
> -Original Message-
> From: Pharo-users [mailto:pharo-users-boun...@lists.pharo.org] On Behalf
> Of Sven Van Caekenberghe
> Sent: Wednesday, November 2, 2016 11:11 PM
> To: Any question about pharo is welcome  Subject: Re: [Pharo-users] About STONS efficiency at storing nested
> objects { was : (Re: Keeping data with an application)}
>
> You can't serialise blocks with STON.
>
> The design goal of STON was to be able to serialise regular domain models.
>
> Classes are written as a global reference to their name, as a kind of
> shortcut (as opposed to writing out the whole class structure).
>
> For blocks there is no easy solution, AFAIK.
>
> > On 2 Nov 2016, at 20:03, Dimitris Chloupis 
> wrote:
> >
> > I tried to use my ChronosManager object with it and STON does not seem
> > to like this
> >
> > m := ChronosManager new.
> > s:= STON toString: m
> > s inspect.
> >
> > STONWriter>>error:
> > BlockClosure(Object)>>stonOn:
> > STONWriter>>nextPut:
> > STONWriter>>encodeKey:value:
> > STONMapWriter>>at:put:
> > [ :each |
> > (anObject instVarNamed: each)
> >   ifNotNil: [ :value | dictionary at: each asSymbol put: value ]
> >   ifNil: [ anObject stonShouldWriteNilInstVars
> >   ifTrue: [ dictionary at: each asSymbol put: nil ]
> ] ] in [
> > :dictionary | instanceVariableNames
> >   do: [ :each |
> >   (anObject instVarNamed: each)
> >   ifNotNil: [ :value | dictionary at: each asSymbol
> put: value ]
> >   ifNil: [ anObject stonShouldWriteNilInstVars
> >   ifTrue: [ dictionary at: each
> asSymbol put: nil ] ] ] ] in STONWriter>>writeObject: in Block: [ :each |
> ...
> > Array(SequenceableCollection)>>do:
> > [ :dictionary |
> > instanceVariableNames
> >   do: [ :each |
> >   (anObject instVarNamed: each)
> >   ifNotNil: [ :value | dictionary at: each asSymbol
> put: value ]
> >   ifNil: [ anObject stonShouldWriteNilInstVars
> >   ifTrue: [ dictionary at: each
> asSymbol put: nil ] ] ] ] in STONWriter>>writeObject: in Block: [
> :dictionary | ...
> > [ self newlineIndent.
> > block value: mapWriter ] in [ | mapWriter | mapWriter := STONMapWriter
> > on: self.
> > writeStream nextPut: ${.
> > self
> >   indentedDo: [ self newlineIndent.
> >   block value: mapWriter ].
> > self newlineIndent.
> > writeStream nextPut: $} ] in STONWriter>>writeObject:streamMap: in
> Block: [ self newlineIndent
> > STONWriter>>indentedDo:
> > [ | mapWriter |
> > mapWriter := STONMapWriter on: self.
> > writeStream nextPut: ${.
> > self
> >   indentedDo: [ self newlineIndent.
> >   block value: mapWriter ].
> > self newlineIndent.
> > writeStream nextPut: $} ] in STONWriter>>writeObject:streamMap: in
> Block: [ | mapWriter |...
> > [ writeStream nextPutAll: anObject class stonName.
> > self prettyPrintSpace.
> > block value ] in STONWriter>>writeObject:do: in Block: [ writeStream
> nextPutAll: anObject class stonNameetc...
> > STONWriter>>with:do:
> > STONWriter>>writeObject:do:
> > STONWriter>>writeObject:streamMap:
> > STONWriter>>writeObject:
> > KMKeymap(Object)>>stonOn:
> > STONWriter>>nextPut:
> > STONWriter>>encodeKey:value:
> > [ :key :value |
> > first
> >   ifTrue: [ first := false ]
> >   ifFalse: [ self mapElementSeparator ].
> > self encodeKey: key value: value ] in [ self newlineIndent.
> > pairs
> >   keysAndValuesDo: [ :key :value |
> >   first
> >   ifTrue: [ first := false ]
> > 

Re: [Pharo-users] [Seaside] [ANN] Zürich Smalltalk Meetup Nov 8th, 2016

2016-10-19 Thread Mariano Martinez Peck
On Wed, Oct 19, 2016 at 5:01 PM, Michal Balda <li...@michalbalda.cz> wrote:

> Hi,
> the short answer is: not yet.
>
> The back story is: We have been experimenting with GemStone and Tugrik at
> work. While Tugrik appears to work very well (even though it is new and not
> yet finished), I found the overall architecture (Tugrik+Mongo+Voyage) a bit
> complicated. Tugrik is meant to be a replacement for Voyage-Mongo but
> actually uses parts of its implementation and behavior. I understand that
> it does so to mimic Voyage-Mongo so that switching from Mongo to GemStone
> is relatively painless. That does not fit our use case though - we don't
> need a replacement for Mongo since we haven't used it in the first place.
> We would also like to have something that we could possibly maintain
> ourselves, should the priorities of Esteban or Dale change in a few years
> (I don't want this to sound negative, I am sure they would not drop the
> support just because they want to, but I understand they are very busy and
> for us it is a certain risk we would like to mitigate).
>
> While playing with Tugrik I came up with a few ideas so I started a clean
> Pharo image with the following task in mind: find a way of getting objects
> from Pharo to GemStone and back, as simply as possible, without any
> unnecessary dependencies. In other words, I wanted to see if I could create
> a simpler Pharo-to-GemStone persistence solution than the existing
> Tugrik+Mongo+Voyage stack. As of now it's still in an early phase but I
> already have something that could work. For the meetup in Zürich I want to
> have something to show (a small demo), or, if I run into any conceptual
> issues, to have a topic for discussion if anyone's interested.
>
> I won't release it publicly until I am sure it works well. But I can
> guarantee you that if anything exciting does emerge, this mailing list will
> learn about it. It will definitely not be exclusive for the people who
> attend the meetup. I just want to use the opportunity of the meetup to get
> early feedback and/or input, maybe it will trigger a discussion about
> important issues that I haven't thought about yet. I am not at all a
> GemStone expert so the possibility is there.
>
>
>
Hi,

OK, I understand. Thanks for the explanation.

BTW, for your implementation, do you use ServerBlocks [1] ? It may be handy
otherwise.

Best regards,



[1 ]
https://github.com/GsDevKit/GsDevKit_home/blob/master/docs/articles/gsDevKitServerBlocks.md




> Michal
>
>
>
> On 18.10.2016 14:38, Mariano Martinez Peck wrote:
>
> Hi,
>
> I would love to be in Zurich, but I obviously can't :(
> So... is there a way to get some more info about that "Gemstone-based
> persistence framework for Pharo"? And who is Michal? Last name?
>
> Thanks,
>
>
> --
> Mariano
> http://marianopeck.wordpress.com
>
>
>


-- 
Mariano
http://marianopeck.wordpress.com


Re: [Pharo-users] [Seaside] [ANN] Zürich Smalltalk Meetup Nov 8th, 2016

2016-10-18 Thread Mariano Martinez Peck
On Tue, Oct 18, 2016 at 1:35 AM, jtuc...@objektfabrik.de <
jtuc...@objektfabrik.de> wrote:

> There are great news about the upcoming Smalltalker’s Meetup in Zürich.
>
> We’ve found a conference room for the evening and will start off with a
> “show us your project” session in a room with a big screen and start the
> social part after your input at a nice Australian Steakhouse.
>
> The best thing is: we already have a first session: Michal is going to
> show his new Gemstone-based persistence framework for Pharo. It can be used
> to develop in Pharo and keep your objects stored in Gemstone.
>

Hi,

I would love to be in Zurich, but I obviously can't :(
So... is there a way to get some more info about that "Gemstone-based
persistence framework for Pharo"? And who is Michal? Last name?

Thanks,


> We need your input
>
> This new setup with a meeting room adds more value to all of us: we can
> now not only talk about each others’ epxeriences and porjects, but see what
> they’re up to and what they found.
>
> So to make this event an even better one than before, we need people who’d
> like to share their ideas, their latest work on some hobby or professional
> project. There’s no need for a full-fledged sales pitch with fog and visual
> effects and such, just bring your laptop and show us what you do! The room
> is reserved for ca. 1 hour, so we can have, say, 2-3 presentations before
> we leave for beer and steaks.
>
> So if you have something interesting to show or would like to find people
> to join on some early project you’re starting/planning, give us a chance to
> learn about it. If you’ve built some interesting tool or use Smalltalk for
> something very special to you, let us know and share your fascination and
> ideas. We’ll sure appreciate that!
>
> But if you spontaneously decide you want to show something or start some
> discussion, feel free to do so. You just need to be prepared that we might
> have to leave the room before it’s your turn. Timeslots are limited.
>
> It would be good if you’d pre-announce your demo to me for two reasons:
> first, we can see if we need to rent tho room for a little longer, but even
> better, your topic might attract even more people so I can post your topic
> and make sure people get the message.
> So where and when?
>
> We’ll meet at 7pm on Nov 8th, 2016 at
>
> Alpha Sprachwelt AG 
> Stadelhoferstrasse 10
> 8001 Zürich
>
> Around 8-8:30 pm we’ll walk over to the Outback Lodge where we’ve reserved
> a table. With Steaks and Drinks we can discuss ideas, talk about the good
> old times or do some spontaneous hacking. For directions to the Lodge visit
> http://www.outback-lodge.ch/index.php/stadelhofen
> How to register? How much is it?
>
> This is a meetup of friends, so it’s free to come, we look forward to
> meeting you and keeping in touch. You pay your meal and drinks, but the
> rest is free.
>
> We ask you to register on our Doodle page at 
> http://doodle.com/poll/c9c7tatwqppyhkhq
>
>
> Please also indicate in a comment to your registration if you want to give
> a short presentation.
>
>
>
> See you soon in Zürich!
>
> ___
> seaside mailing list
> seas...@lists.squeakfoundation.org
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>
>


-- 
Mariano
http://marianopeck.wordpress.com


Re: [Pharo-users] [ANN] Basic GitHub-API for Pharo

2016-09-23 Thread Mariano Martinez Peck
Thanks for sharing this. I did not yet read the documentation (I will soon)
but I wonder what is the difference with

http://forum.world.st/ANN-GitHub-API-Bindings-new-version-td4873091.html

Thanks in advance!

On Fri, Sep 23, 2016 at 10:05 AM, Torsten Bergmann  wrote:

> Hi,
>
> to get warm with Git, GitFileTree and Iceberg last week I was in need of
> something
> quick I could implement to try these new tools out.
>
> While being on my GitHub webpage I've seen at the bottom a link to "API"
> and was happily surprised that GitHub could be accessed also with a REST
> API.
>
> So I wrapped a few of these calls within Pharo and now you can also query
> GitHub infos easily from inside of the image:
>
>(GitHub userNamed: 'astares') avatar inspect"Returns the avatar
> form"
>
>(GitHub userNamed: 'pharo-project') isOrganization
>
>(GitHubUser named: 'pharo-project') repositories
>
> Code could be improved and extended further, possible also be used for
> accessing/controlling GitHub from Iceberg later.
>
> If you want to play with it just load it from Catalog in Pharo 6.0.
>
> Code and docu is available on https://github.com/astares/GitHub-API
>
> Have fun
> T.
>
>


-- 
Mariano
http://marianopeck.wordpress.com


Re: [Pharo-users] Using a Unix filedescriptor in a FileStream?

2016-09-22 Thread Mariano Martinez Peck
Hi Holger,

OK, I made a new VM with your PR after I reviewed it. Good news? It
works!!!  If you want to check OSSubprocess, I am using now the
primCreatePipe from OSProcess because that would answer me directly the
SQFiles of the pipe. Originally (before ending up doing that), I was trying
to make the pipes myself via FFI ( pipe() ) but I came to the problem we
discussed earlier (remember the #name:attachTo:writable:).

So now I can go back to my original solution. The code is in #
*makePipeWithReadBlocking*: and now it looks like this:

| pipePointer returnValue fileDescriptors pipe fileIDsArray fileDescriptor1
fileDescriptor2 |
pipePointer := ExternalAddress allocate: 8.
[
returnValue := self primitivePipe: pipePointer.
(returnValue = -1) ifTrue: [ self perror: 'pipe()' ].
fileIDsArray := Array new: 2.
fileDescriptor1 := pipePointer nbUInt32AtOffset: 0.
fileDescriptor2 := pipePointer nbUInt32AtOffset: 4.
fileIDsArray at: 1 put: *(self primitiveFileOpenUseFileDescriptor:
fileDescriptor1 writeFlag: false)*.
fileIDsArray at: 2 put: *(self primitiveFileOpenUseFileDescriptor:
fileDescriptor2 writeFlag: true).*
pipe := OSSPipe newWith: fileIDsArray readBlocking: aBoolean.
] ensure:[
pipePointer free.
].
^ pipe


I just run all OSSubprocess tests and they all worked! (tested in Pharo
5.0).

I guess I will commit this on the dev branch and hopefully when this is
integrated into the VM I can merge that for my next OSSubprocess release.

Thank you very much Holger




On Thu, Sep 22, 2016 at 12:35 PM, Mariano Martinez Peck <
marianop...@gmail.com> wrote:

>
>
> On Thu, Sep 22, 2016 at 12:12 PM, Holger Freyther <hol...@freyther.de>
> wrote:
>
>>
>> > On 21 Sep 2016, at 15:09, Mariano Martinez Peck <marianop...@gmail.com>
>> wrote:
>> >
>> >
>> >
>> > Exactly. I have been wanting this a couple of times while doing
>> OSSubprocess.
>>
>>
>> https://github.com/pharo-project/pharo-vm/pull/108. Would be nice if you
>> could review it and give it a try. It adds two primitive (one to work on fd
>> one to work on FILE).
>>
>> I probably also want to do:
>>
>> sqFile->isStdioStream = isatty(fileno(file))
>>
>>
>> > Yes, exactly. I remember now. And as I said, I also wanted to be able
>> to work at fd or FILE* level and I failed.
>>
>> Could you give the above a try and then I try to get it into the
>> Opensmalltalk VM.
>>
>
> Hi Holger,
>
> I just reviewed the PR and it looks really good. Please, allow me some
> time to get updated to the VM compiling instructions and I will give it a
> try. Probably, I will be testing it by doing my original (unused now)
> #name:attachToCFile:writable:  use the new primitive and running the
> OSSubprocess tests. Does this make sense to you?
>
> Thanks a LOT for going deep and fix it!
>
>
>
>
> --
> Mariano
> http://marianopeck.wordpress.com
>



-- 
Mariano
http://marianopeck.wordpress.com

On Thu, Sep 22, 2016 at 12:35 PM, Mariano Martinez Peck <
marianop...@gmail.com> wrote:

>
>
> On Thu, Sep 22, 2016 at 12:12 PM, Holger Freyther <hol...@freyther.de>
> wrote:
>
>>
>> > On 21 Sep 2016, at 15:09, Mariano Martinez Peck <marianop...@gmail.com>
>> wrote:
>> >
>> >
>> >
>> > Exactly. I have been wanting this a couple of times while doing
>> OSSubprocess.
>>
>>
>> https://github.com/pharo-project/pharo-vm/pull/108. Would be nice if you
>> could review it and give it a try. It adds two primitive (one to work on fd
>> one to work on FILE).
>>
>> I probably also want to do:
>>
>> sqFile->isStdioStream = isatty(fileno(file))
>>
>>
>> > Yes, exactly. I remember now. And as I said, I also wanted to be able
>> to work at fd or FILE* level and I failed.
>>
>> Could you give the above a try and then I try to get it into the
>> Opensmalltalk VM.
>>
>
> Hi Holger,
>
> I just reviewed the PR and it looks really good. Please, allow me some
> time to get updated to the VM compiling instructions and I will give it a
> try. Probably, I will be testing it by doing my original (unused now)
> #name:attachToCFile:writable:  use the new primitive and running the
> OSSubprocess tests. Does this make sense to you?
>
> Thanks a LOT for going deep and fix it!
>
>
>
>
> --
> Mariano
> http://marianopeck.wordpress.com
>



-- 
Mariano
http://marianopeck.wordpress.com


Re: [Pharo-users] Sharing Seaside URLs between users (security) + what is actual way for session expiration page

2016-09-22 Thread Mariano Martinez Peck
OK, "TooMuchPressureExpcetion signal".

I will do it. There is another open-source-task related to OSSubprocess
that I must address first. Then will come to this one.
Probably I can also put the code in github.

Will let you know when ready.

Cheers,

On Thu, Sep 22, 2016 at 2:53 PM, stepharo <steph...@free.fr> wrote:

> Mariano
>
>
> It would be cool.
>
> Why don't you paste it on your blog?
>
> I hope to get back to the seaside book one of these days and I would like
> to add such tips and tricks
>
>
> Stef
>
> Le 21/9/16 à 18:00, Mariano Martinez Peck a écrit :
>
>
>
> On Wed, Sep 21, 2016 at 11:50 AM, Johan Brichau <jo...@inceptive.be>
> wrote:
>
>>
>> > On 21 Sep 2016, at 12:31, Petr Fischer <petr.fisc...@me.com> wrote:
>> >
>> > Hello, two questions about Seaside sessions:
>> >
>> > 1) URL sharing between different users - what if "boss" shares URL from
>> his browser and send it to another regular user - of course, easy way,
>> whole URL with session (_s=) - when another/regular user opens that
>> link -> whole "boss" session opens in regular user's browser, with all
>> "boss" permissions, UI state etc etc - very bad, is there any solution for
>> this? Rewrite every (!) URL with updateURL: is not solution :(
>>
>> If this is a concern, you can use a cookie for session tracking, but that
>> means you cannot have multiple Seaside sessions running in the same browser
>> at the same time.
>>
>> There are probably other ways, but I think the solution is not to rely on
>> a session key for authentication.
>> Here’s a strategy:
>> Keep the Seaside session key in the url for session tracking but use an
>> authorization cookie for authorization. Put that cookie when the user logs
>> in and check its presence when requests come in for a session.
>> I think that using a filter for that is a good choice.
>>
>> Whenever another user copy/pastes the url, he cannot ‘hijack’ the session
>> because he lacks the correct authentication cookie.
>>
>>
> That's exactly what I did in my case. And the way to implement that was
> with a custom session tracker that dealt with the cookie plus a filter for
> the checking and kickout.
>
> I can share this if someone wants it (I think I already shared it before)
>
>
>
>> > 2) What is the actual way for "session expiration/login page"? There is
>> few tutorials and books on the inet - but info about session expiration is
>> obsolete :( Methods from tutorials not exists in Seaside 3.2.0.
>> > Some trick with WAApplication subclass is actual?
>>
>> I’m not sure what the question is. Do you want to redirect users to a
>> page whenever the session is expired?
>>
>> cheers
>> Johan
>>
>
>
>
> --
> Mariano
> http://marianopeck.wordpress.com
>
>
>


-- 
Mariano
http://marianopeck.wordpress.com


Re: [Pharo-users] Using a Unix filedescriptor in a FileStream?

2016-09-22 Thread Mariano Martinez Peck
On Thu, Sep 22, 2016 at 12:12 PM, Holger Freyther <hol...@freyther.de>
wrote:

>
> > On 21 Sep 2016, at 15:09, Mariano Martinez Peck <marianop...@gmail.com>
> wrote:
> >
> >
> >
> > Exactly. I have been wanting this a couple of times while doing
> OSSubprocess.
>
>
> https://github.com/pharo-project/pharo-vm/pull/108. Would be nice if you
> could review it and give it a try. It adds two primitive (one to work on fd
> one to work on FILE).
>
> I probably also want to do:
>
> sqFile->isStdioStream = isatty(fileno(file))
>
>
> > Yes, exactly. I remember now. And as I said, I also wanted to be able to
> work at fd or FILE* level and I failed.
>
> Could you give the above a try and then I try to get it into the
> Opensmalltalk VM.
>

Hi Holger,

I just reviewed the PR and it looks really good. Please, allow me some time
to get updated to the VM compiling instructions and I will give it a try.
Probably, I will be testing it by doing my original (unused now)
#name:attachToCFile:writable:  use the new primitive and running the
OSSubprocess tests. Does this make sense to you?

Thanks a LOT for going deep and fix it!




-- 
Mariano
http://marianopeck.wordpress.com


Re: [Pharo-users] Sharing Seaside URLs between users (security) + what is actual way for session expiration page

2016-09-21 Thread Mariano Martinez Peck
On Wed, Sep 21, 2016 at 11:50 AM, Johan Brichau  wrote:

>
> > On 21 Sep 2016, at 12:31, Petr Fischer  wrote:
> >
> > Hello, two questions about Seaside sessions:
> >
> > 1) URL sharing between different users - what if "boss" shares URL from
> his browser and send it to another regular user - of course, easy way,
> whole URL with session (_s=) - when another/regular user opens that
> link -> whole "boss" session opens in regular user's browser, with all
> "boss" permissions, UI state etc etc - very bad, is there any solution for
> this? Rewrite every (!) URL with updateURL: is not solution :(
>
> If this is a concern, you can use a cookie for session tracking, but that
> means you cannot have multiple Seaside sessions running in the same browser
> at the same time.
>
> There are probably other ways, but I think the solution is not to rely on
> a session key for authentication.
> Here’s a strategy:
> Keep the Seaside session key in the url for session tracking but use an
> authorization cookie for authorization. Put that cookie when the user logs
> in and check its presence when requests come in for a session.
> I think that using a filter for that is a good choice.
>
> Whenever another user copy/pastes the url, he cannot ‘hijack’ the session
> because he lacks the correct authentication cookie.
>
>
That's exactly what I did in my case. And the way to implement that was
with a custom session tracker that dealt with the cookie plus a filter for
the checking and kickout.

I can share this if someone wants it (I think I already shared it before)



> > 2) What is the actual way for "session expiration/login page"? There is
> few tutorials and books on the inet - but info about session expiration is
> obsolete :( Methods from tutorials not exists in Seaside 3.2.0.
> > Some trick with WAApplication subclass is actual?
>
> I’m not sure what the question is. Do you want to redirect users to a page
> whenever the session is expired?
>
> cheers
> Johan
>



-- 
Mariano
http://marianopeck.wordpress.com


Re: [Pharo-users] Using a Unix filedescriptor in a FileStream?

2016-09-21 Thread Mariano Martinez Peck
On Wed, Sep 21, 2016 at 3:55 AM, Holger Freyther <hol...@freyther.de> wrote:

>
> > On 20 Sep 2016, at 20:38, Mariano Martinez Peck <marianop...@gmail.com>
> wrote:
> >
> > Hi Holger,
>
>
> Good Morning,
>
> thank you for your reply.
>
>
Good morning.


> > | reader |
> > reader := OSSAttachableFileStream name:'myStream' attachTo: aFileID
> writable: false.
> > reader setNonBlocking "optional"
>
> the only issue is that i have a "int fd" and not a SQFile. In
> >>#name:attachToCFile:writable: you create a SQFile* out of a FILE*
> (OSSCFile) but judging the comment it doesn't work.



Thanks! That was the method I was trying to remember and I was failing!
hahahaha.



> The 32/64 bit issue can be solved by using FFIExternalStructure to model
> SQFile but the question if the VM was built with large file support on
> GNU/Linux is a tricky one.
>
>
Yes exactly. The basic scenario was working, but having it working in all
the different flavors of OS and VMs was tricky as the comment says. My
conclusion in this case was that it's not worth trying to do this from
image side via UFFI and that instead we should have a VM primitive.



> So maybe we create another primitive to convert a FILE* to a SQFile* (and
> have it manage the lifetime of that memory?)? And maybe another primitive
> to do the same for a Socket?
>
>
Exactly. I have been wanting this a couple of times while doing
OSSubprocess.


>
> > I still didn't understand why do you mean with a). What do you mean by
> "monitor it from being readable" ?
>
> Imagine you want to exit the image in case the file /exit changes. You
> will charge inotify to watch this filepath and if the fd becomes readable
> you already know the answer, you don't have to read the event. But true if
> I have a Socket or FileStream I can do blocking read on it as well.
>

OK, now I understand. But if you do blocking read, wouldn't be locking the
rest of the image by that read?  Of course, you can do busy waiting with
none blocking reads but for that, inotify may be more performant?


>
>
> > I think you could dig a bit in OSSPipe, OSSAttachableFileStream and
> their usage. All classes have class comments, all methods are also
> documented, and there is quite some documentation in [1].
>
> Will look again but I didn't see anything obvious. E.g. primCreatePipe
> seems to already return two SQFile* ("fileId")?
>
>
Yes, exactly. I remember now. And as I said, I also wanted to be able to
work at fd or FILE* level and I failed.

Cheers,


-- 
Mariano
http://marianopeck.wordpress.com


Re: [Pharo-users] Sharing Seaside URLs between users (security) + what is actual way for session expiration page

2016-09-21 Thread Mariano Martinez Peck
On Wed, Sep 21, 2016 at 7:31 AM, Petr Fischer  wrote:

> Hello, two questions about Seaside sessions:
>
> 1) URL sharing between different users - what if "boss" shares URL from
> his browser and send it to another regular user - of course, easy way,
> whole URL with session (_s=) - when another/regular user opens that
> link -> whole "boss" session opens in regular user's browser, with all
> "boss" permissions, UI state etc etc - very bad, is there any solution for
> this? Rewrite every (!) URL with updateURL: is not solution :(
>
>
Probably it's not what you need, but in my case I wanted to forbid (show an
error) what you call "URL sharing" because of security issues. Anyway, if
you want this, let me know and I show you how I did it.



> 2) What is the actual way for "session expiration/login page"? There is
> few tutorials and books on the inet - but info about session expiration is
> obsolete :( Methods from tutorials not exists in Seaside 3.2.0.
> Some trick with WAApplication subclass is actual?
>
> Thanks very much! pf
>
>


-- 
Mariano
http://marianopeck.wordpress.com


Re: [Pharo-users] System Browser "Implementors of..." drill down?

2016-07-21 Thread Mariano Martinez Peck
On Thu, Jul 21, 2016 at 4:03 PM, Henrik Nergaard 
wrote:

> This can be achieved by selecting the message/class from the text area and
> either right clicking and using the menu->submenu "Code search..." or you
> can use the shortcuts: meta+m for implementors, meta+n for senders, and
> meta+shift+n for references of it.
> There is also a shortcut (meta+space) for selecting the whole text between
> separators from where the cursor is.
>
>
And another shortcut: meta + mouse click



> "meta" is what  evaluates to (Ctrl on
> windows) .
>
> Best regards,
> Henrik
>
> -Original Message-
> From: Pharo-users [mailto:pharo-users-boun...@lists.pharo.org] On Behalf
> Of Norbert Fortelny
> Sent: Thursday, July 21, 2016 7:55 PM
> To: pharo-users@lists.pharo.org
> Subject: [Pharo-users] System Browser "Implementors of..." drill down?
>
> Something I have not figured out how to do easily in the Pharo system
> browser:
> I am looking at a method and want to see how a message that is used in
> this method is implemented. In other Smalltalks (e.g. Cincoms) I use the
> menu item "Implementors of..." and get a list of all the messages that are
> used in this method and can choose one to drill down.
> In Pharo I get an immediate answer but only the implementors of my
> original method.
> Why are there those "..." at  the end of this menu item indicating some
> further choice when there is none?
> How to do this drilling down in Pharo?
>
>
>
>
> --
> View this message in context:
> http://forum.world.st/System-Browser-Implementors-of-drill-down-tp4907380.html
> Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.
>
>
>


-- 
Mariano
http://marianopeck.wordpress.com


Re: [Pharo-users] change which browser opens when browsing senders/implementors

2016-07-19 Thread Mariano Martinez Peck
On Tue, Jul 19, 2016 at 8:26 PM, PAUL DEBRUICKER  wrote:

> Which method should I change if when browsing senders/implementors there
> is only one sender or implementor I'd like the Nautilus browser to open?
>
>
+9

I would also love this


-- 
Mariano
http://marianopeck.wordpress.com


Re: [Pharo-users] Image not starting

2016-07-12 Thread Mariano Martinez Peck
Hi Victor,

In addition to what Christophe said, you can do the following:

0) Start the VM from command line as you already do:

coral/pharo-vm/pharo coral/Pharo.image

1) get the pid of previous step

2) In the command line do:

 kill -SIGUSR1 XXX

That should output the smalltalk stacktrace in the stdout. And that might
give you an idea in which part it is hanging from the IMAGE side.

Hope this helps.


On Tue, Jul 12, 2016 at 10:33 AM, Valentin Ryckewaert <
valentin.ryckewa...@gmail.com> wrote:

> Hello everyone,
>
> I'm currently working on the project file policy and I'm having a problem
> that I don't understand
>
> I import my code, configure my image as readOnly (Pharo won't try to write
> on changesFiles,source,image), set the folder of the image in readonly
> and try to open the image again and it's not possible, I don't get any
> stacktrace so it's hard to understand the problem.
>
> PS : If we set back the folder in write mode, it's possible again to open
> the image again.
>
> Here is the code to reproduce the bug, could someone give me a clue please?
>
> sudo rm -r testPharo
> mkdir testPharo
> cd testPharo
>
> echo "Metacello new
> smalltalkhubUser: 'Uryon' project: 'Coral';
> configuration: 'Coral';
> version: #development;
> onConflictUseIncoming;
> load.
> SmalltalkImage configureSystemAsReadonlyAndQuit:true
> " >> load.st
>
> mkdir coral
> cd coral
> curl get.pharo.org/alpha | bash
> curl get.pharo.org/vm60 | bash
> pharo-vm/pharo Pharo.image ../load.st
> cd ..
> chmod -R -w coral
> coral/pharo-vm/pharo coral/Pharo.image
>
>


-- 
Mariano
http://marianopeck.wordpress.com


Re: [Pharo-users] GTSpotter froze my image again

2016-07-03 Thread Mariano Martinez Peck
If you interrupt the hung, can you check if it is waiting on a delay of a
semaphore ?

On Sun, Jul 3, 2016 at 11:55 AM, Bernardo Ezequiel Contreras <
vonbecm...@gmail.com> wrote:

> here's another report
>
> https://pharo.fogbugz.com/f/cases/18659/Image-freeze
>
> with the image to reproduce it.
>
> Sent from a cheap desktop computer in South America.
>



-- 
Mariano
http://marianopeck.wordpress.com


Re: [Pharo-users] GTSpotter froze my image again

2016-07-02 Thread Mariano Martinez Peck
Bernardo,

Were you without internet when spotter hunged? If true, it can be the
catalog search of gt-spotter. From the preferences you can disable it.

On Sat, Jul 2, 2016 at 9:43 PM, Offray Vladimir Luna Cárdenas <
offray.l...@mutabit.com> wrote:

> Hi,
>
> My image becomes slow when I change my Internet connection and use
> spotter, for example when I suspend my laptop leaving my image open and
> change from home to the hackerspace or viceversa. In that case, the best
> way to get responsiveness back is to reopen the image. May be you can try
> to check if there is some network issue involved.
>
> Cheers,
>
> Offray
>
> On 02/07/16 17:50, Bernardo Ezequiel Contreras wrote:
>
> Hi,
>
>   it's the second time that my image freeze when i open gt spotter,
> pressing Alt + .  doesn't interrupt it. is there something that you can do
> to interrupt it?
>
> im on debian wheezy using
> Pharo5.0
> Latest update: #50760
>
> thanks.
>
>
> --
> Bernardo E.C.
>
> Sent from a cheap desktop computer in South America.
>
>
>


-- 
Mariano
http://marianopeck.wordpress.com


Re: [Pharo-users] Using OSSubProcess to invoke Java

2016-06-20 Thread Mariano Martinez Peck
On Mon, Jun 20, 2016 at 1:10 PM, Peter Uhnák  wrote:

> #runAndWaitOnExitDo: takes a cull-ed three-arg block with the process,
> stdout, and stderr; that way you can process stdout and stderr
> independently.
>
>
Exactly.


> Try this
>
> OSSUnixSubprocess new
>   command: '/usr/bin/java';
> arguments: #('-version');
> redirectStderr;
> runAndWaitOnExitDo: [ :process :out :err |
> err inspect
> ].
>


Indeed. This is what I think should work. And yes, I don't think the
'JAVA_HOME'  is needed. At least for this command.

Alex, let us know if Peter code worked.

Cheers,


>
> Peter
>
> On Mon, Jun 20, 2016 at 6:03 PM, Alexandre Bergel  > wrote:
>
>> Hi Mark,
>>
>> This is what I thought. But it does not seem to work. I tried:
>>
>> OSSUnixSubprocess new
>>   command: '/usr/bin/java';
>>   arguments: #('-version');
>> redirectStderr;
>>
>>   runAndWaitOnExitDo: [ :process :outString  |
>>   outString inspect
>>   ].
>>
>> Or is it the redirectStderr that does not work properly?
>>
>> Cheers,
>> Alexandre
>>
>>
>> > On Jun 20, 2016, at 11:42 AM, Mark Bestley  wrote:
>> >
>> > java -version outputs to stderr not stdout (also I don't think you need
>> JAVA_HOME /usr/bin/java will do what is needed)
>> >
>> >
>> >
>> > On 20/06/2016 15:58, Alexandre Bergel wrote:
>> >
>> >> On OS X, in a terminal, if I type: /usr/bin/java -version
>> >> I obtain:
>> >> java version "1.8.0_66"
>> >> Java(TM) SE Runtime Environment (build 1.8.0_66-b17)
>> >> Java HotSpot(TM) 64-Bit Server VM (build 25.66-b17, mixed mode)
>> >>
>> >> Using OSSubProcess, do-it-ing the following:
>> >>
>> >> OSSUnixSubprocess new
>> >>   command: '/usr/bin/java';
>> >>   arguments: #('-version');
>> >>  environmentAt: 'JAVA_HOME' put:
>> '/Library/Java/JavaVirtualMachines/jdk1.8.0_66.jdk/Contents/Home';
>> >>  redirectStderr;
>> >>   redirectStdout;
>> >>   runAndWaitOnExitDo: [ :process :outString  |
>> >>   outString inspect
>> >>   ].
>> >>
>> >> inspect an empty string.
>> >> Any idea what’s going on?
>> >>
>> >
>> >
>> >
>> > --
>> > Mark
>> >
>> >
>>
>> --
>> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
>> Alexandre Bergel  http://www.bergel.eu
>> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>>
>>
>>
>>
>>
>


-- 
Mariano
http://marianopeck.wordpress.com


Re: [Pharo-users] SmalltalkHub permission denied

2016-06-16 Thread Mariano Martinez Peck
I also have a private project (created several months ago) and very
frequently I find timeouts trying to commit. The other day I had one (see
the email I sent to the mailing list). Today (now), I have this problem
again:

 From image side, when I commit, Pharo keeps "Updating"  progress bar for a
lifetime...very very very slow. Until several minutes.. then it brings
timeout error. What is funny is that I discovered that the commit did
actually happen (as I see it in the repo). This is very disturbing.

Any idea?  May this be related to the issue of this email?  Looks like
private projects are complicated

On Thu, Jun 16, 2016 at 11:55 AM, mbratch  wrote:

> HilaireFernandes wrote
> > Le 02/06/2015 17:06, Ben Coman a écrit :
> > But I am forbiden to do diff for example:
> >
> > Diff browser
> > Error: you are forbidden to access
> > "/mc/HilaireFernandes/Cofilair/main/Cofigest-
> >
> > or to download .mcz file.
> >
> > Error: you are forbidden to access
> > "/mc/HilaireFernandes/Cofilair/main/Cofigest-HilaireFernandes.111.mcz"
>
> I know this note is a bit old, but was it ever resolved? I just opened a
> new
> private project on smalltalkhub and get exactly these same errors.
>
>
>
> --
> View this message in context:
> http://forum.world.st/SmalltalkHub-permission-denied-tp4829831p4901210.html
> Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.
>
>


-- 
Mariano
http://marianopeck.wordpress.com


Re: [Pharo-users] OSProcess command - non responding image when calling often

2016-06-08 Thread Mariano Martinez Peck
As I said in a previous email I found out a bug in Pharo 5.0 related to
delays. This affected OSSubprocess but could affect OSProcess as well. The
workaround is setting ANOTHER kind of delay scheduler than the one that has
the bug. I thought that the "locks" you were having could have been because
of this issue. But if the workaround does not solve it, then the lockups
you are having are because of another reason :(

Cheers,

On Wed, Jun 8, 2016 at 10:49 AM, Sabine Manaa <manaa.sab...@gmail.com>
wrote:

> I dont understand
>
> Am Mittwoch, 8. Juni 2016 schrieb Mariano Martinez Peck [via Smalltalk] :
>
>>
>>
>> On Wed, Jun 8, 2016 at 10:33 AM, Sabine Manaa <[hidden email]
>> <http:///user/SendEmail.jtp?type=node=4899933=0>> wrote:
>>
>>> Hi Mariano,
>>>
>>> yes, I tried this. It creates a non-responding image. I have to kill it.
>>>
>>>
>>
>> Uhhh too bad :(  I thought we were talking about the same issue.
>>
>>
>>
>>> Regards
>>> Sabine
>>>
>>> 2016-06-08 15:26 GMT+02:00 Mariano Martinez Peck [via Smalltalk] <[hidden
>>> email] <http:///user/SendEmail.jtp?type=node=4899929=0>>:
>>>
>>>> Sabine,
>>>>
>>>> Did you test if the one-liner (Delay delaySchedulerClass:
>>>> DelayMillisecondScheduler.)  fixes these lookups?
>>>>
>>>> Thanks
>>>>
>>>> On Wed, Jun 8, 2016 at 5:31 AM, Sabine Manaa <[hidden email]
>>>> <http:///user/SendEmail.jtp?type=node=4899923=0>> wrote:
>>>>
>>>>> Hi Thierry, all,
>>>>>
>>>>> you were right, it was not so complicated to write my own version for
>>>>> calling an external program based on your Github code. It worked fine
>>>>> on
>>>>> Pharo3+4 but on Pharo5 there are the locking problems described, also
>>>>> in
>>>>> your code.
>>>>>
>>>>> Until there is a decision if supporting windows in OSSubprocess or not
>>>>> and
>>>>> until the locking problem is not solved, I go back to Pharo4. (I loose
>>>>> to
>>>>> much time which I don't have).
>>>>>
>>>>> I will miss the code critics :-)
>>>>>
>>>>> Thank you all for your help.
>>>>>
>>>>> Regards
>>>>> Sabine
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> View this message in context:
>>>>> http://forum.world.st/OSProcess-command-non-responding-image-when-calling-often-tp4899540p4899816.html
>>>>> Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> Mariano
>>>> http://marianopeck.wordpress.com
>>>>
>>>>
>>>> --
>>>> If you reply to this email, your message will be added to the
>>>> discussion below:
>>>>
>>>> http://forum.world.st/OSProcess-command-non-responding-image-when-calling-often-tp4899540p4899923.html
>>>> To start a new topic under Pharo Smalltalk Users, email [hidden email]
>>>> <http:///user/SendEmail.jtp?type=node=4899929=1>
>>>> To unsubscribe from Pharo Smalltalk Users, click here.
>>>> NAML
>>>> <http://forum.world.st/template/NamlServlet.jtp?macro=macro_viewer=instant_html%21nabble%3Aemail.naml=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml>
>>>>
>>>
>>>
>>> --
>>> View this message in context: Re: OSProcess command - non responding
>>> image when calling often
>>> <http://forum.world.st/OSProcess-command-non-responding-image-when-calling-often-tp4899540p4899929.html>
>>> Sent from the Pharo Smalltalk Users mailing list archive
>>> <http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html> at
>>> Nabble.com.
>>>
>>
>>
>>
>> --
>> Mariano
>> http://marianopeck.wordpress.com
>>
>>
>> --
>> If you reply to this email, your message will be added to the discussion
>> below:
>>
>> http://forum.world.st/OSProcess-command-non-responding-image-when-calling-often-tp4899540p4899933.html
>> To start a new topic under Pharo Smalltalk Users, email > href="javascript:_e(%7B%7D,cvml,
<

Re: [Pharo-users] OSProcess command - non responding image when calling often

2016-06-08 Thread Mariano Martinez Peck
On Wed, Jun 8, 2016 at 10:33 AM, Sabine Manaa <manaa.sab...@gmail.com>
wrote:

> Hi Mariano,
>
> yes, I tried this. It creates a non-responding image. I have to kill it.
>
>

Uhhh too bad :(  I thought we were talking about the same issue.



> Regards
> Sabine
>
> 2016-06-08 15:26 GMT+02:00 Mariano Martinez Peck [via Smalltalk] <[hidden
> email] <http:///user/SendEmail.jtp?type=node=4899929=0>>:
>
>> Sabine,
>>
>> Did you test if the one-liner (Delay delaySchedulerClass:
>> DelayMillisecondScheduler.)  fixes these lookups?
>>
>> Thanks
>>
>> On Wed, Jun 8, 2016 at 5:31 AM, Sabine Manaa <[hidden email]
>> <http:///user/SendEmail.jtp?type=node=4899923=0>> wrote:
>>
>>> Hi Thierry, all,
>>>
>>> you were right, it was not so complicated to write my own version for
>>> calling an external program based on your Github code. It worked fine on
>>> Pharo3+4 but on Pharo5 there are the locking problems described, also in
>>> your code.
>>>
>>> Until there is a decision if supporting windows in OSSubprocess or not
>>> and
>>> until the locking problem is not solved, I go back to Pharo4. (I loose to
>>> much time which I don't have).
>>>
>>> I will miss the code critics :-)
>>>
>>> Thank you all for your help.
>>>
>>> Regards
>>> Sabine
>>>
>>>
>>>
>>>
>>>
>>> --
>>> View this message in context:
>>> http://forum.world.st/OSProcess-command-non-responding-image-when-calling-often-tp4899540p4899816.html
>>> Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.
>>>
>>>
>>
>>
>> --
>> Mariano
>> http://marianopeck.wordpress.com
>>
>>
>> --
>> If you reply to this email, your message will be added to the discussion
>> below:
>>
>> http://forum.world.st/OSProcess-command-non-responding-image-when-calling-often-tp4899540p4899923.html
>> To start a new topic under Pharo Smalltalk Users, email [hidden email]
>> <http:///user/SendEmail.jtp?type=node=4899929=1>
>> To unsubscribe from Pharo Smalltalk Users, click here.
>> NAML
>> <http://forum.world.st/template/NamlServlet.jtp?macro=macro_viewer=instant_html%21nabble%3Aemail.naml=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml>
>>
>
>
> --
> View this message in context: Re: OSProcess command - non responding
> image when calling often
> <http://forum.world.st/OSProcess-command-non-responding-image-when-calling-often-tp4899540p4899929.html>
> Sent from the Pharo Smalltalk Users mailing list archive
> <http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html> at Nabble.com.
>



-- 
Mariano
http://marianopeck.wordpress.com


Re: [Pharo-users] OSProcess command - non responding image when calling often

2016-06-08 Thread Mariano Martinez Peck
Sabine,

Did you test if the one-liner (Delay delaySchedulerClass:
DelayMillisecondScheduler.)  fixes these lookups?

Thanks

On Wed, Jun 8, 2016 at 5:31 AM, Sabine Manaa  wrote:

> Hi Thierry, all,
>
> you were right, it was not so complicated to write my own version for
> calling an external program based on your Github code. It worked fine on
> Pharo3+4 but on Pharo5 there are the locking problems described, also in
> your code.
>
> Until there is a decision if supporting windows in OSSubprocess or not and
> until the locking problem is not solved, I go back to Pharo4. (I loose to
> much time which I don't have).
>
> I will miss the code critics :-)
>
> Thank you all for your help.
>
> Regards
> Sabine
>
>
>
>
>
> --
> View this message in context:
> http://forum.world.st/OSProcess-command-non-responding-image-when-calling-often-tp4899540p4899816.html
> Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.
>
>


-- 
Mariano
http://marianopeck.wordpress.com


Re: [Pharo-users] OSProcess command - non responding image when calling often

2016-06-07 Thread Mariano Martinez Peck
Hi guys,

I will try to answer many things at once:

1) Sabine, OSSubprocess works for Unix derived, not only Linux, that
includes OSX as well.

2) Tierry,Sabine for the case of loosing signals, the most trustful
solution (in OSSubprocess) is to rely on a delay pooling instead of on the
child reaper (based on signals). I am talking exactly about this API:
https://github.com/marianopeck/OSSubprocess#delay-based-polling-waiting

3) I found a problem/bug with waits and signals in Pharo 5.0 as reported
here:
https://pharo.fogbugz.com/f/cases/18359/Problem-with-DelayExperimentalSpinScheduler-and-delay.
That should also affect OSProcess. What I did in OSSubprocess v0.2.4 (
https://github.com/marianopeck/OSSubprocess/tree/v0.2.4) is automatically
set the mentioned workaround in the issue tracker. This may fix your issue.


Hope any of this helps. Let us know.

Cheers,




On Tue, Jun 7, 2016 at 10:21 AM, Peter Uhnak  wrote:

> On Tue, Jun 07, 2016 at 01:22:04PM +0200, Thierry Goubier wrote:
> > 2016-06-07 11:47 GMT+02:00 Peter Uhnak :
> >
> > > It's strange that I was using GitFileTree over OSProcess for a long
> time
> > > without issue and yet every time I tried to use OSProcess directly I
> had
> > > this locking up.
> > >
> > >
> > Yes. This is a bit worrying; the low-level OSProcess call was a bit of a
> > stopgap while waiting for either OSProcess or the vm to sort the
> underlying
> > issue (which is more significant than just my use); that it locks up
> under
> > normal use is not good and should be reported.
> >
> > I allways considered GitFileTree to be a heavy hitter on OSProcess,
> running
> > hundreds of external commands to load a complex project, so that if I
> would
> > lock up, it wouldn't be a normal pattern of use.
> >
> >
> > >
> > > > So I am asking polite to the pharo developers team if there are
> plans to
> > > > provide a stable solution for calling external programs as described.
> > > >
> > > > My production system will be a windows system, so I need this for
> > > windows,
> > > > too.
> > > > As far as I understand, the new OSSubprocess is (currently) only for
> > > unix.
> > >
> > > Yes, there's ProcessWrapper for Windows.
> > >
> > > An alternative approach might be to use direct FFI calls, e.g.
> > >
> > > MyClass class>>system:
> > > system: command
> > > "Perform OS system() call."
> > >
> > > ^ self ffiCall: #(int system #(char * command)) module: LibC
> > >
> > > And then you can do MyClass system: 'cp a.pdf b.pdf'.
> > >
> > > Although it still locks up my image from time to time… but at least
> order
> > > of magnite less.
> > >
> >
> > Than GitFileTree or OSProcess? Still, you get lockups... which isn't
> good.
>
> No, GitFileTree never locked up my image. This was always my use.
>
> Peter
>
>


-- 
Mariano
http://marianopeck.wordpress.com


Re: [Pharo-users] OSProcess command with german umlaut does not work

2016-06-06 Thread Mariano Martinez Peck
Hi Dave, Sabine, Norbert et all,

Few weeks (months?) ago I was also reviewing this topic of encoding a
OS(Sub)Process. After surfing a bit the web, I found out the most simple
and accurate answer/solution was indeed to set the correct locale and/or
text encoding in the computer in question. Anyway...more answers below.

Now... what I don't understand from Sabine is.. she said this one works:

OSProcess   command: ('cp  /Library/WebServer/Documents/reports/bär.pdf
/Library/WebServer/Documents/reports/test-a.pdf' utf8Encoded)

*But then my question is...does that work only because she's computer
locale is UTF8? Or Unix* automatically decodes it and knows it is utf8?*
*If not...should I adapt the #utf8Encoded to the encoding defined by the
terminal? mmm*


In my OSX box I do have UTF8 set:

 ❯ locale
[13:56:49]
LANG="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_CTYPE="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_ALL=




On Mon, Jun 6, 2016 at 1:42 PM, David T. Lewis  wrote:

> Norbert,
>
> You are probably right. I'm not sure the best way to handle it.
>
> Dave
>
> > Dave,
> >
> >> Am 06.06.2016 um 18:13 schrieb David T. Lewis :
> >>
> >> Hi Sabine,
> >>
> >> That's great that #utf8Encoded is working, thanks for confirming.
> >>
> >> I'll look and see if I can add that to OSProcess (I'm traveling and
> >> cannot
> >> look at it right now).
> >>
> >> Mariano - this thread probably applies to OSSubProcess also.
> >>
> > that would just work if the system locale is utf8, right? Wouldn't it be
> > better to making that a setting?
> >
> > Norbert
> >
> >> Dave
> >>
> >>> Hi Sven,
> >>>
> >>> why ByteArray?
> >>>
> >>> does not work (Improper store into indexable object):
> >>> OSProcess   command: ('cp
> >>> /Library/WebServer/Documents/reports/bär.pdf
> >>> /Library/WebServer/Documents/reports/test-a.pdf' utf8Encoded asString).
> >>>
> >>> works:
> >>> OSProcess   command: ('cp
> >>> /Library/WebServer/Documents/reports/bär.pdf
> >>> /Library/WebServer/Documents/reports/test-a.pdf' utf8Encoded)
> >>>
> >>> Perhaps David can add this here:
> >>>
> >>> command: aCommandString
> >>> "Run a command in a shell process. Similar to the system(3) call in the
> >>> standard C library,
> >>> except that aCommandString runs asynchronously in a child process. The
> >>> command is
> >>> run by a ConnectedUnixProcess in order to facilitate command pipelines
> >>> within Squeak."
> >>>
> >>> "UnixProcess thisOSProcess command: 'ls -l /etc'"
> >>>
> >>> | proc |
> >>> pid isNil
> >>> ifTrue:
> >>> [self class noAccessorAvailable. ^nil]
> >>> ifFalse:
> >>> [proc := self
> >>> forkJob: ExternalUnixOSProcess defaultShellPath
> >>> arguments: (Array with: '-c' with: aCommandString utf8Encoded asString)
> >>> <<<===
> >>> environment: nil
> >>> descriptors: nil.
> >>> proc ifNil: [self class noAccessorAvailable].
> >>> ^ proc]
> >>>
> >>>
> >>> regards
> >>> Sabine
> >>>
> >>>
> 
> 
> >>>
> >>> 2016-06-06 8:41 GMT+02:00 Sabine Manaa :
> >>>
>  Hi Dave,
> 
>  I get the german ä with:
> 
>  (Character value: 228) asString
> 
>  Do you want me to go in it and suggest a solution or do you want to
>  try
>  to
>  fix it and I test it?
> 
>  Thanks for helping!
> 
>  Regards Sabine
> 
>  2016-06-05 23:08 GMT+02:00 David T. Lewis [via Smalltalk] <[hidden
>  email]
>  >:
> 
> >
> >
> > --
> > If you reply to this email, your message will be added to the
> > discussion
> > below:
> >
> >
> http://forum.world.st/OSProcess-command-with-german-umlaut-does-not-work-tp4899285p4899301.html
> > To start a new topic under Pharo Smalltalk Users, email [hidden
> > email]
> > 
> > To unsubscribe from Pharo Smalltalk Users, click here.
> > NAML
> > <
> http://forum.world.st/template/NamlServlet.jtp?macro=macro_viewer=instant_html%21nabble%3Aemail.naml=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml
> >
> >
> 
> 
>  --
>  View this message in context: Re: OSProcess command with german umlaut
>  does not work
>  <
> http://forum.world.st/OSProcess-command-with-german-umlaut-does-not-work-tp4899285p4899318.html
> >
>  Sent from the Pharo Smalltalk Users mailing list archive
>   at
>  Nabble.com.
> 
> >>>
> >>
> >>
> >>
> >
> >
>
>
>
>


-- 
Mariano
http://marianopeck.wordpress.com


Re: [Pharo-users] Changes file without

2016-05-31 Thread Mariano Martinez Peck
There used to be a #discardChanges or #forgetChanges or some message like
that that allowed one to discard .changes file. But I cannot seem to find
that anymore in 5.0. Maybe it is #closeSourceFiles.

The reason could be becuase the do-it (same as executing a .st) are tracked
in the changes file. Another possibility is to explicitly disable the
announcers, hoping that the changes writing happens via announcements:

SystemAnnouncer uniqueInstance suspendAllWhile: [ self executeYourScript ]

Hope this helps.


On Tue, May 31, 2016 at 8:22 AM, Valentin Ryckewaert <
valentin.ryckewa...@gmail.com> wrote:

> Hello everyone,
>
> I'm trying to execute a script from a .st file on a image whose changes
> file isn't writable.
> When i do this, I'm getting a bug with primSize... It looks like get size
> of the file need write access ?
> The exception :
> Primitive failed: primitive #primsize: in MultiByteFileStream
>
> Does someone have an idea of the reason of this problem please?
>
> Valentin
>



-- 
Mariano
http://marianopeck.wordpress.com


[Pharo-users] [ANN] OSSubprocess Bugfix release

2016-05-30 Thread Mariano Martinez Peck
Dear all,

I have just released a new bugfix release v0.2.3 for OSSubprocess as you
can see in [1].

I recommend everyone to move to this release.

Cheers,

[1]  https://github.com/marianopeck/OSSubprocess/releases/tag/v0.2.3

-- 
Mariano
http://marianopeck.wordpress.com


[Pharo-users] OSSubprocess for Windows discussion [WAS] Re: OSProcess in Pharo 5?

2016-05-16 Thread Mariano Martinez Peck
On Mon, May 16, 2016 at 9:25 AM, Mariano Martinez Peck <
marianop...@gmail.com> wrote:

>
>
> On Sun, May 15, 2016 at 11:19 AM, Ben Coman <b...@openinworld.com> wrote:
>
>> On Sat, May 14, 2016 at 8:06 AM, Mariano Martinez Peck
>> <marianop...@gmail.com> wrote:
>> > If you are only interested in Unix / Linux / OSX,
>>
>> What is the plan for Windows support?
>>
>
> I am not planning to add that. What I have found, is that tools that try
> to provide the same API for all platforms do not end up doing well or they
> limit the specific benefits of each custom platform. I
>
>

Sorry...shortcut sent email before I finished it.


I am not planning to add that. What I have found, is that tools that try to
provide the same API for all platforms do not end up doing well or they
limit the specific benefits of each custom platform. I very much prefer the
approach used by GitFileTree and others. That is... AT YOUR APPLICATION
level, you check wether you are on windows or not. If you are under
Linux/OSX, then you may want to use OSProcess / OSSubprocess. And if you
are in windows, then you may want to use ProcessWrapper. A simple IF or a
strategy or whatever that calls the right API. That way you can customize
the code for each platform better.

Finally, again, if someone wants a unified API, then I don't think it
should be at OSProcess / OSSubprocess level. I would write an API that
internally calls either ProcessWrapper or OS(Sub)Process. But I wouldn't
use that API as mentioned above.

Cheers,



> cheers -ben
>>
>> > then you may want to try
>> > OSSubprocess (it does work correctly in Pharo 5.0)
>> >
>> > https://github.com/marianopeck/OSSubprocess
>> >
>> > Cheers,
>> >
>> >
>> >
>> > On Fri, May 13, 2016 at 8:03 PM, PAUL DEBRUICKER <pdebr...@gmail.com>
>> wrote:
>> >>
>> >> Hi -
>> >>
>> >>
>> >> Is OSProcess the thing to use in Pharo 5 if you want to run a bash
>> command
>> >> and then bring the result into a running image?
>> >>
>> >>
>> >> It seems to be locking up an image I've got with code that previously
>> >> worked in Pharo 4.
>> >>
>> >>
>> >> Thanks
>> >>
>> >>
>> >> Paul
>> >
>> >
>> >
>> >
>> > --
>> > Mariano
>> > http://marianopeck.wordpress.com
>>
>>
>
>
> --
> Mariano
> http://marianopeck.wordpress.com
>



-- 
Mariano
http://marianopeck.wordpress.com


  1   2   3   >