Re: WebClient-Core port to Pharo 1.1 final

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
79 messages Options
1234
Reply | Threaded
Open this post in threaded view
|

Re: WebClient-Core port to Pharo 1.1 final

Levente Uzonyi-2
On Mon, 30 Aug 2010, Lukas Renggli wrote:

>>> We want a library where people can participate. Now Pharoers will decide,
>>> I think that we do not have problem
>>> with sharing on WebClient. I can understand that people do not like that
>>> they cannot improve an infrastructure
>>> that they will rely upon. We do not want string to number conversion, and
>>> rely on squeakToUtf.
>>
>> I think Andreas solved these issues with the WebClient-Pharo package, but I
>> may be wrong.
>
> What WebClient-Pharo does is to patch (and break) Pharo in the most
> absurd ways to make it ill-behaved like Squeak. For example, check out
> the implementation of String>>#,.

I don't like "magical typecasts", but you (the community) should discuss
it with the author (Andreas) before forking the package.

>
> Philippe (an expert in writing platform independent code) and Sven
> have fixed all these issues so that the code works flawlessly on both
> platforms, Squeak and Pharo.

Cool.


Levente

>
>> Well, we are about to use it for Seaside. It scales a lot better than Kom.
>> Cog can't really speed up Kom (based on our benchmarks done with JMeter)*,
>> probably because of the heavy use of notifications (DynamicBindings), but it
>> can boost WebClient significantly.
>
> Kom is not ideal, we all know that (thanks for sharing the
> benchmarks). However, the current licensing situation of WebClient
> makes it totally useless for me and presumably many other people.
> Luckily there are many other options.
>
> Lukas
>
> --
> Lukas Renggli
> www.lukas-renggli.ch
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: WebClient-Core port to Pharo 1.1 final

Levente Uzonyi-2
In reply to this post by Henrik Sperre Johansen
On Mon, 30 Aug 2010, Henrik Johansen wrote:

>
> On Aug 30, 2010, at 1:06 10PM, Levente Uzonyi wrote:
>
>> On Mon, 30 Aug 2010, Stéphane Ducasse wrote:
>>
>>>>>
>>>>> I suggest that the people that want and know, group together and build an open-source one.
>>>>
>>>> Why do you have to have your "own" library?
>>>
>>> Did I say "pharo library"? reread carefully I said an "open-source one".
>>
>> What I get from Andreas' words is that he's willing to make it open source if it won't be forked.
>
> So, definitely not MIT then.
Why?

> I guess that means the long-term plan of replacing HttpSocket in Squeak is out as well?

I don't think so. Squeak releases won't come with WebClient loaded,
Andreas mentioned it in his mail.

>
>>
>>> We do not want to be in the situation that somebody can change the license under our feet.
>>> We want a library where people can participate. Now Pharoers will decide, I think that we do not have problem
>>> with sharing on WebClient. I can understand that people do not like that they cannot improve an infrastructure
>>> that they will rely upon. We do not want string to number conversion, and rely on squeakToUtf.
>>
>> I think Andreas solved these issues with the WebClient-Pharo package, but I may be wrong.
>
> If you call overriding String #, (to accept any object responding to asString without raising errors) and Collection #ifEmpty: (to return nil instead of the collection ifNotEmpty) "solving the issues" in Pharo,  then yeah, sure.
I don't like the "magical" #asString, but you should discuss it with
Andreas. Collection >> #ifEmpty: doesn't return nil, but the collection in
the WebClient-Pharo package (and in Squeak), and I think it's better than
nil.

> If you call (re)introducing #squeakToUtf8/#utf8ToSqueak instead of using convertTo/FromEncoding: 'utf8', then yes.

In Squeak these methods avoid the creation of the TextConverter object if
the receiver is a ByteString, which is usually the case.


Levente

>
> Personally, I'd call it forcing Squeakisms on anyone wanting to use WebClient, and potentially breaking any number of other packages.
>
> The rest I have no problems with, most are fixes/convenience methods which are already in, or should be introduced before Pharo 1.2 (for exampe the SocketStream fixes )
>
> Cheers,
> Henry
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: WebClient-Core port to Pharo 1.1 final

Stéphane Ducasse
>
>> If you call (re)introducing #squeakToUtf8/#utf8ToSqueak instead of using convertTo/FromEncoding: 'utf8', then yes.
>
> In Squeak these methods avoid the creation of the TextConverter object if the receiver is a ByteString, which is usually the case.

http://code.google.com/p/pharo/issues/list?thanks=2885

Thanks
_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: WebClient-Core port to Pharo 1.1 final

jaayer
In reply to this post by Levente Uzonyi-2


---- On Mon, 30 Aug 2010 05:57:47 -0700 Levente Uzonyi  wrote ----

>I don't like the "magical" #asString, but you should discuss it with
>Andreas. Collection >> #ifEmpty: doesn't return nil, but the collection in
>the WebClient-Pharo package (and in Squeak), and I think it's better than
>nil.

I opened a ticked on this a few weeks back: http://code.google.com/p/pharo/issues/detail?id=2794

The ifEmpty:/ifNotEmpty: behavior of Squeak is demonstrably better and should be adopted.


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: ifEmpty:ifNotEmpty (was: WebClient-Core port to Pharo 1.1 final)

Johan Brichau-2

On 30 Aug 2010, at 15:35, jaayer wrote:

> ---- On Mon, 30 Aug 2010 05:57:47 -0700 Levente Uzonyi  wrote ----
>
>> I don't like the "magical" #asString, but you should discuss it with
>> Andreas. Collection >> #ifEmpty: doesn't return nil, but the collection in
>> the WebClient-Pharo package (and in Squeak), and I think it's better than
>> nil.
>
> I opened a ticked on this a few weeks back: http://code.google.com/p/pharo/issues/detail?id=2794
>
> The ifEmpty:/ifNotEmpty: behavior of Squeak is demonstrably better and should be adopted.

heu... I evaluated the following in a pharo1.1-dev and 1.2-core:

(#(foo) ifEmpty:[#bar]) -> returns #(foo)
(#() ifNotEmpty:[#bar]) -> returns #()

This seems to do what you propose?
Johan
_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: ifEmpty:ifNotEmpty (was: WebClient-Core port to Pharo 1.1 final)

Henrik Sperre Johansen

On Aug 30, 2010, at 4:00 07PM, Johan Brichau wrote:

>
> On 30 Aug 2010, at 15:35, jaayer wrote:
>
>> ---- On Mon, 30 Aug 2010 05:57:47 -0700 Levente Uzonyi  wrote ----
>>
>>> I don't like the "magical" #asString, but you should discuss it with
>>> Andreas. Collection >> #ifEmpty: doesn't return nil, but the collection in
>>> the WebClient-Pharo package (and in Squeak), and I think it's better than
>>> nil.
>>
>> I opened a ticked on this a few weeks back: http://code.google.com/p/pharo/issues/detail?id=2794
>>
>> The ifEmpty:/ifNotEmpty: behavior of Squeak is demonstrably better and should be adopted.
>
> heu... I evaluated the following in a pharo1.1-dev and 1.2-core:
>
> (#(foo) ifEmpty:[#bar]) -> returns #(foo)
> (#() ifNotEmpty:[#bar]) -> returns #()
>
> This seems to do what you propose?
> Johan
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

Yes.
Levente is right, I read the code of Andreas' wrong.
Pharo 1.1/1.2 does this, so the override is for 1.0, where #ifEmpty: returns nil .

Cheers,
Henry
_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: WebClient-Core port to Pharo 1.1 final

Stéphane Ducasse
In reply to this post by jaayer
Thanks
It skipped my radar since it is not marked as fixed.
do you want that I add you to the project developers on google so that you can changed the tag value?

Stef

On Aug 30, 2010, at 3:35 PM, jaayer wrote:

>
>
> ---- On Mon, 30 Aug 2010 05:57:47 -0700 Levente Uzonyi  wrote ----
>
>> I don't like the "magical" #asString, but you should discuss it with
>> Andreas. Collection >> #ifEmpty: doesn't return nil, but the collection in
>> the WebClient-Pharo package (and in Squeak), and I think it's better than
>> nil.
>
> I opened a ticked on this a few weeks back: http://code.google.com/p/pharo/issues/detail?id=2794
>
> The ifEmpty:/ifNotEmpty: behavior of Squeak is demonstrably better and should be adopted.
>
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: ifEmpty:ifNotEmpty (was: WebClient-Core port to Pharo 1.1 final)

Stéphane Ducasse
In reply to this post by Henrik Sperre Johansen
Ok so I can close the ticket then.
 :)
Stef

>>> ---- On Mon, 30 Aug 2010 05:57:47 -0700 Levente Uzonyi  wrote ----
>>>
>>>> I don't like the "magical" #asString, but you should discuss it with
>>>> Andreas. Collection >> #ifEmpty: doesn't return nil, but the collection in
>>>> the WebClient-Pharo package (and in Squeak), and I think it's better than
>>>> nil.
>>>
>>> I opened a ticked on this a few weeks back: http://code.google.com/p/pharo/issues/detail?id=2794
>>>
>>> The ifEmpty:/ifNotEmpty: behavior of Squeak is demonstrably better and should be adopted.
>>
>> heu... I evaluated the following in a pharo1.1-dev and 1.2-core:
>>
>> (#(foo) ifEmpty:[#bar]) -> returns #(foo)
>> (#() ifNotEmpty:[#bar]) -> returns #()
>>
>> This seems to do what you propose?
>> Johan
>> _______________________________________________
>> Pharo-project mailing list
>> [hidden email]
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
> Yes.
> Levente is right, I read the code of Andreas' wrong.
> Pharo 1.1/1.2 does this, so the override is for 1.0, where #ifEmpty: returns nil .
>
> Cheers,
> Henry
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: ifEmpty:ifNotEmpty (was: WebClient-Core port to Pharo 1.1 final)

Henrik Sperre Johansen

On Aug 30, 2010, at 4:45 35PM, Stéphane Ducasse wrote:

> Ok so I can close the ticket then.
> :)
> Stef

Unless you want it as part of a 1.0 patch, yes.

Cheers,
Henry

>>>> ---- On Mon, 30 Aug 2010 05:57:47 -0700 Levente Uzonyi  wrote ----
>>>>
>>>>> I don't like the "magical" #asString, but you should discuss it with
>>>>> Andreas. Collection >> #ifEmpty: doesn't return nil, but the collection in
>>>>> the WebClient-Pharo package (and in Squeak), and I think it's better than
>>>>> nil.
>>>>
>>>> I opened a ticked on this a few weeks back: http://code.google.com/p/pharo/issues/detail?id=2794
>>>>
>>>> The ifEmpty:/ifNotEmpty: behavior of Squeak is demonstrably better and should be adopted.
>>>
>>> heu... I evaluated the following in a pharo1.1-dev and 1.2-core:
>>>
>>> (#(foo) ifEmpty:[#bar]) -> returns #(foo)
>>> (#() ifNotEmpty:[#bar]) -> returns #()
>>>
>>> This seems to do what you propose?
>>> Johan
>>> _______________________________________________
>>> Pharo-project mailing list
>>> [hidden email]
>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>
>> Yes.
>> Levente is right, I read the code of Andreas' wrong.
>> Pharo 1.1/1.2 does this, so the override is for 1.0, where #ifEmpty: returns nil .
>>
>> Cheers,
>> Henry
>> _______________________________________________
>> Pharo-project mailing list
>> [hidden email]
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: WebClient-Core port to Pharo 1.1 final

Yanni Chiu
In reply to this post by Johan Brichau-2
Johan Brichau wrote:
>
> I am not a lawyer but as far as I understand this topic, no license
> means nobody can use the code at all, which contradicts the fact of
> having it in a public repository (and you being perfectly happy of
> people using it).

IANAL. "no license" means it's public domain, so *anybody* can use it.
But, if they use it, they have no idea of the terms under which they can
use it - a license would may the terms clear. Cautious users would then
*not* use it. So the net effect would be that nobody (that is cautious)
uses it.

There is no contradiction with it being in a public repository. The
author is perfectly happy for the public to use it. The problem is that
users are likely not happy to use it, without any license terms.


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: WebClient-Core port to Pharo 1.1 final

Igor Stasenko
In reply to this post by Stéphane Ducasse
My 2 cents about WebClient.

- it should be an (un)loadable external package, and i am fully agree
with Andreas on this point.
It is tempting to integrate it into image, do some tweaks here and
there and then ship it within a monolitic image.
But then, from maintainer's point of view, it is quite hard to keep
developing it and improving, since it may break
things in random places over multiple forks etc etc, and then who will
be accused in such breakage? - a maintainer.

It is good to have a person, who personally responsible for
maintaining a package, or even if by a group of people,
it should use a separate repository for developing it.

Otherwise, if you integrate it into image, by doing that you:
 - losing a maintainer , who willingly contributing to this project
 - in same turn, must take own responsibility for maintaining it,
which means extra work for you, whenever you having
  problems with it.

We should learn how to integrate things without intimately tying
everything with a single bloated image.
And WebClient could be right thing for learning that (Seaside too ;).


--
Best regards,
Igor Stasenko AKA sig.

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: WebClient-Core port to Pharo 1.1 final

Miguel Cobá
In reply to this post by Levente Uzonyi-2
El lun, 30-08-2010 a las 13:06 +0200, Levente Uzonyi escribió:

> On Mon, 30 Aug 2010, Stéphane Ducasse wrote:
>
> >>>
> >>> I suggest that the people that want and know, group together and build an open-source one.
> >>
> >> Why do you have to have your "own" library?
> >
> > Did I say "pharo library"? reread carefully I said an "open-source one".
>
> What I get from Andreas' words is that he's willing to make it open source
> if it won't be forked.

This is plain wrong, You CAN'T make something open source and at the
same time hope that nobody will fork it. The possibility of forking is
one of the main liberties granted by the free and open source software.
If Andreas doesn't want anyone to fork then by definition can't be open
source.

As I said before, a way to avoid forking in an open source project is to
be open and accepting code from contributors. Not accepting good code
for bad reasons is what leads to forking.

I, and I think, every Pharo user, are ok with the package being
controlled by Andreas, as long as the patches are accepted and not
rejected for bad reasons (like having the package part of pharo core:
that is our problem, if there are issues by having it part of pharo core
we'll solve them, without bothering Andreas because they are Pharo
specific. But he can't also, by the same Open source nature, restrict
the uses of the code).

We all, greatly respect and admire his technical ability, that has never
been denied. But his public interactions has more than one burned a lot
of people, and this no-license issue is becoming one of them. We don't
want tramps like that of the missing license. When the code was
announced it was a public encourage to use it and test it, but we as
community went to happy and without checking the license it was included
in pharo. That was our error.

So please, Andreas, if you want WebClient to be open source please do
it, Pharo will use it and send you patches. If not say it too, and we'll
find an alternative for this.

Cheers
--
Miguel Cobá
http://miguel.leugim.com.mx


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: WebClient-Core port to Pharo 1.1 final

Miguel Cobá
In reply to this post by Igor Stasenko
El lun, 30-08-2010 a las 18:25 +0300, Igor Stasenko escribió:

> My 2 cents about WebClient.
>
> - it should be an (un)loadable external package, and i am fully agree
> with Andreas on this point.
> It is tempting to integrate it into image, do some tweaks here and
> there and then ship it within a monolitic image.
> But then, from maintainer's point of view, it is quite hard to keep
> developing it and improving, since it may break
> things in random places over multiple forks etc etc, and then who will
> be accused in such breakage? - a maintainer.

Of course not, we, the ones using it as part of our core image are the
ones responsible of the correct functioning in our image. It would be
childish to run crying to Andreas that it break our image because we are
taking the decision of integrating it in the core image. Now, this of
course doesn't apply to core functionality or that breaks the contract
the code offers to its clients. That type of API changes will be
discussed with Andreas and if no solution found, the pharo developers
will found a workaround so that is remains working correctly.

What I don't understand is why such imposition to the way of use the
software. If it decided to have an open source license he can't restrict
the uses of the software. This is a real open source implications.


>
> It is good to have a person, who personally responsible for
> maintaining a package, or even if by a group of people,
> it should use a separate repository for developing it.
>
> Otherwise, if you integrate it into image, by doing that you:
>  - losing a maintainer , who willingly contributing to this project
>  - in same turn, must take own responsibility for maintaining it,
> which means extra work for you, whenever you having
>   problems with it.

Of course, that is the point. Nobody expects otherwise.

>
> We should learn how to integrate things without intimately tying
> everything with a single bloated image.

Isn't as we are integrating moose or seaside in the core image is a
basic infrastructure thing, a http client, that every modern language in
the current times includes in their core libraries (java, ruby, lisp).

> And WebClient could be right thing for learning that (Seaside too ;).
>


--
Miguel Cobá
http://miguel.leugim.com.mx


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: WebClient-Core port to Pharo 1.1 final

Igor Stasenko
2010/8/30 Miguel Enrique Cobá Martínez <[hidden email]>:

> El lun, 30-08-2010 a las 18:25 +0300, Igor Stasenko escribió:
>> My 2 cents about WebClient.
>>
>> - it should be an (un)loadable external package, and i am fully agree
>> with Andreas on this point.
>> It is tempting to integrate it into image, do some tweaks here and
>> there and then ship it within a monolitic image.
>> But then, from maintainer's point of view, it is quite hard to keep
>> developing it and improving, since it may break
>> things in random places over multiple forks etc etc, and then who will
>> be accused in such breakage? - a maintainer.
>
> Of course not, we, the ones using it as part of our core image are the
> ones responsible of the correct functioning in our image. It would be
> childish to run crying to Andreas that it break our image because we are
> taking the decision of integrating it in the core image. Now, this of
> course doesn't apply to core functionality or that breaks the contract
> the code offers to its clients. That type of API changes will be
> discussed with Andreas and if no solution found, the pharo developers
> will found a workaround so that is remains working correctly.
>
> What I don't understand is why such imposition to the way of use the
> software. If it decided to have an open source license he can't restrict
> the uses of the software. This is a real open source implications.
>
>
>>
>> It is good to have a person, who personally responsible for
>> maintaining a package, or even if by a group of people,
>> it should use a separate repository for developing it.
>>
>> Otherwise, if you integrate it into image, by doing that you:
>>  - losing a maintainer , who willingly contributing to this project
>>  - in same turn, must take own responsibility for maintaining it,
>> which means extra work for you, whenever you having
>>   problems with it.
>
> Of course, that is the point. Nobody expects otherwise.
>

Then you making things wrong, because then:
- party A made feature A available
- party B made feature B available
- users want A and B features both, but party A and B do not communicate

I think that Andreas wants to impose a teamwork, when multiple parties
working on
same project, rather than multiple parties working on each own fork of
a same project.

I think i understood the Anreas'es point well.
As initial developer, he dont wants to be in position, when his creation
moves into a different direction, than he is initially planned.
At least, until Andreas to-do list is not empty, and project is not
mature enough,
it is wise to keep development under his personal control.
That's how i understood his message about license.


>>
>> We should learn how to integrate things without intimately tying
>> everything with a single bloated image.
>
> Isn't as we are integrating moose or seaside in the core image is a
> basic infrastructure thing, a http client, that every modern language in
> the current times includes in their core libraries (java, ruby, lisp).
>
>> And WebClient could be right thing for learning that (Seaside too ;).
>>
>
>
> --
> Miguel Cobá
> http://miguel.leugim.com.mx
>
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project



--
Best regards,
Igor Stasenko AKA sig.

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: WebClient-Core port to Pharo 1.1 final

Henrik Sperre Johansen
In reply to this post by Levente Uzonyi-2

On Aug 30, 2010, at 2:57 47PM, Levente Uzonyi wrote:

On Mon, 30 Aug 2010, Henrik Johansen wrote:


On Aug 30, 2010, at 1:06 10PM, Levente Uzonyi wrote:

On Mon, 30 Aug 2010, Stéphane Ducasse wrote:


I suggest that the people that want and know, group together and build an open-source one.

Why do you have to have your "own" library?

Did I say "pharo library"? reread carefully I said an "open-source one".

What I get from Andreas' words is that he's willing to make it open source if it won't be forked.

So, definitely not MIT then.

Why?
Because the MIT license explicitly sets no limit on the users right to modify, publish and distribute the software.
A condition that it can not be published/used in a modified (forked) form would exclude using MIT.


I guess that means the long-term plan of replacing HttpSocket in Squeak is out as well?

I don't think so. Squeak releases won't come with WebClient loaded, Andreas mentioned it in his mail.

In a reply to the original announcement, Andreas also said: 

"On 5/4/2010 11:11 PM, Casey Ransberger wrote: 
> Are you intent on replacing HTTPSocket in the long run? I have an 
> RPC-ish thing that uses it, so I'd like to be clear on whether I can 
> expect it to be around for the next release. 

In the long run: Yes. In the next release: No. And "replacing" can mean 
that the public interface in HTTPSocket remains. That's what the 
WebClient-HTTP package does. It patches HTTPSocket to use WebClient 
while preserving the identical external interface. "

which to me implied eventual integration in Squeak core
(as did the removal of HttpSocket functionality based on it being offered by WebClient)



If you call (re)introducing #squeakToUtf8/#utf8ToSqueak instead of using convertTo/FromEncoding: 'utf8', then yes.

In Squeak these methods avoid the creation of the TextConverter object if the receiver is a ByteString, which is usually the case.


Levente

Yes, the major performance differences come from not creating copies if the strings are ascii, and #convertTo/FromEncoding: doing subclass  lookup to find the converter though.

AFAICT, it's maximally about 2 times faster in the best case (small, pure ascii strings) where it avoids both copies and a lookup compared to a convertTo/FromEncoding modified to do lookup in a dictionary rather than iterating subclasses.

For the WebSocket use-cases though, I really don't see how the performance matters all that much.

You convert roughly 200k 4KB ascii strings per second either way, and with a single non-ascii char, the difference falls to near negligible.

"MediumDoc is a pure ascii ByteString of size 4096"
[1 to: 100000 do: [:ix |MediumDoc
squeakToUtf8]] timeToRun 362 384
[1 to: 100000 do: [:ix | MediumDoc
convertToEncoding: 'utf-8']] timeToRun 437 564
MediumDoc at: 2048 put: $å.
[1 to: 100000 do: [:ix |MediumDoc
squeakToUtf8]] timeToRun 1451 1438 
[1 to: 100000 do: [:ix | MediumDoc
convertToEncoding: 'utf-8']] timeToRun 1463 1470

Cheers,
Henry



_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

TextConverting.zip (1K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: WebClient-Core port to Pharo 1.1 final

Mariano Martinez Peck
In reply to this post by Miguel Cobá


2010/8/30 Miguel Enrique Cobá Martínez <[hidden email]>
El lun, 30-08-2010 a las 18:25 +0300, Igor Stasenko escribió:
> My 2 cents about WebClient.
>
> - it should be an (un)loadable external package, and i am fully agree
> with Andreas on this point.
> It is tempting to integrate it into image, do some tweaks here and
> there and then ship it within a monolitic image.
> But then, from maintainer's point of view, it is quite hard to keep
> developing it and improving, since it may break
> things in random places over multiple forks etc etc, and then who will
> be accused in such breakage? - a maintainer.

Of course not, we, the ones using it as part of our core image are the
ones responsible of the correct functioning in our image. It would be
childish to run crying to Andreas that it break our image because we are
taking the decision of integrating it in the core image. Now, this of
course doesn't apply to core functionality or that breaks the contract
the code offers to its clients. That type of API changes will be
discussed with Andreas and if no solution found, the pharo developers
will found a workaround so that is remains working correctly.


Agree with Miguel. It is the smae situation as Gofer.  Lukas is the main developer of Gofer but we (pharo developers) maintain it. When a message is removed or renamed for example, we take care about its senders, for all packages, included Gofer. And we are the responsible, not Lukas.
 
What I don't understand is why such imposition to the way of use the
software. If it decided to have an open source license he can't restrict
the uses of the software. This is a real open source implications.


>
> It is good to have a person, who personally responsible for
> maintaining a package, or even if by a group of people,
> it should use a separate repository for developing it.
>
> Otherwise, if you integrate it into image, by doing that you:
>  - losing a maintainer , who willingly contributing to this project
>  - in same turn, must take own responsibility for maintaining it,
> which means extra work for you, whenever you having
>   problems with it.

Of course, that is the point. Nobody expects otherwise.

>
> We should learn how to integrate things without intimately tying
> everything with a single bloated image.

Isn't as we are integrating moose or seaside in the core image is a
basic infrastructure thing, a http client, that every modern language in
the current times includes in their core libraries (java, ruby, lisp).

> And WebClient could be right thing for learning that (Seaside too ;).
>


--
Miguel Cobá
http://miguel.leugim.com.mx


_______________________________________________


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: WebClient-Core port to Pharo 1.1 final

Stéphane Ducasse
In reply to this post by Henrik Sperre Johansen
thanks henrik
I always learn something :)


>>>> I suggest that the people that want and know, group together and build an open-source one.
>>>>>>
>>>>>> Why do you have to have your "own" library?
>>>>>
>>>>> Did I say "pharo library"? reread carefully I said an "open-source one".
>>>>
>>>> What I get from Andreas' words is that he's willing to make it open source if it won't be forked.
>>>
>>> So, definitely not MIT then.
>>
>> Why?
> Because the MIT license explicitly sets no limit on the users right to modify, publish and distribute the software.
> A condition that it can not be published/used in a modified (forked) form would exclude using MIT.
>
>>
>>> I guess that means the long-term plan of replacing HttpSocket in Squeak is out as well?
>>
>> I don't think so. Squeak releases won't come with WebClient loaded, Andreas mentioned it in his mail.
>
> In a reply to the original announcement, Andreas also said:
>
> "On 5/4/2010 11:11 PM, Casey Ransberger wrote:
> > Are you intent on replacing HTTPSocket in the long run? I have an
> > RPC-ish thing that uses it, so I'd like to be clear on whether I can
> > expect it to be around for the next release.
>
> In the long run: Yes. In the next release: No. And "replacing" can mean
> that the public interface in HTTPSocket remains. That's what the
> WebClient-HTTP package does. It patches HTTPSocket to use WebClient
> while preserving the identical external interface. "
>
> which to me implied eventual integration in Squeak core
> (as did the removal of HttpSocket functionality based on it being offered by WebClient)
>
>
>>
>>> If you call (re)introducing #squeakToUtf8/#utf8ToSqueak instead of using convertTo/FromEncoding: 'utf8', then yes.
>>
>> In Squeak these methods avoid the creation of the TextConverter object if the receiver is a ByteString, which is usually the case.
>>
>>
>> Levente
>
> Yes, the major performance differences come from not creating copies if the strings are ascii, and #convertTo/FromEncoding: doing subclass  lookup to find the converter though.
>
> AFAICT, it's maximally about 2 times faster in the best case (small, pure ascii strings) where it avoids both copies and a lookup compared to a convertTo/FromEncoding modified to do lookup in a dictionary rather than iterating subclasses.
>
> For the WebSocket use-cases though, I really don't see how the performance matters all that much.
>
> You convert roughly 200k 4KB ascii strings per second either way, and with a single non-ascii char, the difference falls to near negligible.
>
> "MediumDoc is a pure ascii ByteString of size 4096"
> [1 to: 100000 do: [:ix |MediumDoc
> squeakToUtf8]] timeToRun 362 384
> [1 to: 100000 do: [:ix | MediumDoc
> convertToEncoding: 'utf-8']] timeToRun 437 564
> MediumDoc at: 2048 put: $å.
> [1 to: 100000 do: [:ix |MediumDoc
> squeakToUtf8]] timeToRun 1451 1438
> [1 to: 100000 do: [:ix | MediumDoc
> convertToEncoding: 'utf-8']] timeToRun 1463 1470
>
> Cheers,
> Henry
>
> <TextConverting.zip>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: WebClient-Core port to Pharo 1.1 final

Douglas Brebner
In reply to this post by Levente Uzonyi-2
On 30/08/2010 12:06, Levente Uzonyi wrote:
On Mon, 30 Aug 2010, Stéphane Ducasse wrote:


Now
    - since the license is unclear
    - since the license of the contributors is unclear
we will not use it as an infrastructural assets for Pharo. I imagine that Seaside will not use it either.

Well, we are about to use it for Seaside.


Is that legal?
IANAL but it was my understanding that if code has no licence it means that noone but the author has any right to do anything with it whatsoever. Not to download it, use it or even read it. That's why licences explicitly grant you rights, because otherwise you have none.

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: WebClient-Core port to Pharo 1.1 final

Nicolas Cellier
In reply to this post by Mariano Martinez Peck
Hi Pharoers,
I'm happy to read mail from Torsten, Igor and Miguel, thank you guys
that's constructive.
Andreas expressed his point very well, and i don't think it is
hostile, maybe a bit sarcastic or disenchanted, but overall he keeps
the door opened.
The first thing to do is to cool down, relax and think.
The second thing to do is engaging discussion with Andreas.

Of course, the license is of prime importance, not having a license is
a showstopper.
If license is too restrictive then Andreas will probably fail to reach
his goals...
There will be de facto full rewrite rather than forks, but the net
result will be the same: failure to share packages/libraries.

That's why I personnally don't find Andreas defensive position a good strategy.
Neither the attitude in response...
It's like you're happy to throw his work away at first occasion
without even trying to negociate.
Bad vibrations.

Before you engage in this (war)path, please, please, discuss.
And remind this saying "il ne faut pas confondre vitesse et précipitation".
If no agreement is found then, ok, you'll get a license to carry on.

After the license problem, there is the technical compatibility problem.
Discussions about cross fork compatibility, compatibility layers or
libraries (a la GREASE) will have to occur anyway, be it about Andreas
library or from any other author. So you'll have to take time to
discuss. Don't consider this as lost time. These discussions are
considered necessary when they regularly happens in Pharo mailing
list, aren't they ? It shouldn't be that hard to convince Andreas to
change things like and:and:and:. For squeakToUtf8, I don't know, maybe
provide some automated rewrite rules, and produce an automated Pharo
version ?

Please, discuss, argue, explain why you consider certain constructions
as bad style. Propose alternatives (be constructive - remember
coopetition ?).
I consider being unable to explain one's own choice as a weakness.
Don't be weak.
Come-on guys, despite Levente's cutting remark, you're not inferior to
squeakers ;) (and you don't have to answer to that stupid conclusion).

Nicolas

2010/8/30 Mariano Martinez Peck <[hidden email]>:

>
>
> 2010/8/30 Miguel Enrique Cobá Martínez <[hidden email]>
>>
>> El lun, 30-08-2010 a las 18:25 +0300, Igor Stasenko escribió:
>> > My 2 cents about WebClient.
>> >
>> > - it should be an (un)loadable external package, and i am fully agree
>> > with Andreas on this point.
>> > It is tempting to integrate it into image, do some tweaks here and
>> > there and then ship it within a monolitic image.
>> > But then, from maintainer's point of view, it is quite hard to keep
>> > developing it and improving, since it may break
>> > things in random places over multiple forks etc etc, and then who will
>> > be accused in such breakage? - a maintainer.
>>
>> Of course not, we, the ones using it as part of our core image are the
>> ones responsible of the correct functioning in our image. It would be
>> childish to run crying to Andreas that it break our image because we are
>> taking the decision of integrating it in the core image. Now, this of
>> course doesn't apply to core functionality or that breaks the contract
>> the code offers to its clients. That type of API changes will be
>> discussed with Andreas and if no solution found, the pharo developers
>> will found a workaround so that is remains working correctly.
>>
>
> Agree with Miguel. It is the smae situation as Gofer.  Lukas is the main
> developer of Gofer but we (pharo developers) maintain it. When a message is
> removed or renamed for example, we take care about its senders, for all
> packages, included Gofer. And we are the responsible, not Lukas.
>
>>
>> What I don't understand is why such imposition to the way of use the
>> software. If it decided to have an open source license he can't restrict
>> the uses of the software. This is a real open source implications.
>>
>>
>> >
>> > It is good to have a person, who personally responsible for
>> > maintaining a package, or even if by a group of people,
>> > it should use a separate repository for developing it.
>> >
>> > Otherwise, if you integrate it into image, by doing that you:
>> >  - losing a maintainer , who willingly contributing to this project
>> >  - in same turn, must take own responsibility for maintaining it,
>> > which means extra work for you, whenever you having
>> >   problems with it.
>>
>> Of course, that is the point. Nobody expects otherwise.
>>
>> >
>> > We should learn how to integrate things without intimately tying
>> > everything with a single bloated image.
>>
>> Isn't as we are integrating moose or seaside in the core image is a
>> basic infrastructure thing, a http client, that every modern language in
>> the current times includes in their core libraries (java, ruby, lisp).
>>
>> > And WebClient could be right thing for learning that (Seaside too ;).
>> >
>>
>>
>> --
>> Miguel Cobá
>> http://miguel.leugim.com.mx
>>
>>
>> _______________________________________________
>> Pharo-project mailing list
>> [hidden email]
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: WebClient-Core port to Pharo 1.1 final

Stéphane Ducasse

On Aug 30, 2010, at 9:57 PM, Nicolas Cellier wrote:

> Hi Pharoers,
> I'm happy to read mail from Torsten, Igor and Miguel, thank you guys
> that's constructive.
> Andreas expressed his point very well, and i don't think it is
> hostile, maybe a bit sarcastic or disenchanted, but overall he keeps
> the door opened.
> The first thing to do is to cool down, relax and think.
> The second thing to do is engaging discussion with Andreas.
>
> Of course, the license is of prime importance, not having a license is
> a showstopper.
> If license is too restrictive then Andreas will probably fail to reach
> his goals...
> There will be de facto full rewrite rather than forks, but the net
> result will be the same: failure to share packages/libraries.

why?
because if there is a rewrite it will be MIT.

> That's why I personnally don't find Andreas defensive position a good strategy.
> Neither the attitude in response...
> It's like you're happy to throw his work away at first occasion
> without even trying to negociate.

Oh no. I do not want that people bash us as people stealing work of other people.
Read my mail on webClient.

> Bad vibrations.

Writing all these mails is even more for me.

> Before you engage in this (war)path, please, please, discuss.
> And remind this saying "il ne faut pas confondre vitesse et précipitation".
> If no agreement is found then, ok, you'll get a license to carry on.


So far we talk in the desert.
Loading WebClient is one line. So this is as easy as to remove.


> After the license problem, there is the technical compatibility problem.
> Discussions about cross fork compatibility, compatibility layers or
> libraries (a la GREASE) will have to occur anyway, be it about Andreas
> library or from any other author. So you'll have to take time to
> discuss. Don't consider this as lost time. These discussions are
> considered necessary when they regularly happens in Pharo mailing
> list, aren't they ? It shouldn't be that hard to convince Andreas to
> change things like and:and:and:. For squeakToUtf8, I don't know, maybe
> provide some automated rewrite rules, and produce an automated Pharo
> version ?

I already suggested that. Now there is an important point. Infrastructure code
should be supported, accessible to the community. We got burned with graphics
andreas' onwership in the past. And yes we learned from that.

>
> Please, discuss, argue, explain why you consider certain constructions
> as bad style. Propose alternatives (be constructive - remember
> coopetition ?).
> I consider being unable to explain one's own choice as a weakness.
> Don't be weak.
> Come-on guys, despite Levente's cutting remark, you're not inferior to
> squeakers ;) (and you don't have to answer to that stupid conclusion).

I will let people decide as I did for the inclusion of webClient and we will rewrite one if
necessary and it will be MIT. This will be the same for the equivalent of SqueakSSL
we will try as much as possible to offer an infrastructure that let people control
their life and make money.

Our goal is to have a core that could be bootstrap so to have many packages as external as possible
now I thought that it would help people to have webClient and also help us to remove this ugly network
package.
I should have know before the other HTTPClient library and we will not be here losing our time.

Stef


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
1234