Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[EVALUATION] - E04 - Leadership! Google, Guido van Rossum, PSF

8 views
Skip to first unread message

Ilias Lazaridis

unread,
Dec 25, 2005, 8:54:45 PM12/25/05
to
Python Leadership was a weakness [1] and becomes now a threat for
python, thanks to Mr. van Rossums employment at Google.

-

I've wrote the Leadership list prioritized (Google rules, Mr. van Rossum
follows, PSF watches and accepts).

The core developer of an open-source-project is 'captured' by an giant
(Google).

The giant does not inform the community directly, e.g. whilst posting
an official statement to this media or with an official anouncement
(which clarifies the details of the deal).

Mr. van Rossum does not inform the community directly.

The Open Source Project (PSF) does not inform the community directly.

Just a thread with a little bit rumour.

Guido at Google
http://groups.google.com/group/comp.lang.python/msg/07c299b817dca256

Really, this does not make a very professional impression.

And this has of course nothing to do with "Leadership" - which should
protect an community from wasting time and energy with unnecessary
assumptions and speculations.

-

[1]

Within this thread (which contained a simple rational change-suggestion)
i've finally contacted the foundation.

[EVALUATION] - E02 - Support for MinGW Open Source Compiler
http://groups.google.com/group/comp.lang.python/msg/0d2aad11f0516918

The foundation had reacted by email, but just with some justifications.

Mr. van Rossum has reacted, too. This led to some funny (and off-topic)
conversation, which was closed to be published (but finally he decided
opposite).

And very finally he suggested that I suffer from some mental disease.
Many people simplify: "what I don't understand, must be nuts".

I hope that he understands now (possibly he has the courage for an
apology?):

http://lazaridis.com/core/index.html

.

--
http://lazaridis.com/core/eval/python.html

Harald Armin Massa

unread,
Dec 27, 2005, 3:28:31 AM12/27/05
to
Guido at Google: a message in THE public forum c.l.p.

A confirmation by Martellibot, that Guido is IN FACT sitting 15m
distant from him; and everybody in Python knows where Martellibot has
his desk.

Can it get more official than this?

yeah:
a confirmation by Greg Stein @ Google within slashdot, that Guido is
working at Google.

I am sure that more people in the Python community are reading c.l.p.
and /. than the washington post, the people affected have been
informed.

I guess that's as formal and official as it can get.

And concerning Guido, Python, community and leadership:

Guido is the designer, the creator of Python. He has nearly unlimeted
trust in his design decisions: we all know, that he is THE gifted
language designer. His proclamations are accepted because he has proven
over time that he knows what's best for the language.

Allow me to quote Greg Stein:
"Ha! Guido would quit in a heartbeat if you tried to make him manage
people. That just isn't where he's at. He's absolutely brilliant and
loves to write excellent code. Great. We're gonna let him do just that
:-)"

So, Google with their geek-version of the Playboy-Mansion, free massage
parleurs, free lunch and dinner and best recruitment tactics on the
planet and the known universe will not be able to make Guido manage
people.

Somehow the Python community managed itself through the years... Python
grew healthy and steadily; forked less then usual, inspired other
languages and got faster and faster and faster.

Maybe only mediocre and less ideas need a great leader. Maybe a great
idea can lead for itself?

Harald

--
GHUM Harald Massa
persuadere et programmare
Harald Armin Massa
Reinsburgstraße 202b
70197 Stuttgart
0173/9409607

Martin P. Hellwig

unread,
Dec 27, 2005, 4:32:28 AM12/27/05
to
Ilias Lazaridis wrote:
<cut>
So I guess you volunteer http://www.python.org/psf/volunteer.html ?
--
mph

Michael

unread,
Dec 27, 2005, 10:26:57 AM12/27/05
to
Ilias Lazaridis wrote:
> [ panic, fear, worry ]

What's wrong with just saying "Congratulations!" ? First thing I thought was
"ooh, maybe Guido will be able to work on P3K there" - after all that would
benefit Google *and* everyone else :-)

(Especially if he uses PyPy to experiment and play in ... :)

Merry Christmas/Happy New Year :-)


Michael.

Ilias Lazaridis

unread,
Dec 27, 2005, 7:02:52 PM12/27/05
to
Michael wrote:
> Ilias Lazaridis wrote:
>
>>[ panic, fear, worry ]
>
> What's wrong with just saying "Congratulations!" ?

nothing.

But enouth people do this.

I am focusing on weaknesses & threats:

http://lazaridis.com/efficiency/graph/analysis.html

> First thing I thought was
> "ooh, maybe Guido will be able to work on P3K there" - after all that would
> benefit Google *and* everyone else :-)

My main intrest is to see python pass this simple evaluation (currently
it fails):

http://lazaridis.com/case/lang/python.html

> (Especially if he uses PyPy to experiment and play in ... :)
>
> Merry Christmas/Happy New Year :-)
>
> Michael.

.

--
http://lazaridis.com

Ilias Lazaridis

unread,
Dec 27, 2005, 7:18:24 PM12/27/05
to

I volunteer and contribute already (with a general validity and python
specific analysis)

A mediator should communicate the findings and suggestion (after
verifying them) to the responsibles / community:

http://lazaridis.com/efficiency/process.html#mediator

This would include to pass the relevant ones to the list you've mentioned:

http://www.python.org/psf/volunteer.html

-

TAG.efficiency.process.mediator

.

--
http://lazaridis.com

Ilias Lazaridis

unread,
Dec 27, 2005, 7:32:29 PM12/27/05
to
Harald Armin Massa wrote:
[...] - (comments)

Thank you for your comments.

-

TAG.python.evolution.negate.apotheosis

.

--
http://lazaridis.com

Robert Hicks

unread,
Dec 27, 2005, 8:14:33 PM12/27/05
to
Guido has never been, is not, and will not in the future be, a threat
to Python. End of story.

Unless of course aliens come into play. You never know.

Robert

Ilias Lazaridis

unread,
Dec 27, 2005, 9:30:19 PM12/27/05
to

-

TAG.python.evolution.negate.apotheosis.faith

.

--
http://lazaridis.com

Martin P. Hellwig

unread,
Dec 28, 2005, 4:00:07 AM12/28/05
to

Last time I checked a "mediator" otherwise known to me as a
communication manager, is only effective when he/she is recognized as
authoritative by the participating group _and_ him/herself.

As from other posts I read that the last part is the issue, well since
this is a voluntary bunch of people with a slightly social democratic
architecture you fall back on spokesman and that can be anybody,
including or perhaps even especially you.

The only thing that holds "you" theoretically back is "acknowledged
authority by the participating group _and_ yourself" and of course the
resource for "restricted" information.
For the first part you got my vote, for second, well that should grow in
time.

--
mph

Ilias Lazaridis

unread,
Dec 28, 2005, 6:30:28 AM12/28/05
to
Martin P. Hellwig wrote:
> Ilias Lazaridis wrote:
>> Martin P. Hellwig wrote:
>>> Ilias Lazaridis wrote:
>>> <cut>
>>> So I guess you volunteer http://www.python.org/psf/volunteer.html ?
>>
>> I volunteer and contribute already (with a general validity and python
>> specific analysis)
>>
>> A mediator should communicate the findings and suggestion (after
>> verifying them) to the responsibles / community:
>>
>> http://lazaridis.com/efficiency/process.html#mediator
>>
>> This would include to pass the relevant ones to the list you've
>> mentioned:
>>
>> http://www.python.org/psf/volunteer.html
>>
>> -
>>
>> TAG.efficiency.process.mediator
>
> Last time I checked a "mediator" otherwise known to me as a
> communication manager, is only effective when he/she is recognized as
> authoritative by the participating group _and_ him/herself.

ok

> As from other posts I read that the last part is the issue, well since
> this is a voluntary bunch of people with a slightly social democratic
> architecture you fall back on spokesman and that can be anybody,
> including or perhaps even especially you.

ok

> The only thing that holds "you" theoretically back is "acknowledged
> authority by the participating group _and_ yourself" and of course the
> resource for "restricted" information.

what do you mean by "resource for "restricted" information"?

> For the first part you got my vote, for second, well that should grow in
> time.

second part = "resource for "restricted" information" ?


-

(you can use private email if you prefere. If so, I will post an summary
back to the thread).

-

[sidenote: I am currently preparing diagramms, which will demonstrate
the several processes more clearly.]

.

--
http://lazaridis.com

Martin P. Hellwig

unread,
Dec 28, 2005, 8:34:29 AM12/28/05
to
Ilias Lazaridis wrote:
<cut>

>> The only thing that holds "you" theoretically back is "acknowledged
>> authority by the participating group _and_ yourself" and of course the
>> resource for "restricted" information.
>
> what do you mean by "resource for "restricted" information"?
>
Well, I mean that you should know before the others that Guido is
working for google otherwise such a publication is a bit late :-),
nevertheless better late then never.

>> For the first part you got my vote, for second, well that should grow
>> in time.
>
> second part = "resource for "restricted" information" ?

yup
<cut>

--
mph

Anton Vredegoor

unread,
Dec 28, 2005, 10:08:38 AM12/28/05
to

Michael wrote:

> Ilias Lazaridis wrote:
> > [ panic, fear, worry ]
>
> What's wrong with just saying "Congratulations!" ? First thing I thought was
> "ooh, maybe Guido will be able to work on P3K there" - after all that would
> benefit Google *and* everyone else :-)

Google's not a nice company (yeah, I know I'm posting from a google
account). If you look at their job requirements it's clear they will
only hire people with long backstabbing histories. There seems to be no
room left for world improving undamaged souls in that company.

> (Especially if he uses PyPy to experiment and play in ... :)

Yes PyPy could save Python, or destroy the world. I have the impression
not many enough people realize that a selfhosting programming language
is something on the same level as a nano assembler or an artificial
intelligence. There is not much time anymore for idealists to start
trying to save the world, and I don't think we can count on google in
that respect.

Anton

'make my day, prove me wrong'

Robert Kern

unread,
Dec 28, 2005, 10:22:12 AM12/28/05
to pytho...@python.org
Anton Vredegoor wrote:
> Michael wrote:
>
>>Ilias Lazaridis wrote:
>>
>>>[ panic, fear, worry ]
>>
>>What's wrong with just saying "Congratulations!" ? First thing I thought was
>>"ooh, maybe Guido will be able to work on P3K there" - after all that would
>>benefit Google *and* everyone else :-)
>
> Google's not a nice company (yeah, I know I'm posting from a google
> account). If you look at their job requirements it's clear they will
> only hire people with long backstabbing histories. There seems to be no
> room left for world improving undamaged souls in that company.

I have a friend who works at Google. He has no backstabbing history at all. Stop
insulting my friends.

For Software Engineer:

"""
Requirements:

* BS or MS in Computer Science or equivalent (PhD a plus).
* Several years of software development experience.
* Enthusiasm for solving interesting problems.
* Experience with Unix/Linux or Windows environments, C++ development,
distributed systems, machine learning, information retrieval, network
programming and/or developing large software systems a plus.
"""

I don't see any "damaged soul" requirement.

>>(Especially if he uses PyPy to experiment and play in ... :)
>
> Yes PyPy could save Python, or destroy the world. I have the impression
> not many enough people realize that a selfhosting programming language
> is something on the same level as a nano assembler or an artificial
> intelligence.

??? What the hell are you smoking? We already have self-hosting programming
languages.

> Anton
>
> 'make my day, prove me wrong'

Prove yourself right.

--
Robert Kern
rober...@gmail.com

"In the fields of hell where the grass grows high
Are the graves of dreams allowed to die."
-- Richard Harter

Anton Vredegoor

unread,
Dec 28, 2005, 10:45:23 AM12/28/05
to
Robert Kern wrote:

> I have a friend who works at Google. He has no backstabbing history at all. Stop
> insulting my friends.

Your friends work for people who would never hire me. My resume sucks,
but I'm not a bad person or a mediocre programmer. They sold out.

> For Software Engineer:
>
> """
> Requirements:
>
> * BS or MS in Computer Science or equivalent (PhD a plus).

Right here.

> * Several years of software development experience.
> * Enthusiasm for solving interesting problems.
> * Experience with Unix/Linux or Windows environments, C++ development,
> distributed systems, machine learning, information retrieval, network
> programming and/or developing large software systems a plus.
> """
>
> I don't see any "damaged soul" requirement.

I do. Experience here is an eufemism for having worked for the man.

> >>(Especially if he uses PyPy to experiment and play in ... :)
> >
> > Yes PyPy could save Python, or destroy the world. I have the impression
> > not many enough people realize that a selfhosting programming language
> > is something on the same level as a nano assembler or an artificial
> > intelligence.
>
> ??? What the hell are you smoking? We already have self-hosting programming
> languages.

Yes. We have humans too.

> > Anton
> >
> > 'make my day, prove me wrong'
>
> Prove yourself right.

Ok. That's a bit harder. I suppose we agree that if we have an
intelligent program that is more intelligent than a human and have this
program design an even more intelligent program than things start to
accelerate pretty fast?

Now the combination of a programmer with a tool (program) that can be
used to make a better tool. This gives a better human-machine
combination, which then can be used to further improve the combination.
I don't think I have completely proven my point now, but since the
danger is very real and big, coming close is already reason enough to
watch this carefully. Why hasn't it happened yet with lisp? I don't
know, why didn't the world get destroyed by all out atomic warfare?
Couldn't it have happened?

If we create AI why would AI keep us around if we ourselves won't even
hire people that do not comply to absurdly specific preconditions?
Don't we let our poor people starve in the undeveloped countries or
even in our own cities? If we want to prove we belong to the next world
we should start now. Open work communities where everyone can start
working and get paid. The same thing as open source code or usenet but
now with money for everyone.

Anton

'sorry, I don't want to start a flamewar, but I really believe what I
wrote here'

Luis M. González

unread,
Dec 28, 2005, 11:06:35 AM12/28/05
to
Anton Vredegoor wrote:

> Google's not a nice company (yeah, I know I'm posting from a google
> account). If you look at their job requirements it's clear they will
> only hire people with long backstabbing histories. There seems to be no
> room left for world improving undamaged souls in that company.
>
> > (Especially if he uses PyPy to experiment and play in ... :)
>
> Yes PyPy could save Python, or destroy the world. I have the impression
> not many enough people realize that a selfhosting programming language
> is something on the same level as a nano assembler or an artificial
> intelligence. There is not much time anymore for idealists to start
> trying to save the world, and I don't think we can count on google in
> that respect.


Huh?

Mike Meyer

unread,
Dec 28, 2005, 11:50:03 AM12/28/05
to
"Anton Vredegoor" <anton.v...@gmail.com> writes:
> Ok. That's a bit harder. I suppose we agree that if we have an
> intelligent program that is more intelligent than a human and have this
> program design an even more intelligent program than things start to
> accelerate pretty fast?

There's your fundamental flaw. Programs aren't intelligent, any more
than submarines swim.

> Now the combination of a programmer with a tool (program) that can be
> used to make a better tool. This gives a better human-machine
> combination, which then can be used to further improve the combination.

Key word: "tool". Nothing is said about the intelligence of said
tool. It doesn't have to be intelligent at all. It just has to be able
to do one single task better than the human. The intelligence in this
combination is coming from the human.

> I don't think I have completely proven my point now, but since the
> danger is very real and big, coming close is already reason enough to
> watch this carefully.

We aren't any closer to having a "real" AI than we were in the 60s. On
my list of man-made, world-ending catastrophes, a world-dominating AI
is easily outranked by grey goo, and just barely beats out the nine
billion names of god.

> 'sorry, I don't want to start a flamewar, but I really believe what I
> wrote here'

I think you're taking to many bad scifi movies seriously.

<mike
--
Mike Meyer <m...@mired.org> http://www.mired.org/home/mwm/
Independent WWW/Perforce/FreeBSD/Unix consultant, email for more information.

Fredrik Lundh

unread,
Dec 28, 2005, 12:23:39 PM12/28/05
to pytho...@python.org
Mike Meyer wrote:

> We aren't any closer to having a "real" AI than we were in the 60s.

note that the name of the the poster who started this thread only needs minimal
adjustments to become an anagram for "alien lizard AI", which might indicate that
the government has access to some kind of AI, but that it's completely useless.

</F>

Robert Kern

unread,
Dec 28, 2005, 12:58:33 PM12/28/05
to pytho...@python.org
Anton Vredegoor wrote:
> Robert Kern wrote:
>
>>I have a friend who works at Google. He has no backstabbing history at all. Stop
>>insulting my friends.
>
> Your friends work for people who would never hire me.

This is not a crime.

> My resume sucks,
> but I'm not a bad person or a mediocre programmer.

Okay. Still has nothing to do with my friend or anyone else who works at Google.
Still doesn't mean my friend has a "backstabbing history," whatever that is.

> They sold out.

<rolls eyes> No, he accepted a job. He has a family to feed. Google may or may
not be unethical, but their requirement for experienced developers is not
unethical. Just because they might not hire you doesn't mean they are unethical.
They simply have needs that you can't fill.

Your sense of entitlement is showing.

>>For Software Engineer:
>>
>>"""
>>Requirements:
>>
>> * BS or MS in Computer Science or equivalent (PhD a plus).
>
> Right here.
>
>> * Several years of software development experience.
>> * Enthusiasm for solving interesting problems.
>> * Experience with Unix/Linux or Windows environments, C++ development,
>>distributed systems, machine learning, information retrieval, network
>>programming and/or developing large software systems a plus.
>>"""
>>
>>I don't see any "damaged soul" requirement.
>
> I do. Experience here is an eufemism for having worked for the man.

Who is "the man"? If Google were to hire you with no experience, would you then
have "worked for the man"?

>>>>(Especially if he uses PyPy to experiment and play in ... :)
>>>
>>>Yes PyPy could save Python, or destroy the world. I have the impression
>>>not many enough people realize that a selfhosting programming language
>>>is something on the same level as a nano assembler or an artificial
>>>intelligence.
>>
>>??? What the hell are you smoking? We already have self-hosting programming
>>languages.
>
> Yes. We have humans too.

Some Lisps are self-hosting. C is self-hosting. The world is not yet destroyed.
Do you understand what "self-hosting" means?

>>>Anton
>>>
>>>'make my day, prove me wrong'
>>
>>Prove yourself right.
>
> Ok. That's a bit harder. I suppose we agree that if we have an
> intelligent program that is more intelligent than a human and have this
> program design an even more intelligent program than things start to
> accelerate pretty fast?

PyPy will not bring about the Singularity.

Hans Nowak

unread,
Dec 28, 2005, 1:03:52 PM12/28/05
to
Robert Kern wrote:

> PyPy will not bring about the Singularity.

But if it did, imagine how cool that would look on the developers
resumes... :-)

--
Hans Nowak
http://zephyrfalcon.org/

sk...@pobox.com

unread,
Dec 28, 2005, 1:34:34 PM12/28/05
to Hans Nowak, pytho...@python.org

Hans> Robert Kern wrote:
>> PyPy will not bring about the Singularity.

Hans> But if it did, imagine how cool that would look on the developers
Hans> resumes... :-)

+1 QOTW

Skip

John J. Lee

unread,
Dec 28, 2005, 4:48:23 PM12/28/05
to pytho...@python.org
"Harald Armin Massa" <haraldar...@gmail.com> writes:
[...]

> Allow me to quote Greg Stein:
> "Ha! Guido would quit in a heartbeat if you tried to make him manage
> people. That just isn't where he's at. He's absolutely brilliant and
> loves to write excellent code. Great. We're gonna let him do just that
> :-)"
[...]

Guido may or may not realise it, but he seems to have been managing
people (in some sense of 'managing', anyway) quite successfully over
the past decade or so.


John

sk...@pobox.com

unread,
Dec 28, 2005, 5:17:42 PM12/28/05
to John J. Lee, pytho...@python.org

John> Guido may or may not realise it, but he seems to have been
John> managing people (in some sense of 'managing', anyway) quite
John> successfully over the past decade or so.

Sssh! Don't tell him! Hopefully the PSU won't find out and

Ilias Lazaridis

unread,
Dec 29, 2005, 4:47:19 AM12/29/05
to
Martin P. Hellwig wrote:
> Ilias Lazaridis wrote:
> <cut>
>
>>> The only thing that holds "you" theoretically back is "acknowledged
>>> authority by the participating group _and_ yourself" and of course
>>> the resource for "restricted" information.
>>
>> what do you mean by "resource for "restricted" information"?
>>
> Well, I mean that you should know before the others that Guido is
> working for google otherwise such a publication is a bit late :-),
> nevertheless better late then never.

I operate only based on publically available information.

Possibly you have something missunderstood (or I have explained missleading)

here is the actual diagramm:

http://lazaridis.com/efficiency/graph/index.html

>>> For the first part you got my vote, for second, well that should grow
>>> in time.
>>
>> second part = "resource for "restricted" information" ?
>
> yup
> <cut>

ok.

[I will answer to the other messages of this thread later]

.

--
http://lazaridis.com

Martin P. Hellwig

unread,
Dec 29, 2005, 6:33:54 AM12/29/05
to
Ilias Lazaridis wrote:
<cut>
I'm suspecting that we have different definitions (or at least the
implications of that) of used terms.
I think it's important to first define these definition in a form
acceptable to both of us.

In the link you gave, the title was "Efficiency Management".
Now I believe that in _most_ implementations the words in the titles are
mutual exclusive. So my first question is, please define "Efficiency" my
second one is, please define "Management".

--
mph

Ilias Lazaridis

unread,
Dec 29, 2005, 7:14:50 AM12/29/05
to

"
* The terminology is not yet aligned to commonly used business or
standards organisation terminology [like e.g. ISO].
* This will happen after the process definition has finalized.
"
source: http://lazaridis.com/efficiency/process.html (V 0.8c - alpha)

-

I am a few steps from having the final diagramms ready, then I can align
the terminology (e.g. asking for feedback, thus people can detect
existent constructs and suggest terminology changes)

I'll send you an email with some details (thus we don't discuss this
off-topic in public).

.

--
http://lazaridis.com

Ilias Lazaridis

unread,
Dec 29, 2005, 8:34:29 AM12/29/05
to
Anton Vredegoor wrote:
> Robert Kern wrote:
>
>
>>I have a friend who works at Google. He has no backstabbing history at all. Stop
>>insulting my friends.
>
> Your friends work for people who would never hire me. My resume sucks,
> but I'm not a bad person or a mediocre programmer. They sold out.
>
>>For Software Engineer:
>>
>>"""
>>Requirements:
>>
>> * BS or MS in Computer Science or equivalent (PhD a plus).
>
> Right here.

This requirement is really funny.

I thought google is somehow different.

>> * Several years of software development experience.
>> * Enthusiasm for solving interesting problems.
>> * Experience with Unix/Linux or Windows environments, C++ development,
>>distributed systems, machine learning, information retrieval, network
>>programming and/or developing large software systems a plus.
>>"""
>>
>>I don't see any "damaged soul" requirement.
>
> I do. Experience here is an eufemism for having worked for the man.

I think I understand your thought.

Although I have very much experience, I have not "worked for the man":

http://lazaridis.com/resumes/lazaridis.html

which would mean that Google would not hire me.

[No problem, it's their lost.]

[...]


>>Prove yourself right.
>
> Ok. That's a bit harder. I suppose we agree that if we have an
> intelligent program that is more intelligent than a human and have this
> program design an even more intelligent program than things start to
> accelerate pretty fast?

ok

> Now the combination of a programmer with a tool (program) that can be
> used to make a better tool. This gives a better human-machine
> combination, which then can be used to further improve the combination.

=> high evolutive system

http://lazaridis.com/core/system/evolution.html

> I don't think I have completely proven my point now, but since the
> danger is very real and big, coming close is already reason enough to
> watch this carefully. Why hasn't it happened yet with lisp? I don't
> know,

http://lazaridis.com/core/eval/lisp.html

> why didn't the world get destroyed by all out atomic warfare?
> Couldn't it have happened?

Of course.

But we should focus on that it don't happen in future.

> If we create AI why would AI keep us around if we ourselves won't even
> hire people that do not comply to absurdly specific preconditions?
> Don't we let our poor people starve in the undeveloped countries or
> even in our own cities? If we want to prove we belong to the next world
> we should start now. Open work communities where everyone can start
> working and get paid. The same thing as open source code or usenet but
> now with money for everyone.

Very nice thoughts - but just thoughts.

You should act.

As a first step, you should have your thoughts collected on a website,
thus you can point to them.

And then comes the difficult thing:

Transforming thoughts to real-life actions.

I'll contact you via email, thus this thread remains 'clean'.

> Anton
>
> 'sorry, I don't want to start a flamewar, but I really believe what I
> wrote here'

.

--
http://lazaridis.com

Michael Schneider

unread,
Dec 29, 2005, 9:28:11 AM12/29/05
to
Congratulations to Guide,

Mike

Harald Armin Massa wrote:
> Guido at Google: a message in THE public forum c.l.p.
>
> A confirmation by Martellibot, that Guido is IN FACT sitting 15m
> distant from him; and everybody in Python knows where Martellibot has
> his desk.
>
> Can it get more official than this?
>
> yeah:
> a confirmation by Greg Stein @ Google within slashdot, that Guido is
> working at Google.
>
> I am sure that more people in the Python community are reading c.l.p.
> and /. than the washington post, the people affected have been
> informed.
>
> I guess that's as formal and official as it can get.
>
> And concerning Guido, Python, community and leadership:
>
> Guido is the designer, the creator of Python. He has nearly unlimeted
> trust in his design decisions: we all know, that he is THE gifted
> language designer. His proclamations are accepted because he has proven
> over time that he knows what's best for the language.


>
> Allow me to quote Greg Stein:
> "Ha! Guido would quit in a heartbeat if you tried to make him manage
> people. That just isn't where he's at. He's absolutely brilliant and
> loves to write excellent code. Great. We're gonna let him do just that
> :-)"
>

> So, Google with their geek-version of the Playboy-Mansion, free massage
> parleurs, free lunch and dinner and best recruitment tactics on the
> planet and the known universe will not be able to make Guido manage
> people.
>
> Somehow the Python community managed itself through the years... Python
> grew healthy and steadily; forked less then usual, inspired other
> languages and got faster and faster and faster.
>
> Maybe only mediocre and less ideas need a great leader. Maybe a great
> idea can lead for itself?
>
> Harald
>
> --
> GHUM Harald Massa
> persuadere et programmare
> Harald Armin Massa
> Reinsburgstraße 202b
> 70197 Stuttgart
> 0173/9409607
>


--
The greatest performance improvement occurs on the transition of from
the non-working state to the working state.

Martin P. Hellwig

unread,
Dec 29, 2005, 9:38:39 AM12/29/05
to Ilias Lazaridis
> Ilias Lazaridis wrote in email:
> Hi,
>
> just point me to a website you are related to (your personal one,
your business one, ...) and I'll initialize the process, as defined in
the draft-document:
>
> http://lazaridis.com/efficiency/textual.html
>
> -
>
> What I need at this point:
>
> - Website adress
> - your requirements & constraints for my processing
>
> .
>

Hey,

I respond on your "private" mail and list in one and to both, I don't
regard this as off-topic because it is still in regard of your OP,
although that post can be seen as a bait to go OT.

I didn't ask you for making an analyze, I asked you for your definitions
because I think they are not the same as used in my contexts.

Now definitions like the ones in the dictionary are all fine and such
but it still doesn't say what the strings are, for example communication
is a word used to describe the process of information transfer (by
whatever means, could be smoke signals or drum sounds for my part).
Information transfer is a broad term raising immediately the question:
"Transfer? ..... In what direction?"
The answer depends on the situation, if both parties are equal in terms
of information authority, the transfer will resemble a dialog i.e. two way.
If both parties are not on par in terms of information authority, the
transfer will resemble a monolog i.e. one way.
Now this is taken in the extremes, in reality there are usual more than
2 parties and the information authority can vary on the subject while
the subjects are still related with each other (no wonder why there is
so much miscommunication).

An interesting note is that to describe the relation of communication I
have to use another term, "information authority", this term is IMHO
very important and very difficult because you can not define this term
in such a way that it's acceptable for all involving parties without
being authoritative on that specific information piece. Unfortunately
these kind of situations are all but rare just take a look at
http://en.wikipedia.org/wiki/Bootstrap .

Which leads to the interesting question, when is someone authoritative
on information without the use of ipsedixitism.
The answer is IMO actually quite simple: Never, your only authoritative
if others accept you as being authoritative, of course this can be
enforced by various means, like the use of hierarchy or religion.
However more modern organization revert to the use of democracy
(everybody has an equal vote) or play along (if you don't like, you are
not enforced to stay, so accept it or beat it) because if you let
people decide for them self who is authoritative for them it's easier
for that authority to be accepted as such.

Now I don't say that I'm right here and you are not, actually I'm still
puzzled about what your intention of your original post was anyway.
Thus what I said above should also apply to myself, so I do not have the
authority by myself to say that I'm authoritative to say that I'm right
and you are not, but what are your reasons to assume that you are
authoritative over me? (This is a genuine question and not intended as
rhetorical)

So the sum it up my unanswered question to you so far are:
- What is your definition of "Efficiency"
- What is your definition of "Management"
- What is you definition of "Communication" (to compare it with mine above)
- What are your reasons that I should accept you as authoritative on the
subject of "Efficiency Management"?
- What has all that to do with Python except for that Guido is related
to Google and Python?

--
mph

Ilias Lazaridis

unread,
Dec 29, 2005, 10:08:16 AM12/29/05
to
> Hey,
>
> I respond on your "private" mail and list in one and to both, I don't
> regard this as off-topic because it is still in regard of your OP,
> although that post can be seen as a bait to go OT.

You should not reproduce private conversation on public media.

> I didn't ask you for making an analyze, I asked you for your definitions
> because I think they are not the same as used in my contexts.

[...]

Making an small analysis can assist you to understand the terminology
(and me to align the terminology). You are free to reject this.

As I am free to terminate the discussion here.

Feel free to contact me with private email (after a few hours).

Thank you.

.

--
http://lazaridis.com

Chris Smith

unread,
Dec 29, 2005, 3:29:53 PM12/29/05
to
>>>>> "John" == John J Lee <j...@pobox.com> writes:

John> Guido may or may not realise it, but he seems to have been
John> managing people (in some sense of 'managing', anyway) quite
John> successfully over the past decade or so.


John> John

Just you shush!
If he hears you, he'll return to being a newt!

Chris

Ilias Lazaridis

unread,
Dec 30, 2005, 10:29:29 AM12/30/05
to
Martin P. Hellwig wrote:
[...] - (complex elaborations)

> So the sum it up my unanswered question to you so far are:
> - What is your definition of "Efficiency"

http://lazaridis.com/efficiency/definitions.html

(as stated on the website, any feedback is welcome. But please not
within this thread).

> - What is your definition of "Management"

I have none (I use internally the hellenic word, which explains/defines
itself)

> - What is you definition of "Communication" (to compare it with mine above)

I have none (there was no need for me to define, and at this point its
not a priority).

> - What are your reasons that I should accept you as authoritative on the
> subject of "Efficiency Management"?

a) The process itself

you can verify it on my website.


b) Rate the public application/verification of the process

this is difficult, as the major evaluations (NetBeans, Eclipse) are huge
and complex to follow (google archives)


d) Reference Customers

(they are not available yet)


c) Initiate a Free Website Review (the simplest way):

http://lazaridis.com/services/index.html

and rate the results


> - What has all that to do with Python except for that Guido is related
> to Google and Python?

Python is still on my list of possible languages for a long-term project.

Thus I am still evaluating it.

This thread here is part of a python evaluation:

http://lazaridis.com/core/eval/index.html

.

--
http://lazaridis.com

Alex Martelli

unread,
Jan 1, 2006, 8:57:27 PM1/1/06
to
Anton Vredegoor <anton.v...@gmail.com> wrote:
...

> Google's not a nice company (yeah, I know I'm posting from a google
> account). If you look at their job requirements it's clear they will
> only hire people with long backstabbing histories.

Such as...? Guido van Rossum? Greg Stein? Vint Cerf? Ben Goodger?
Please DO share your insider-information about the "long backstabbing
histories" of each and every one of these people, I'm sure it will be
most fascinating (as well as useful for self-protection to future
potential victims), and, after all, they ARE all rather public
figures... TIA!


Alex

Ilias Lazaridis

unread,
Jan 2, 2006, 1:00:04 AM1/2/06
to

The employees you've mentioned should have most possibly the basic
google employment requirement: BS or MS... [1].

This requirement from Google exists in nearly all other IT companies.

Without BS or MS you cannot have a "long back reaching history" - and
thus experience.

This is the main objection of Mr. Vredegoor.

-

I assume that Mr. Vredegoor uses the term "backstabbing" incorrect. Most
possibly he meand just something like "back reaching".

Possibly he can confirm.

btw: I don't understand exactly what Mr. Vredegoor means by "having
worked for the man".

Possibly he can clarify concisely.

-

Mr. Martinelli, you seem to know python.

May you can showcase how to overcome some of the limitations
(limitations in context of the evaluation template):

http://lazaridis.com/case/lang/python.html

My Best Regards.

-

[1]
(copied from within this thread):
"""
Requirements:

* BS or MS in Computer Science or equivalent (PhD a plus).

* Several years of software development experience.
* Enthusiasm for solving interesting problems.
* Experience with Unix/Linux or Windows environments, C++ development,
distributed systems, machine learning, information retrieval, network
programming and/or developing large software systems a plus.
"""

.

--
http://lazaridis.com

Alex Martelli

unread,
Jan 2, 2006, 1:56:43 AM1/2/06
to
Ilias Lazaridis <il...@lazaridis.com> wrote:
...

> >>only hire people with long backstabbing histories.
> >
> > Such as...? Guido van Rossum? Greg Stein? Vint Cerf? Ben Goodger?
...

> The employees you've mentioned should have most possibly the basic
> google employment requirement: BS or MS... [1].

... "or equivalent" (I do believe all I named have at least a Bachelor
degree, but with the undisputable results they've shown afterwards, I
think they'd all meet the "or equivalent" clause anyway).

> I assume that Mr. Vredegoor uses the term "backstabbing" incorrect. Most
> possibly he meand just something like "back reaching".
> Possibly he can confirm.

Let's wait for him to confirm or deny; I thought he did mean what he
said.


> btw: I don't understand exactly what Mr. Vredegoor means by "having
> worked for the man".
> Possibly he can clarify concisely.

By all means, let's hope he does. In the jargon of the American
underclass, "to work for The Man" meant working for law enforcement
agencies, and somehow it got widened to "working for ``the system''",
i.e., in a "socially respectable" job. Maybe in Dutch it means
something different.


> Mr. Martinelli, you seem to know python.

Sorry, that's a brand of sparking apple cider. I get my name mispelled
that way often enough, since I moved to the US, to have become quite
sensitive about it!-) In MY name, there is no "in"...

> May you can showcase how to overcome some of the limitations
> (limitations in context of the evaluation template):
>
> http://lazaridis.com/case/lang/python.html

re: #LIMITATION: automated get/set methods via var-name not available
see the 'property' built-in.

re: LIMITATION: InstanceVarName not available
since any object at a given time may be bound to any number of names,
from 0 upwards, and none of them has any privileged relation with the
object, this will never be solved. If you think an object should have a
name with some privileged relation to it, I strongly suggest you switch
to another language.

"prints Class Definition (methods, fields), without code
LIMITATION: no direct access on object-model-level"
not sure what you mean, but maybe see the 'inspect' module.

"#LIMITATION: attribute is not available systemwide in every object
#LIMITATION: attribute is not on object-model-level
#LIMITATION: Operation is not Object Oriented
"
If you think that the syntax x(y,z) is "not Object Oriented", then again
I strongly suggest that you switch to other languages (avoiding other
powerful object oriented languages such as Dylan, Lisp, or O'CAML, which
also allow usage of function-call notation for THEIR OO power); in other
words, if you think the mere presence of a syntax like 'y.x(z)' makes
any difference wrt accessing a functionality versus 'x(y, z)', you're
clearly evaluating things at a totally inappropriate level.

The notation you choose, setattr(Object, "meta", "Some meta
information"), is, at any rate, absolutely semantically identical to
Object.meta = "Some meta information" -- they will both succeed or both
fail, and when they both succeed they will have identical effects; thus,
that point about "not Object Oriented" seems to fall somewhere between
embarassingly wrong, and crazy-level weird.

It IS true that in Python you cannot set arbitrary attributes on
arbitrary objects. The workaround is to use a dict, indexed by the id
of the object you want to "set arbitrary attributes on"; this has the
helpful consequence that separate namespaces are used, so your arbitrary
setting of metadata cannot interfere with the `true' attributes of the
object in question.

I'm unable to understand what you're trying to do in the "extend talker
code" box following that one.

Alex

Ilias Lazaridis

unread,
Jan 2, 2006, 6:03:17 AM1/2/06
to
Alex Martelli wrote:
> Ilias Lazaridis <il...@lazaridis.com> wrote:
> ...
>


note: Anton Vredegoor wrote:
>>>>only hire people with long backstabbing histories.
>>>
>>>Such as...? Guido van Rossum? Greg Stein? Vint Cerf? Ben Goodger?
> ...
>
>>The employees you've mentioned should have most possibly the basic
>>google employment requirement: BS or MS... [1].
>
> ... "or equivalent" (I do believe all I named have at least a Bachelor
> degree, but with the undisputable results they've shown afterwards, I
> think they'd all meet the "or equivalent" clause anyway).

" * BS or MS in Computer Science or equivalent (PhD a plus). "

This referes to an _academic_ degree.

Very few companies make an explicit statement about non-academic applicants.

It seems Google does not.

>>I assume that Mr. Vredegoor uses the term "backstabbing" incorrect. Most
>>possibly he meand just something like "back reaching".
>>Possibly he can confirm.
>
> Let's wait for him to confirm or deny; I thought he did mean what he
> said.

yes, I've become curious.

>>btw: I don't understand exactly what Mr. Vredegoor means by "having
>>worked for the man".
>>Possibly he can clarify concisely.
>
> By all means, let's hope he does. In the jargon of the American
> underclass, "to work for The Man" meant working for law enforcement
> agencies, and somehow it got widened to "working for ``the system''",
> i.e., in a "socially respectable" job. Maybe in Dutch it means
> something different.

"socially respectable" would fit.

but let's await his comments.

>>Mr. Martinelli, you seem to know python.
>
> Sorry, that's a brand of sparking apple cider. I get my name mispelled
> that way often enough, since I moved to the US, to have become quite
> sensitive about it!-) In MY name, there is no "in"...

Mr. Martelli, I apologize for naming you like an soft-drink.

-

Python vs jamLang follows:

>>May you can showcase how to overcome some of the limitations
>>(limitations in context of the evaluation template):
>>
>>http://lazaridis.com/case/lang/python.html
>
> re: #LIMITATION: automated get/set methods via var-name not available
> see the 'property' built-in.

Can you (or some reader) sent (or fill in) the relevant code?

> re: LIMITATION: InstanceVarName not available
> since any object at a given time may be bound to any number of names,
> from 0 upwards, and none of them has any privileged relation with the
> object, this will never be solved. If you think an object should have a
> name with some privileged relation to it, I strongly suggest you switch
> to another language.

=> the limitation "InstanceVarName not available" is true.

(I will change the evaluation-template and move this step to the "Expert
Reflective Data Access").

> "prints Class Definition (methods, fields), without code
> LIMITATION: no direct access on object-model-level"
> not sure what you mean, but maybe see the 'inspect' module.

=> Clas Definition is not accessible via MetaClasses
(possible workaround: inspect module)

> "#LIMITATION: attribute is not available systemwide in every object
> #LIMITATION: attribute is not on object-model-level
> #LIMITATION: Operation is not Object Oriented
> "
> If you think that the syntax x(y,z) is "not Object Oriented", then again
> I strongly suggest that you switch to other languages (avoiding other
> powerful object oriented languages such as Dylan, Lisp, or O'CAML, which
> also allow usage of function-call notation for THEIR OO power); in other
> words, if you think the mere presence of a syntax like 'y.x(z)' makes
> any difference wrt accessing a functionality versus 'x(y, z)', you're
> clearly evaluating things at a totally inappropriate level.

I assure you: the level is totally appropriate.

> The notation you choose, setattr(Object, "meta", "Some meta

I did not choose it.

Someone has posted it.

> information"), is, at any rate, absolutely semantically identical to
> Object.meta = "Some meta information" -- they will both succeed or both
> fail, and when they both succeed they will have identical effects; thus,
> that point about "not Object Oriented" seems to fall somewhere between
> embarassingly wrong, and crazy-level weird.

=> Object.meta = "Some meta information"
=> can be used instead of setattr(Object, "meta", "Some metainformation")

> It IS true that in Python you cannot set arbitrary attributes on

=> #LIMITATION: Cannot add arbitrary attributes to arbitrary objects.

> arbitrary objects. The workaround is to use a dict, indexed by the id
> of the object you want to "set arbitrary attributes on"; this has the
> helpful consequence that separate namespaces are used, so your arbitrary
> setting of metadata cannot interfere with the `true' attributes of the
> object in question.

=> possible workaround: use dict.

> I'm unable to understand what you're trying to do in the "extend talker
> code" box following that one.

Someone has posted this code, to solve "Applying metadata (or
attributes, as you prefere) to Class, Object, ...".

I understand that the poster has send code which does not work.

-

see the ruby result as a reference:

http://lazaridis.com/case/lang/ruby/base.html

-

If you (or any reader) like, please provide the concrete code to solve
the open limitations (the simple ones, like e.g. get/set).

Thank you for taking the time to answer.

.

--
http://lazaridis.com

Anton Vredegoor

unread,
Jan 2, 2006, 7:37:59 AM1/2/06
to
Alex Martelli wrote:

No insider information is necessary, the job requirements make it
absolutely clear (at least to me) that Google is a company with an
elitist culture, just like most universities. In fact I am convinced
that universities (and this time I have extensive, first person and
historic information) are elitist.

We can discuss that if you want but to me it's appararent that *titles*
are a strong indication of elitism. Further more I am convinced that
universities spend about 95 percent of their effort into maintaining
the hierarchy (socializing the students), and spend almost no time on
creating new knowledge. A kind of 'piltdown' phenomenon.

Also when considering this massive scientific fraude (because that's
what it is) it is very illustrative to use the same deconstructing
methods that Randi, if that's not the name of a beverage, no:

http://en.wikipedia.org/wiki/James_Randi

uses to discredit paranormal phenomena. For example, careers are
"construed" because scientific success is credited to persons higher in
the hierarchy and mistakes are the faults of research assistents or
students. Only if this system breaks down we see reports of "scientific
fraude" in the media, which according to me is more a sign of the
social network around the scientist collapsing than it is a sign of
their research data being any more "fabricated" than other scientific
data.

There is a lot of this inbred and invisible corruption everywhere in
our societies and I tried to name it by using the term "working for the
man" by which I meant throwing away ones own moral compass and
confining ones efforts to further the interests of a small sub-system
(like soldiers) and thereby stabbing oneself and the rest of humanity
in the back (figuratively) and often not even sparing coworkers in
order to please the master.

Why is this not absolutely clear and apparent? Because when trying to
"feed ones wife and children" it is almost impossible to do so without
*proving* that one has *experience* in working for these corrupt
entities (and possibly having become corrupt oneself) and doing a lot
for the community but still being blind to the faults of ones employer
does count as condoning corruption, at least in my world.

Most people can survive (without damaging their souls so to speak) when
working for corruption themselves in this way, but sooner or later one
is asked to corrupt others (defending one's title during a promotion,
leading a community and so on). This is the crucial point where
corruption definitively occurs: where silence is not enough anymore to
keep one employed.

The human brain can withstand extreme amounts of conficting sensory
data and still maintain a sense of continuity and order while from all
sides things seem to fall apart. Such continuity is highly valuable
because it is the only thing that keeps chaos at arms length. The same
thing can be applied to whole societies (see for example the state
American politics is in now). So that is the reason these kind of
things normally are swept under the carpet.

However for *me* personally, because I am deserted by my government,
the university community, friends and family, and left to fend for
myself, there is no pressing need to keep up the facade so I can
finally see it for what it is.

I hope this answers some of your questions about my position. Anyway, I
think its better to talk about positive things, like trying to convince
google to hire any and all people who can program irrespective of their
corruption history. For example to help manning their commercial "ask
google" service. I read that nowadays people can get payed for playing
*games*, by taking the virtual personae of people who don't have time
to play themselves.

Oh, and here [1] is another job posting, which seems a lot better than
the Google example IMO, but which still misses a plan for what to do
when thousands of programmers would apply and which also misses a
mission statement for what they plan to do to save the world community
from becoming slaves to a select group of elitists hiding behind
webservices. The junior/senior divisioning in the job offerring below
worries me too. Well I guess it's a step by step process, but if it
were my call (which it obviously isn't, and maybe deciding on the basis
of this data is premature anyway) I'd rather have Guido working there
instead of at google.

Anton

[1]

(snipped from http://www.python.org/Jobs.html)

Posted 19-DEC-2005

Job Description: Senior and Junior positions available. We're building
a small team of outstanding, hard-working engineers dedicated to
solving interesting problems, writing great code and having a lot of
fun doing it.

Run by an engineer, this work environment is a meritocracy. You will be
working on a redesign and rewrite of an existing PHP web application
using a more deserving language/platform as well as developing new
features. This is a high volume system - if you dig concurrency, you
will not be bored. Must be able to handle the excitement.

Requirements: We're looking for great engineers, so we don't care about
your age or education. Python and SQL a must, PHP a plus, C a big
benefit, don't mention Java <0.5 wink>. Understanding of performance
and scalability issues, networking, event driven and multi-threaded
programming models and Async I/O are Goodâ„¢. If you've used Twisted,
call us right now.

Work conditions: Onsite in NYC strongly preferred, but don't let this
deter you - we can work with remote folks under the right conditions.
Competitive compensation - we know what good people are worth. Flex
time - relaxed culture - getting the job done is all that matters.

What Python is used for: Python/Twisted as middleware/app server.

Alex Martelli

unread,
Jan 2, 2006, 12:53:05 PM1/2/06
to
Ilias Lazaridis <il...@lazaridis.com> wrote:
...
> > ... "or equivalent" (I do believe all I named have at least a Bachelor
> > degree, but with the undisputable results they've shown afterwards, I
> > think they'd all meet the "or equivalent" clause anyway).
>
> " * BS or MS in Computer Science or equivalent (PhD a plus). "
>
> This referes to an _academic_ degree.

Ah, I see. It depends on the job; for example,
<http://www.google.com/support/jobs/bin/answer.py?answer=23641> phrases
the requirement in a more explicit way:

* BS in Computer Science or equivalent experience.

so it's obvious that instead of the academic degree "equivalent
experience" is accepted, while other job offers are very specific in
requiring SOME degree. I had always taken the shorter "or equivalent"
as standing for the same concept, "or equivalent experience", as is
spelled out for some jobs, rather than like, say,
<http://www.google.com/support/jobs/bin/answer.py?answer=23604> which is
very specific about requiring:

* A BS degree in mechanical, electrical or industrial technology.

> Very few companies make an explicit statement about non-academic applicants.
>
> It seems Google does not.

It seems we do, for some but not all of our job openings -- that "or
equivalent experience" being the key, where it appears (and, in my
personal opinion the shorter "or equivalent" not being poles apart - but
that's a separate issue of interpretation).

Of course, a candidate who's not already a legal resident of the country
where they want to work may face other issues, visa-related ones, that
are not decided by Google but rather by governments and legislatures of
the various countries involved. I know I did have, among other things,
to document my academic history to the satisfaction of the US Government
(not of Google;-) to obtain my visa, once Google had extended me an
offer, and I believe that getting a visa would have been an even bigger
hassle if I did not have a degree (still, it's _possible_: my compatriot
Roberto Benigni does not have an academic degree, yet he did manage to
get visas to come collect his Oscar prizes, act in Jarmusch's "Coffe and
Cigarettes", and so on;-).

> >>Mr. Martinelli, you seem to know python.
> >
> > Sorry, that's a brand of sparking apple cider. I get my name mispelled
> > that way often enough, since I moved to the US, to have become quite
> > sensitive about it!-) In MY name, there is no "in"...
>
> Mr. Martelli, I apologize for naming you like an soft-drink.

Thanks: if I have to get mis-spelled, I prefer the alternate
mis-spelling "Martel", which at least refers to a potable cognac!-)

> > re: #LIMITATION: automated get/set methods via var-name not available
> > see the 'property' built-in.
>
> Can you (or some reader) sent (or fill in) the relevant code?

# within file talker.py, class Talker: (take care of indentations)

def __init__(self):
self.name = ''
self.age = 0

def setName(self, value):
self.name = value

def getName(self):
return self.name

def setAge(self, value):
self.age = value

def getAge(self):
return self.age

zName = property(getName, setName)
zAge = property(getAge, setAge)

Normally, we would name the properties just 'name' and 'age' (and pick
different names for the internal attributes, such as '_name' and
'_age'), but in this case you're already using the plain names for the
attributes, so I've made up different varnames for the properties.

At any rate, with this class definition,
john.zName = 'John Doe Python'
john.zAge = 19
perform the calls to setName and setAge respectively.


> > "prints Class Definition (methods, fields), without code
> > LIMITATION: no direct access on object-model-level"
> > not sure what you mean, but maybe see the 'inspect' module.
>
> => Clas Definition is not accessible via MetaClasses
> (possible workaround: inspect module)

You can surely define a custom metaclass with methods that call
inspect.whatever, or directly perform whatever introspection you
require; it just seems strange to me to put this functionality in the
metaclass. At any rate, SOME code will need to execute to perform this
task, so "without code" cannot be accomplished. (Looking at your
evaluation of Ruby I note there's a LOT of code for this corresponding
case, indeed through inspect, despite the 'without code' specification).

Depending on what exactly you mean here, a simple dir() may in fact
suffice. For example:

>>> class Foo(object):
... def __init__(self): self.zap=23
... def zapper(self): return self.zap
...
>>> f=Foo()
>>> dir(f)
['__class__', '__delattr__', '__dict__', '__doc__', '__getattribute__',
'__hash__', '__init__', '__module__', '__new__', '__reduce__',
'__reduce_ex__', '__repr__', '__setattr__', '__str__', '__weakref__',
'zap', 'zapper']

The issues are obvious: you only get the names ('zap' and 'zapper' are
both just names here, no immediate indication of what's an instance
variable and what's a method instead) AND you get all the special names
as well, which clutters the results. Obviously (if you don't want
special names) you can easily filter this list of strings at a purely
string-processing level, and to distinguish methods from non-methods
takes just a little introspection. What module inspect does is provide
simple functions to perform such menial tasks -- nothing mysterious or
magic, you can read inspect.py to see the Python code in question.

>
> > "#LIMITATION: attribute is not available systemwide in every object
> > #LIMITATION: attribute is not on object-model-level
> > #LIMITATION: Operation is not Object Oriented
> > "
> > If you think that the syntax x(y,z) is "not Object Oriented", then again
> > I strongly suggest that you switch to other languages (avoiding other
> > powerful object oriented languages such as Dylan, Lisp, or O'CAML, which
> > also allow usage of function-call notation for THEIR OO power); in other
> > words, if you think the mere presence of a syntax like 'y.x(z)' makes
> > any difference wrt accessing a functionality versus 'x(y, z)', you're
> > clearly evaluating things at a totally inappropriate level.
>
> I assure you: the level is totally appropriate.

My point is that whether you call:

setattr(zap, zip, zop)

or

zap.__setattr__(zip, zop)

is a syntax trifle. The semantics are the same (setattr is defined to
call the __setattr__ method, net of "legacy" issues with oldstyle
classes), so the difference boils down to where exactly you're placing
what punctuation (parentheses, commas, dots), names and decorations in
the statement; describing such merely-syntactical minutiae of
punctuation-placement as "OO" vs "not OO" is making a mockery of the
whole concept of "object orientation".

Python has many similar cases, in which prefix or infix syntax is
defined to internally call specified method. For example, in Python,

a + b

IS "an OO operation" -- it calls a.__add__(b), or, if warranted,
b.__radd__(a), indeed forming a typical 'TemplateMethod' Design Pattern
-- even though it's clothed in infix syntax. And similarly, e.g., for
setattr, which is clothed in prefix ("functioncall") syntax instead.

>
> > The notation you choose, setattr(Object, "meta", "Some meta
>
> I did not choose it.
>
> Someone has posted it.

It's quite correct, it's just that there are alternatives.

> > information"), is, at any rate, absolutely semantically identical to
> > Object.meta = "Some meta information" -- they will both succeed or both
> > fail, and when they both succeed they will have identical effects; thus,
> > that point about "not Object Oriented" seems to fall somewhere between
> > embarassingly wrong, and crazy-level weird.
>
> => Object.meta = "Some meta information"
> => can be used instead of setattr(Object, "meta", "Some metainformation")

I'd put it the other way 'round, since assigning to Object.meta is the
simpler and most common approach (for an attribute name that's fixed).
setattr is generally used only when the attribute name is computed at
runtime (a variable or expression), because in that case there is no
more direct syntax for the task. getattr, in addition, has another use
case: you can provide a "default value" so that, if the attribute is
absent in the object, you get the default value rather than having to
field an exception (AttributeError). IOW, instead of:

try:
mymeta = Object.meta
except AttributeError:
mymeta = "No metainfo available"

you can code the simpler:

mymeta = getattr(Object, 'meta', "No metainfo available")

This is a reasonably frequent use case, since nobody particularly likes
using four "atomic actions" (try, etc) to express the unitary concept
"give me the 'meta' attribute, IF available, otherwise a default".

> > It IS true that in Python you cannot set arbitrary attributes on
>
> => #LIMITATION: Cannot add arbitrary attributes to arbitrary objects.

Correct. In particular, Python has a concept of IMMUTABLE objects:
objects which, once created, cannot be altered in any way. In
particular, you cannot add attributes (or change existing ones, etc) in
such "immutable", aka "constant", objects.

If any language you evaluate lacks the concept of immutable objects, be
sure to note the reciprocal "LIMITATION: cannot define immutable,
constant objects".

Python could do better (since some objects are mutable and still don't
support attribute-setting -- function objects for example used to be
that way, though that limitation was removed a few versions ago), but
giving up the important concept of "constant"/"immutable" objects would
not be right, so (given the inherent contradiction between having
something immutable and being allowed to add stuff to it) I dearly hope
it will never be possible to alter EVERY object.

Again looking at your evaluation of Ruby, it seems this point is
incorrect there: in Ruby, it's possible to ``freeze'' an object, making
it constant/immutable; once you've done so, you can't then "add
arbitrary" [[or non-arbitrary, for that matter!-)]] "attributes" to it.

If you consider it a limitation that "unchangeable objects cannot be
changed" (which, to me, is a mere DEFINITION of "unchangeable"!-), you
should record the alleged limitation explicitly in both cases.

>
> > arbitrary objects. The workaround is to use a dict, indexed by the id
> > of the object you want to "set arbitrary attributes on"; this has the
> > helpful consequence that separate namespaces are used, so your arbitrary
> > setting of metadata cannot interfere with the `true' attributes of the
> > object in question.
>
> => possible workaround: use dict.
>
> > I'm unable to understand what you're trying to do in the "extend talker
> > code" box following that one.
>
> Someone has posted this code, to solve "Applying metadata (or
> attributes, as you prefere) to Class, Object, ...".
>
> I understand that the poster has send code which does not work.

You mean something like...:

Talker.meta = "Class meta information"
john.meta = "Instance meta information"
Talker.sayHello.meta = 'method meta information"

You can't do that on an integer, because an integer is immutable; you
can't do it on 'Talker.name', because there IS no such thing as
'Talker.name' (if that's a limitation, it's also a limitation that you
can't do it on 'rumpelstiltskin.meta' either, and the reason is just the
same: there IS no such thing as rumpelstiltskin in this code).

There's no need to define this 'meta' attribute anywhere, it just
springs into existence when you assign to it.

Once you've set these, you can "print Talker.meta" etc etc.


> If you (or any reader) like, please provide the concrete code to solve
> the open limitations (the simple ones, like e.g. get/set).

Hope I've done that in the few cases where I understood what your
intentions were, but there must be more in which I didn't, such as the
strange "without code" specification.

> Thank you for taking the time to answer.

You're welcome.


Alex

Alex Martelli

unread,
Jan 2, 2006, 2:18:24 PM1/2/06
to
Anton Vredegoor <anton.v...@gmail.com> wrote:
...
> > > only hire people with long backstabbing histories.
> >
> > Such as...? Guido van Rossum? Greg Stein? Vint Cerf? Ben Goodger?
...

> No insider information is necessary, the job requirements make it
> absolutely clear (at least to me) that Google is a company with an
> elitist culture,

Absolutely yes, in terms of who we want to work at Google: we DO want
GREAT people. And we don't keep this a secret, either: right up there
at <http://www.google.com/jobs/>, we say "our strategy is simple: we
hire great people". Rather than hiring a LOT of people, we prefer to be
extremely, obsessively selective, and try to hire ONLY a few people,
ones who we can convince ourselves do deserve that adjective, "great".

This does mean that we definitely tend err on the side of caution, and
FAIL to hire some people who are also great, just because we can't
determine with sufficient certainty that they indeed are -- I've seen
this happen more than once, and deeply regret it (for both Google and
the person), but I have no idea how we could do better without relaxing
our extremely elitist standards (we do debate these issues internally
all of the time, trying to do better, but have found no magic wand yet).

But this has nothing to do with "only people with backstabbing
histories", which looks like an unsupported, generalized insult.

> just like most universities. In fact I am convinced
> that universities (and this time I have extensive, first person and
> historic information) are elitist.

No doubt they try to be, mostly (except where governments or other
institutions "twist their arms" to force them to admit huge masses of
students), but I've met many people with advanced degrees from even the
best/most elitist universities, such as Stanford or MIT, where it sure
looked to me as if the university's attempts to only graduate the very
best have definitely failed.

> We can discuss that if you want but to me it's appararent that *titles*
> are a strong indication of elitism. Further more I am convinced that

Requiring a certain title for a job is mostly a desperate attempt to
reduce the huge amount of work and effort it takes to hire great people,
whittling down the number of resumes to be considered divided by the
number of hires from the high thousands to the low hundreds. If there
were available infinite resources for the job of hiring/selection, we
could easily interview, say, 6000 candidates for a post, giving each a
week or so of concentrated attention to probe their abilities; alas,
this would require about 120 person-years from our people for the
selection process. So, if nobody at Google did ANYTHING BUT interview
candidates, given that we have a bit over 5000 employees now, we could
hire in the course of 2006 another 40 or so, without doing anything
else. (The numbers are all off the top of my head, but I think they may
be roughly the right orders of magnitude).

This is just impractical: we need to hire many more than 40, AND cannot
afford to have all existing employees do nothing but select new ones.
So, we need to shrink the ratio drastically, on both factors: say 10
instead of 40 hours of selection per candidate, and 50 rather than 6000
candidates being considered per post. So we perform selection in
stages, and most candidates out of those many thousands-per-job are
"weeded out" at the very first stage, e.g. by failing to meet specific
qualifications.

I wish that, as you say, "titles" were indeed strong indications of
excellence. Unfortunately, they aren't, but in some cases they're
better than nothing. Many of our job descriptions, as I pointed out in
another post on this thread, say "BS or equivalent experience" or words
to that effect; if you can show the "or equivalent", and can get past
the first hurdle, then that title is the least of the issues. For
example, if we advertised a job requiring "PhD or equivalent", and among
the candidates were Bill Gates, Larry Page, and Sergey Brin, none of
whom has obtained a PhD to the best of my knowledge, they would surely
be able to display the "or equivalent" based on their accomplishments
and experience, and thus get past that first hurdle.


> uses to discredit paranormal phenomena. For example, careers are
> "construed" because scientific success is credited to persons higher in
> the hierarchy and mistakes are the faults of research assistents or
> students. Only if this system breaks down we see reports of "scientific

Can you show that happening for Guido van Rossum, for example, or Greg
Stein? What "hierarchy" were they in, to enable them, as you're
accusing, to take credit for accomplishments that are not their own, and
deflect blame to poor maligned underlings?

You've made a very specific and insulting claim about Google hiring only
people with long histories of backstabbing, and yet it appears that
you're failing to substantiate it. Hurling such accusations (ones which
obviously must involve specific people, since the whole thread, as
indicated by the subject, starts with Guido's working for Google)
without being able to provide any substance is, in my strongly held
opinion, quite reprehensible, and doesn't reflect well on you.


> However for *me* personally, because I am deserted by my government,
> the university community, friends and family, and left to fend for
> myself, there is no pressing need to keep up the facade so I can
> finally see it for what it is.
>
> I hope this answers some of your questions about my position. Anyway, I
> think its better to talk about positive things, like trying to convince
> google to hire any and all people who can program irrespective of their
> corruption history.

People who distinguish themselves as outstanding contributors to
open-source projects can generally clear the "or equivalent" hurdle
without difficulty. Do you consider a history of such contributions to
be a "corruption history" and evidence of "backstabbing", too? To
emerge as such an outstanding contributor, titles are irrelevant: all
you need, besides willingness and ability to invest your time that way,
are outstanding technical ability (particularly in design and coding,
but testing and debugging are also very important, and so is a knack for
writing good documentation -- one can become an "outstanding
contributor" through many possible combinations of such skills) AND any
of a wide range of suitable character and personality traits.

To focus on the latter: I would never want Google to hire somebody, no
matter how great a programmer they might be, who can accuse, for
example, Guido van Rossum, of having a "long history of backstabbing",
without any substantial data to back up the accusation, just to vent
their frustration at their personal situation. You DID say that Google
hires ONLY people with long histories of backstabbing, and by the very
definition of the word "ONLY" this means you are accusing me, Guido,
Greg, etc, etc, of having "long histories of backstabbing" -- and after
hurling such insults, and providing NO specific data to support them,
you're hallucinating that you can now switch "to talk about positive
things"?!

One reason I'm so happy we've hired Guido is that, in addition to his
technical excellence, he's just a great guy, wonderful to work with.
Technical excellence is a necessary but not sufficient quality: one ALSO
needs suitable combinations of character and personality, and Guido has
them, in spades. There is an enormous variation of personalities and
character traits at Google (we DO value diversity!), but they all have
in common the fact that they can combine into small, fluid teams which
become even more productive than "the sum of their parts", because
teammates LIKE AND RESPECT AND TRUST each other. I do not see how
somebody whose behavior included such unsubstantiated "backstabbing"
accusations could be productive in this way.


And, about the job-posting you liked better...:

> Run by an engineer, this work environment is a meritocracy. You will be

To me, "meritocracy" and "elitism" are close to being synonyms, in most
contexts. "Meritocracy" is defined somewhere on the net as:
"""
A system of government whereby a particular standard of ability is used
as the basis by which political leadership is determined or accrues to
an existing elite.
"""
Note the connection with "elite", which in turn gives us "elitism". I
do like "meritocracy" because it specifically mentions *ability*, but of
course ability (including technical skill, which in turn is enhanced by
appropriate experience, AND 'softer' character/personality issues) is
what a successful firm bases its "elite" on (or tries to; if it fails,
and hires people bereft of sufficient ability, it won't prosper long).


Alex

Jaap Spies

unread,
Jan 2, 2006, 2:40:39 PM1/2/06
to


That all been said. My recommandation: hire that man!

Jaap

Martin P. Hellwig

unread,
Jan 2, 2006, 5:16:46 PM1/2/06
to
Anton Vredegoor wrote:
<cut description of modern western society>

>
> Most people can survive (without damaging their souls so to speak) when
> working for corruption themselves in this way, but sooner or later one
> is asked to corrupt others (defending one's title during a promotion,
> leading a community and so on). This is the crucial point where
> corruption definitively occurs: where silence is not enough anymore to
> keep one employed.
>
> The human brain can withstand extreme amounts of conficting sensory
> data and still maintain a sense of continuity and order while from all
> sides things seem to fall apart. Such continuity is highly valuable
> because it is the only thing that keeps chaos at arms length. The same
> thing can be applied to whole societies (see for example the state
> American politics is in now). So that is the reason these kind of
> things normally are swept under the carpet.
>
> However for *me* personally, because I am deserted by my government,
> the university community, friends and family, and left to fend for
> myself, there is no pressing need to keep up the facade so I can
> finally see it for what it is.
>
Modern life has modern problem, well that isn't quite true, the problems
are actually the same since the moment organisms began to group to
enlarge their chance of survival.
The funny thing is that the problem, in its essentials, is still the
same, how to enlarge the chance of survival, this time within the group.
"En zie daar" (pardon my dutch) we have created hierarchy and within
that the problem of the individuals identity versus the groups identity,
mix it with diplomacy and "unreal" friendship (the ones that are based
on a persons status) and you got enough material to create Hollywood and
everything that comes from it. If you add "take one for the group" you
got yourself an action movie.

Now theory is all fine and dandy especially if its common sense but
where does it leave us? Well most of the time, screwed, for the lack of
a better word. But is it fair to negatively mark people because their
personal identity for whatever reason fitted better to the common group
identity? Sure it's bitter but don't be bitter about it, you know
probably more then anybody else where that bitterness leads to.

What we can do about it? I have no clue, I'll just use that frustration
to work on a personal project or making a song on my guitar, but YMMV
;-). Perhaps being happy for somebody's else's luck is the key to ones
own happiness, at least it works for me.

Now luckily where on the Internet where anybody can be anybody or not if
they like to, at least everybody got a chance (not an equal one but
still) to show what they are worth of. Perhaps you could too?

I wish you the best of wisdom and luck and I mean that most sincerely.
<cut rest>

--
mph

Ilias Lazaridis

unread,
Jan 3, 2006, 4:04:17 AM1/3/06
to
Alex Martelli wrote:
> Ilias Lazaridis <il...@lazaridis.com> wrote:
> ...
>
>>>... "or equivalent" (I do believe all I named have at least a Bachelor
>>>degree, but with the undisputable results they've shown afterwards, I
>>>think they'd all meet the "or equivalent" clause anyway).
>>
>>" * BS or MS in Computer Science or equivalent (PhD a plus). "
>>
>>This referes to an _academic_ degree.
>
> Ah, I see. It depends on the job; for example,
> <http://www.google.com/support/jobs/bin/answer.py?answer=23641> phrases
> the requirement in a more explicit way:
>
> * BS in Computer Science or equivalent experience.
[...]

> <http://www.google.com/support/jobs/bin/answer.py?answer=23604> which is
> very specific about requiring:
>
> * A BS degree in mechanical, electrical or industrial technology.
>
>>Very few companies make an explicit statement about non-academic applicants.
>>
>>It seems Google does not.
>
> It seems we do, for some but not all of our job openings -- that "or

[...] - (comments, examples, elaborations)

I understand.

Ok, thus Google is flexible in this.

[sidenote: some jobs _require_ a degree by law]

So, I like Google again (in this context).

-

What about external independents ?

Does Google cooperate with them?

And how can one contact such a giant?

>>>>Mr. Martinelli, you seem to know python.
>>>
>>>Sorry, that's a brand of sparking apple cider. I get my name mispelled
>>>that way often enough, since I moved to the US, to have become quite
>>>sensitive about it!-) In MY name, there is no "in"...
>>
>>Mr. Martelli, I apologize for naming you like an soft-drink.
>
> Thanks: if I have to get mis-spelled, I prefer the alternate
> mis-spelling "Martel", which at least refers to a potable cognac!-)

hicc!

-

Python vs. jamLang follows:

>>>re: #LIMITATION: automated get/set methods via var-name not available
>>>see the 'property' built-in.
>>
>>Can you (or some reader) sent (or fill in) the relevant code?

[...] - (code, explanations)

thanks, I've changed this:

http://lazaridis.com/case/lang/python.html#simple_variable_access

this leads to a new limitation:

"#LIMITATION: large amount of repetitive code"

>>>"prints Class Definition (methods, fields), without code
>>>LIMITATION: no direct access on object-model-level"
>>>not sure what you mean, but maybe see the 'inspect' module.
>>
>>=> Clas Definition is not accessible via MetaClasses
>>(possible workaround: inspect module)
>
> You can surely define a custom metaclass with methods that call
> inspect.whatever, or directly perform whatever introspection you
> require; it just seems strange to me to put this functionality in the
> metaclass. At any rate, SOME code will need to execute to perform this
> task, so "without code" cannot be accomplished. (Looking at your

I meant: reproduce the definition of the class (but without reproducing
the source-code of the class)

I have removed the "without code" remark, which was missleading.

> evaluation of Ruby I note there's a LOT of code for this corresponding
> case, indeed through inspect, despite the 'without code' specification).

[...] - (code-level elaborations, implementation suggestions)

ok

>>>"#LIMITATION: attribute is not available systemwide in every object
>>>#LIMITATION: attribute is not on object-model-level
>>>#LIMITATION: Operation is not Object Oriented

[...]

>>I assure you: the level is totally appropriate.
>
> My point is that whether you call:
>
> setattr(zap, zip, zop)
>
> or
>
> zap.__setattr__(zip, zop)
>
> is a syntax trifle. The semantics are the same (setattr is defined to

[...] - (elaborations)

I've understood this.

[...]


>>=> Object.meta = "Some meta information"
>>=> can be used instead of setattr(Object, "meta", "Some metainformation")
>
> I'd put it the other way 'round, since assigning to Object.meta is the
> simpler and most common approach (for an attribute name that's fixed).
> setattr is generally used only when the attribute name is computed at
> runtime (a variable or expression), because in that case there is no
> more direct syntax for the task. getattr, in addition, has another use
> case: you can provide a "default value" so that, if the attribute is
> absent in the object, you get the default value rather than having to
> field an exception (AttributeError). IOW, instead of:
>
> try:
> mymeta = Object.meta
> except AttributeError:
> mymeta = "No metainfo available"
>
> you can code the simpler:
>
> mymeta = getattr(Object, 'meta', "No metainfo available")
>
> This is a reasonably frequent use case, since nobody particularly likes
> using four "atomic actions" (try, etc) to express the unitary concept
> "give me the 'meta' attribute, IF available, otherwise a default".

I understand now.

>>>It IS true that in Python you cannot set arbitrary attributes on
>>
>>=> #LIMITATION: Cannot add arbitrary attributes to arbitrary objects.
>
> Correct. In particular, Python has a concept of IMMUTABLE objects:
> objects which, once created, cannot be altered in any way. In
> particular, you cannot add attributes (or change existing ones, etc) in
> such "immutable", aka "constant", objects.

=> Python: immutable objects

> If any language you evaluate lacks the concept of immutable objects, be
> sure to note the reciprocal "LIMITATION: cannot define immutable,
> constant objects".

yes, you are right.

=> {New Requirement: ability to declare objects as mutable/immutable.}

> Python could do better (since some objects are mutable and still don't
> support attribute-setting -- function objects for example used to be
> that way, though that limitation was removed a few versions ago), but
> giving up the important concept of "constant"/"immutable" objects would
> not be right, so (given the inherent contradiction between having
> something immutable and being allowed to add stuff to it) I dearly hope
> it will never be possible to alter EVERY object.
>
> Again looking at your evaluation of Ruby, it seems this point is
> incorrect there: in Ruby, it's possible to ``freeze'' an object, making
> it constant/immutable; once you've done so, you can't then "add
> arbitrary" [[or non-arbitrary, for that matter!-)]] "attributes" to it.

I estimate that there is a "unfreeze" operation, too - which would lead
to flexibity.

> If you consider it a limitation that "unchangeable objects cannot be
> changed" (which, to me, is a mere DEFINITION of "unchangeable"!-), you
> should record the alleged limitation explicitly in both cases.

I think I've understood your elaborations.

[...]


>>>I'm unable to understand what you're trying to do in the "extend talker
>>>code" box following that one.
>>
>>Someone has posted this code, to solve "Applying metadata (or
>>attributes, as you prefere) to Class, Object, ...".
>>
>>I understand that the poster has send code which does not work.
>
> You mean something like...:
>
> Talker.meta = "Class meta information"
> john.meta = "Instance meta information"
> Talker.sayHello.meta = 'method meta information"
>
> You can't do that on an integer, because an integer is immutable; you

ok

> can't do it on 'Talker.name', because there IS no such thing as
> 'Talker.name' (if that's a limitation, it's also a limitation that you
> can't do it on 'rumpelstiltskin.meta' either, and the reason is just the
> same: there IS no such thing as rumpelstiltskin in this code).

ok

> There's no need to define this 'meta' attribute anywhere, it just
> springs into existence when you assign to it.

?

"assign to it" with:

setattr(Talker, 'meta', "Class meta information")

but _not_ with this:

Talker.meta = "Class meta information"

correct?

> Once you've set these, you can "print Talker.meta" etc etc.

ok

>>If you (or any reader) like, please provide the concrete code to solve
>>the open limitations (the simple ones, like e.g. get/set).
>
> Hope I've done that in the few cases where I understood what your
> intentions were, but there must be more in which I didn't, such as the
> strange "without code" specification.

clarified above.

>>Thank you for taking the time to answer.
>
> You're welcome.
>
> Alex

.

--
http://lazaridis.com

Duncan Booth

unread,
Jan 3, 2006, 4:41:42 AM1/3/06
to
Alex Martelli wrote:

> It IS true that in Python you cannot set arbitrary attributes on
> arbitrary objects. The workaround is to use a dict, indexed by the id
> of the object you want to "set arbitrary attributes on"; this has the
> helpful consequence that separate namespaces are used, so your arbitrary
> setting of metadata cannot interfere with the `true' attributes of the
> object in question.
>

That's a horrible suggestion (using id's, not the bit about separate
namespaces). If you use the id then attributes will persist beyond the
lifetime of the object and may suddenly reappear on other unrelated objects
later.

A better suggestion here would be to use weak references. Unfortunately,
not every Python object can be the target of a weak reference, so there is
a limitation here preventing a useful implementation for many builtin
types. I can't actually think of a use case for what Ilias wants, and if
there isn't a use case it isn't a big problem, but if anyone can come up
with a usecase please say.

BTW, I don't know Ruby enough to understand the example at
http://lazaridis.com/case/lang/ruby/base.html:

class Object
def meta # adds variable "meta" to all objects in the system
end

Talker.meta = "Class meta information"
john.meta = "Instance meta information"

1234.meta = 'any Instance meta information"

puts Talker.meta
puts john.meta
puts 1234.meta # an integer object

With the above code what would 'puts someexpressionresultingin1234.meta'
output? i.e. is the attribute being set on all integers with the value
1234, or just on a specific instance of an integer.

I don't know if the question even makes sense for Ruby, but it obviously
needs to be answered before similar code could be implemented for Python.

Anyway, subject to the restriction that it doesn't work for int, list,
tuple, etc. here is some code which lets you assign attributes the way I
think Ilias wants. Unlike the Ruby code it doesn't just dump them all in
the same namespace as other attributes, instead you have to create one or
more meta namespaces which then don't interfere at all with other
attributes on the objects, but which in other ways work just like
attributes (e.g. for the purposes of inheritance you can set an attribute
or a method on a base class and it works fine in instances of derived
classes.)

BTW, If anyone does actually want to use this, the attribute lookup code is
incomplete: completing it is left as a exercise.

------------- metaspace.py -------------------
from weakref import WeakKeyDictionary

class _Metanamespacewrapper(object):
def __init__(self, namespace, target):
self.__dict__['_namespace'] = namespace
self.__dict__['_target'] = target
d = namespace.d
if target not in d:
d[target] = {}
self.__dict__['_dict'] = d[target]

def __getattribute__(self, name):
if name.startswith('_'):
return object.__getattribute__(self,name)

if name in self._dict:
return self._dict[name]

t = type(self._target)
for klass in (t,)+t.__mro__:
try:
d = self._namespace.d[klass]
v = d[name]
except KeyError:
continue
break
else:
raise AttributeError, "meta namespace has no attribute '%s' on
object '%r'" % (name, self._target)

if hasattr(v, '__get__'):
return v.__get__(self._target)
return v

def __setattr__(self, name, value):
self._dict[name] = value

def __delattr__(self, name):
del self._dict[name]

class Metanamespace(object):
def __init__(self):
self.d = WeakKeyDictionary()

def __call__(self, target):
return _Metanamespacewrapper(self, target)

meta = Metanamespace()

# Example of use...

class Talker(object):
def sayHello(self):
print "Hello world"

john = Talker()

# Check simple access to attributes
meta(Talker).name = 'test'
print meta(Talker).name, meta(john).name

meta(john).name = 'a name'
john.name = 'real attribute' # Does not interfere with meta namespace
print meta(john).name, john.name

meta(object).arg = 5
print "arg=", meta(john).arg
meta(john).arg = 2
print "arg=", meta(john).arg
del meta(john).arg
print "arg=", meta(john).arg

def fn1(self, arg):
print "fn1", self, arg
def fn2(self, arg):
print "fn2", self, arg

# Check that methods work properly
meta(object).fn = fn1
meta(john).fn(1)
meta(Talker).fn = fn2
meta(john).fn(2)

-------------------------------------------------
The output is:

test test
a name real attribute
arg= 5
arg= 2
arg= 5
fn1 <__main__.Talker object at 0x009D9670> 1
fn2 <__main__.Talker object at 0x009D9670> 2

Ilias Lazaridis

unread,
Jan 3, 2006, 5:29:21 AM1/3/06
to
Alex Martelli wrote:
> Anton Vredegoor <anton.v...@gmail.com> wrote:
[...]

>>No insider information is necessary, the job requirements make it
>>absolutely clear (at least to me) that Google is a company with an
>>elitist culture,
>
> Absolutely yes, in terms of who we want to work at Google: we DO want
> GREAT people. And we don't keep this a secret, either: right up there
> at <http://www.google.com/jobs/>, we say "our strategy is simple: we
> hire great people". Rather than hiring a LOT of people, we prefer to be
> extremely, obsessively selective, and try to hire ONLY a few people,
> ones who we can convince ourselves do deserve that adjective, "great".
>
> This does mean that we definitely tend err on the side of caution, and
> FAIL to hire some people who are also great, just because we can't
> determine with sufficient certainty that they indeed are -- I've seen
> this happen more than once, and deeply regret it (for both Google and
> the person), but I have no idea how we could do better without relaxing
> our extremely elitist standards (we do debate these issues internally
> all of the time, trying to do better, but have found no magic wand yet).

[...]


> students), but I've met many people with advanced degrees from even the
> best/most elitist universities, such as Stanford or MIT, where it sure
> looked to me as if the university's attempts to only graduate the very
> best have definitely failed.

[...]

[...]

-

TAG.google.evolution.talent.detection

.


--
http://lazaridis.com

Alex Martelli

unread,
Jan 3, 2006, 11:27:39 AM1/3/06
to
Ilias Lazaridis <il...@lazaridis.com> wrote:
...
> Ok, thus Google is flexible in this.
>
> [sidenote: some jobs _require_ a degree by law]

Or some even more stringent qualification, such as the state's Bar exam
for lawyers -- you may not be able to sit for that exam w/o the
appropriate degree, but the degree by itself is not enough, you still
have to pass the exam. It is that way for Engineers in Italy (I passed
my State Exam in the early '80s), although you only need the certificate
for some specific professional undertakings (e.g. design a ship, or a
large building, or technically supervise building operations beyond a
certain size -- not to write software or to design chips).

Personally, I agree with the theory, first expressed by Adam Smith, that
such barriers to entry are mostly useful to grant practitioners of a
certain profession the "scarcity value" that lets them charge higher
prices, although of course they're always presented as "good for
society". Note that in Europe in the Middle Ages you needed strict
qualifications of that kind for just about anything -- you could not
make hats unless you belonged to the Hatters' Guild, etc; most of those
restrictions have since been lifted, but a few groups (doctors, lawyers,
accountants, ...) have managed to keep them in place.

> What about external independents ?
> Does Google cooperate with them?

Hardly ever... I, too, was at first trying to see if I could establish
some kind of consulting relationship with Google, in order to keep my
existing freelance practice alive as well, but in the end I found no way
to do so. I believe Google's external consultants are very few -- e.g.,
some lawyers (Google employs some, but also has some external ones on
retainer), the members of our Board of Directors, Hal Varian.

> And how can one contact such a giant?

I believe that starting at <http://www.google.com/about.html> and
navigating from it will show you all the various avenues of contact
depending on your purpose for the contact; except that, for questions
about the Google Foundation, it might be better to start at
<http://google.org/> instead. Since the number of people wanting to
establish such contact for all sort of purposes is very large, and only
a few of Google's 5000 employees spend their time dealing with such
contact attempts, I have unfortunately heard of many cases in which such
attempts prove unfruitful.


> http://lazaridis.com/case/lang/python.html#simple_variable_access
>
> this leads to a new limitation:
>
> "#LIMITATION: large amount of repetitive code"

One normally does not define large numbers of identical accessors (there
would be no purpose served in so doing), so the "boilerplate"
(repetitive code) does not truly occur. If for whatever reason one DOES
want a bazillion identical accessors, a simple custom metaclass (if one
has many classes with such needs), or simpler code still (if just one or
two classes require such bundles of accessors), avoid the repetitions.

For example (untested code, but should work):

class Talker(object):
def __init__(self):
self._name = ''
self._age = 0
for attr in '_name _age'.split():
def getter(self, attr=attr): return getattr(self, attr)
def setter(self, value, attr=attr): return setattr(self, attr, value)
setattr(Talker, attr[1:], property(getter, setter))

This is probably not worth the bother for just 2 attributes, but it
trivially generalizes to a bazillion attributes, if that's what you
want. A custom metaclass could also more easily define an __init__
based simply on attribute names and default values desired (it's quite
possible this way, too, of course); alternative approaches include
wrapping the 'class' statement and the following loop in a factory
function which builds and returns the desired class (this gives roughly
the same power as a custom metaclass for this specialized task, though a
custom metaclass is more flexible and general); and the use of lexical
closures in preference to the simple getter and setter functions shown
here (or, factory functions for properties, embedding such closures).
E.g., change the loop to:

def makeprop(attr):
def getter(self): return getattr(self, attr)
def setter(self, value): return setattr(self, attr, value)
return property(getter, setter)
for attr in '_name _age'.split():
setattr(Talker, attr[1:], makeprop(attr))

Some would consider this more elegant (better factored).


The reason you don't see this kind of thing emphasized in Python
literature is that this style of programming is very rarely needed --
mostly when you're building a framework, or the Python modest equivalent
of a domain-specific minilanguage, or some kind of automated code
generator. For 99% of the normal, everyday application programming one
does in Python, this introspective metaprogramming would be overkill,
although that may not be obvious to one who does not know Python -- for
example, it remains true that the addition of all of those trivial
getters and setters by whatever means performs NOTHING useful -- the
class's functionality and interface are IDENTICAL to the one you'd
normally code, with directly accessible attributes and without all of
those boilerplate methods.

You'll find more examples of appropriate use of metaprogramming and
introspection in the 2nd edition of the Python Cookbook, though.

> I meant: reproduce the definition of the class (but without reproducing
> the source-code of the class)
>
> I have removed the "without code" remark, which was missleading.

Aha! I see now, and it does make more sense. Yes, using inspect you
could surely emit for example skeletons for the various methods, with
e.g. a 'pass' in lieu of their code. However, since instance attributes
are determined by code that gets executed (in __init__, and maybe in
__new__ and even elsewhere), it's not really practical to find out what
attributes an instance would have without in fact creating such an
instance and introspecting on it. Would such instantiation be OK here?
In some cases instantiating a class might have externally visible
effects, say opening a network connection, or a database, etc, so you
might well want to forbid that for purely introspective purposes.

> yes, you are right.
>
> => {New Requirement: ability to declare objects as mutable/immutable.}

...


> I estimate that there is a "unfreeze" operation, too - which would lead
> to flexibity.

Yes, but also mean that immutable objects are not really immutable, only
"immutable until further notice". For example, the immutability of
objects can be used to enhance the ability to reason about a program's
correctness... but such reasoning is not helpful if an 'immutable'
object isn't really immutable.

Perhaps rather than thinking in terms of ideals and limitations, in this
field you could just use a simple descriptive approach, since each
choice has some advantages. E.g., a language such as Haskell occupies
one (productive) extreme: EVERY object is immutable -- you never change
existing objects, but rather make new ones as needed; this makes the
language ideal to reason about program correctness, although it requires
a programming style very different from what's normal in other languages
(I believe Haskell and other functional-programming languages of its ilk
requires very deep abilities to reason mathematically -- I've been known
to describe that as "math or CS PhD", although of course that's merely
indicative!). At the other extreme, Ruby's very productive choice is to
allow freeze and unfreeze of everything (I believe -- but you should
double check with a Ruby expert) -- makes it a lost cause to use
immutability to reason about program correctness, but allows a wide
variety of programming styles.

Most languages try to strike a balance with SOME objects being mutable
and others not, which of course like all compromises tries to get some
advantages from each side but also inevitably gets some DIS-advantages
too. It's not necessarily easy to see all the implication of each such
choice, or trade-off, and yet most design IS about making trade-offs...

> > There's no need to define this 'meta' attribute anywhere, it just
> > springs into existence when you assign to it.
>
> ?
>
> "assign to it" with:
>
> setattr(Talker, 'meta', "Class meta information")
>
> but _not_ with this:
>
> Talker.meta = "Class meta information"
>
> correct?

Nope: both forms have IDENTICAL semantics. They both work in just the
SAME way.

Try it out...!

>>> class Talker(object): pass
...
>>> Talker.meta = 'class metainfo'
>>> print Talker.meta
class metainfo
>>>


Alex

Alex Martelli

unread,
Jan 3, 2006, 11:44:41 AM1/3/06
to
Duncan Booth <duncan...@invalid.invalid> wrote:

> Alex Martelli wrote:
>
> > It IS true that in Python you cannot set arbitrary attributes on
> > arbitrary objects. The workaround is to use a dict, indexed by the id
> > of the object you want to "set arbitrary attributes on"; this has the
> > helpful consequence that separate namespaces are used, so your arbitrary
> > setting of metadata cannot interfere with the `true' attributes of the
> > object in question.
> >
> That's a horrible suggestion (using id's, not the bit about separate
> namespaces). If you use the id then attributes will persist beyond the
> lifetime of the object and may suddenly reappear on other unrelated objects
> later.

The second sentence is true, but does not imply the first: just add a
strong reference to the object you're imposing extra attributes on
(e.g., pile such objects into an auxiliary list).

> A better suggestion here would be to use weak references. Unfortunately,
> not every Python object can be the target of a weak reference, so there is
> a limitation here preventing a useful implementation for many builtin

...which is why I didn't suggest that;-).

> types. I can't actually think of a use case for what Ilias wants, and if
> there isn't a use case it isn't a big problem, but if anyone can come up
> with a usecase please say.

Many usecases of Lisp's property-lists might apply to Python just as
well, assuming one could associate properties/attributes to all objects
(as you can have property-lists anywhere in Lisp).

For example, you could associate to each of a lot of strings in some set
of data structures (but not necessarily all of them) the codec to be
used with that string. This is typical metainformation: a string of
bytes as such does not tell you how to make it back into Unicode, and in
the cases where you have obtained that metainformation it would be nice
to store it somewhere (falling back to heuristics if you ever need to
deal with strings for which you haven't yet obtained the metainfo).

Similarly, some numbers (but again not necessarily all of them, for
whatever complex datastructures set they're used in) might usefully be
associated with the unit of measure they're in (again falling back to
heuristics if needed).

In Python you just know you can't easily do that so you typically turn
the whole program around to use, not strings or numbers with optional
metainfo associated to each, but instances of more complicated datatypes
which carry the information and the optional metainformation. But if
you're used to the extremely handy idiom of just associating interesting
metainfo with any object whatsoever, that's quite a bother.

If you know that all you're decorating with propertylist is hashable,
you can use a simple dictionary -- but then one day you want to add some
metainformation to a file instance, and OUCH, that just fails... so
you're back to workarounds of various sorts, the most popular being no
doubt "superstructures" (subclasses or wrappers) holding the real data
and optional metainformation separately.

The ability of having attributes on functions is relatively recent in
Python and basically spoke to the same kind of needs (in that case,
there were also enough abuses of functions' docstrings to hold what was
in fact metainformation that nobody could really doubt the usecase for a
better approach;-).


> With the above code what would 'puts someexpressionresultingin1234.meta'
> output? i.e. is the attribute being set on all integers with the value
> 1234, or just on a specific instance of an integer.

Good question, presumably answerable with a small Ruby test (which
however I have no time to perform right now;-).


Alex

Hans Nowak

unread,
Jan 3, 2006, 1:46:13 PM1/3/06
to
Duncan Booth wrote:

> BTW, I don't know Ruby enough to understand the example at
> http://lazaridis.com/case/lang/ruby/base.html:
>
> class Object
> def meta # adds variable "meta" to all objects in the system
> end

I don't think this is valid Ruby code, by the way... It should probably
be something like this:

class Object
attr_accessor :meta
end

> Talker.meta = "Class meta information"
> john.meta = "Instance meta information"
> 1234.meta = 'any Instance meta information"
>
> puts Talker.meta
> puts john.meta
> puts 1234.meta # an integer object
>
> With the above code what would 'puts someexpressionresultingin1234.meta'
> output? i.e. is the attribute being set on all integers with the value
> 1234, or just on a specific instance of an integer.

At first glance, it seems the former is true:

irb(main):021:0> class Object
irb(main):022:1> attr_accessor :meta
irb(main):023:1> end
=> nil
irb(main):026:0> 1234.meta = "fred"
=> "fred"
irb(main):027:0> (1000+234).meta
=> "fred"
irb(main):028:0> x = 617
=> 617
irb(main):029:0> x *= 2
=> 1234
irb(main):031:0> x.meta
=> "fred"
irb(main):032:0> 3.meta
=> nil

However, inspecting the object_id (comparable to Python's id()) shows
that all these refer to the same object:

irb(main):035:0> 1234.object_id
=> 2469
irb(main):036:0> x.object_id
=> 2469
irb(main):041:0> y = 1000
=> 1000
irb(main):042:0> y.object_id
=> 2001
irb(main):043:0> y += 234
=> 1234
irb(main):044:0> y.object_id
=> 2469

I am not an expert on Ruby internals, but it looks like these integers
are cached. As with Python, I don't know if one can count on this
behavior to happen always.

--
Hans Nowak
http://zephyrfalcon.org/

Duncan Booth

unread,
Jan 3, 2006, 3:10:28 PM1/3/06
to
Alex Martelli wrote:

> Duncan Booth <duncan...@invalid.invalid> wrote:
>> That's a horrible suggestion (using id's, not the bit about separate
>> namespaces). If you use the id then attributes will persist beyond
>> the lifetime of the object and may suddenly reappear on other
>> unrelated objects later.
>
> The second sentence is true, but does not imply the first: just add a
> strong reference to the object you're imposing extra attributes on
> (e.g., pile such objects into an auxiliary list).
>

Except that would lead to fairly massive memory leaks, so isn't really
of practical use. I guess you could combine an auxiliary list with a
periodic scan of the list releasing those objects which are referenced
only from the list, which would reduce the problem to objects
participating in cycles. Combine that with the weak reference approach
wherever it works and you might be able to cover most situations.

>
>> With the above code what would 'puts
>> someexpressionresultingin1234.meta' output? i.e. is the attribute
>> being set on all integers with the value 1234, or just on a specific
>> instance of an integer.
>
> Good question, presumably answerable with a small Ruby test (which
> however I have no time to perform right now;-).

Hans Nowak seems to have partly answered that. It looks as though the id
of a Ruby integer is one more than twice the integer's value so I guess
that ruby packs the integer value in place of the object reference. A
quick search reveals:

> A Fixnum holds Integer values that can be represented in a native
> machine word (minus 1 bit). If any operation on a Fixnum exceeds this
> range, the value is automatically converted to a Bignum.
>
> Fixnum objects have immediate value. This means that when they are
> assigned or passed as parameters, the actual object is passed, rather
> than a reference to that object. Assignment does not alias Fixnum
> objects. There is effectively only one Fixnum object instance for any
> given integer value, so, for example, you cannot add a singleton
> method to a Fixnum.

So it looks like the Ruby example will work as observed for integers which
fit in one bit smaller than a machine word and then work differently for
larger integers.


Ilias Lazaridis

unread,
Jan 3, 2006, 3:21:55 PM1/3/06
to
Alex Martelli wrote:
> Ilias Lazaridis <il...@lazaridis.com> wrote:
[...] - google stuff

>>http://lazaridis.com/case/lang/python.html#simple_variable_access
>>
>>this leads to a new limitation:
>>
>>"#LIMITATION: large amount of repetitive code"
>
> One normally does not define large numbers of identical accessors (there

[...] - (extensive elaboration)

possibly one can provide the code for something similar to the ruby
attr_accessor:

class Talker
def sayHello
puts "Hello world"
end

attr_accessor :name, :age

end

thus they can later be accessed this way

john.age = 19

print john.age


>>I meant: reproduce the definition of the class (but without reproducing
>>the source-code of the class)
>>
>>I have removed the "without code" remark, which was missleading.
>
> Aha! I see now, and it does make more sense. Yes, using inspect you
> could surely emit for example skeletons for the various methods, with
> e.g. a 'pass' in lieu of their code. However, since instance attributes
> are determined by code that gets executed (in __init__, and maybe in
> __new__ and even elsewhere), it's not really practical to find out what
> attributes an instance would have without in fact creating such an
> instance and introspecting on it. Would such instantiation be OK here?

If I understand you right, it would be ok.

The requirements are given by the template:

john.sayYourClassDefinition()

"john" is instantiated, when asked for his class definition.

> In some cases instantiating a class might have externally visible
> effects, say opening a network connection, or a database, etc, so you
> might well want to forbid that for purely introspective purposes.

see above.

>>yes, you are right.
>>
>>=> {New Requirement: ability to declare objects as mutable/immutable.}
>
> ...
>
>>I estimate that there is a "unfreeze" operation, too - which would lead
>>to flexibity.
>
> Yes, but also mean that immutable objects are not really immutable, only
> "immutable until further notice". For example, the immutability of

[...] - (elaborations)

I understand now.

=> {New Requirement: ability to declare objects as immmutable or
mutable/immutable}

>>>There's no need to define this 'meta' attribute anywhere, it just
>>>springs into existence when you assign to it.
>>
>>?
>>
>>"assign to it" with:
>>
>>setattr(Talker, 'meta', "Class meta information")
>>
>>but _not_ with this:
>>
>>Talker.meta = "Class meta information"
>>
>>correct?
>
> Nope: both forms have IDENTICAL semantics. They both work in just the
> SAME way.
>
> Try it out...!

But this means that "assignment of metadata" works fine.

>>>>class Talker(object): pass
>
> ...
>
>>>>Talker.meta = 'class metainfo'
>>>>print Talker.meta
>
> class metainfo

thus if I make a typo, I create a new attribute?

.

--
http://lazaridis.com

Steven D'Aprano

unread,
Jan 3, 2006, 8:33:25 PM1/3/06
to
On Tue, 03 Jan 2006 08:27:39 -0800, Alex Martelli wrote:

> Or some even more stringent qualification, such as the state's Bar exam
> for lawyers -- you may not be able to sit for that exam w/o the
> appropriate degree, but the degree by itself is not enough, you still
> have to pass the exam. It is that way for Engineers in Italy (I passed
> my State Exam in the early '80s), although you only need the certificate
> for some specific professional undertakings (e.g. design a ship, or a
> large building, or technically supervise building operations beyond a
> certain size -- not to write software or to design chips).
>
> Personally, I agree with the theory, first expressed by Adam Smith, that
> such barriers to entry are mostly useful to grant practitioners of a
> certain profession the "scarcity value" that lets them charge higher
> prices, although of course they're always presented as "good for
> society". Note that in Europe in the Middle Ages you needed strict
> qualifications of that kind for just about anything -- you could not
> make hats unless you belonged to the Hatters' Guild, etc; most of those
> restrictions have since been lifted, but a few groups (doctors, lawyers,
> accountants, ...) have managed to keep them in place.

Let's not confuse the medieval guild system with today's system. Guilds
were more like clubs than professional bodies: it was who you knew, rather
than what you knew, that decided whether you got in. You were forbidden
from becoming (say) a hat maker unless the other hat makers allowed you to
join the guild. There was no independent, or even semi-independent, body
who decided what qualifications were needed to make hats. It was all about
who you knew -- if your uncle's best friend was a hat maker, you could be
apprenticed to a hat maker and join the guild, otherwise there was no exam
to sit that got you in, no matter how talented you were.

This system combined the worst of all outcomes: you got artificial
scarcity with the monopoly pricing that leads to, *plus* it failed to
enforce or even encourage minimum standards of skill and strategy.

By contrast, today's professional bodies like law, medicine etc. have
independent standards of skill that must be met. I don't wish to deny
that knowing the right people can help smooth the procedure of becoming
a doctor, lawyer, etc., but failing to have an uncle who is a lawyer is no
barrier to becoming a lawyer, provided you can pass the bar exam. That is
very different from the guild system.

In general, professional bodies like engineers, doctors, etc. do a
reasonable job of enforcing minimum standards of skill and quality.
Certainly there are a lot fewer building collapses in countries that
enforce building standards than countries that allow the free market to
decide.

Free market radicals like to sneer at "for the good of society" arguments,
but the problem with their reasoning is that they only consider the
monetary cost of hiring a professional, and not the other costs. Of course
anything that makes professionals scarce will increase the cost of hiring
that professional. But they fail to take into account the externalities
that come from increasing the numbers of under-qualified, shoddy
professionals.

The free market often works well for (say) enforcing minimum standards for
bread: anyone who can taste can recognise good bread from bad, and if you
buy bad bread from a baker today you simply will go to another baker
tomorrow. But dealing with accountants, lawyers, doctors etc. is very
different. Expert opinions are not like bread: only a fellow expert can
recognise good advice from bad advice. Most people buy bread at least once
a week, but might only get legal advice once or twice in their life. Under
these circumstances, Adam Smith's Invisible Hand is feeble indeed, and
shonky rip-off merchants and incompetents thrive, harming everyone.

That's not to say that skilled experts can't make a living -- in an
economy filled with snake-oil medical practitioners, good experts who
get a good reputation can charge a high premium. People who find a
good doctor or lawyer will recommend him to their friends. This squeezes
out the middle: new, but skilled, experts get lost in the sea of shonkies,
but the tiny minority that manage to get a reputation will attract
near-monopoly pricing. That leads to a two-tier system where only the rich
and powerful can afford good experts, be they doctors, lawyers, engineers
or accountants, and everyone else either goes without or are forced into a
lottery where the vast majority of experts they can afford are incompetent.

Another major difference between today's professional bodies and medieval
guilds is that the scarcity is not entirely (or even mostly) caused by
the professional body. It is the universities controlling prerequisite
degrees that gain more from the scarcity: within reason, the fewer places
they offer for (say) law degrees, the higher fees they can charge for
them. In my inexpert opinion, the cause of shortages of experts is more
the fault of the universities than of the professional bodies.


--
Steven.

Alex Martelli

unread,
Jan 3, 2006, 9:47:10 PM1/3/06
to
Ilias Lazaridis <il...@lazaridis.com> wrote:
...
> > One normally does not define large numbers of identical accessors (there
> [...] - (extensive elaboration)
>
> possibly one can provide the code for something similar to the ruby
> attr_accessor:
>
> class Talker
> def sayHello
> puts "Hello world"
> end
>
> attr_accessor :name, :age
>
> end
>
> thus they can later be accessed this way
>
> john.age = 19
>
> print john.age

Yes: the amount of code one needs to provide for this purpose is, NONE.

class Talker(object):
pass

You can now write

john = Talker()


john.age = 19
print john.age

just as you request. _No need to provide ANY code in the class_.

If you want an initial/default value for the .age parameter, you'll want
to add an __init__ setting it (otherwise, trying to print john.age
WITHOUT having previously set john.age will produce an AttributeError --
I wish all languages were so nice as to similarly let me know about
attempts to use uninitialized variables/attributes!-).

But still, you don't need any accessor methods -- setters and getters --
unless there's something "real" that you want code to perform upon any
setting and/or getting of an attribute (when there IS something special
of that kind, and only then, you code setter and/or getter and use
property, but then it won't be REPETITIVE [boilerplate] code, because
there WILL be something special in those methods you're coding...).

BTW, all I say about setting and getting an attribute also applies to
REMOVING an attribute, aka DELETING it. Dunno why nobody ever seems to
think about it, but it should be possible to have some attributes that
are optional, and thus to remove them if/when they're not needed any
more.

Let me give an example: say that anybody under 18 must have a legal
guardian, but there is no concept of legal guardian for anybody who is
18 or over; then, you might have:

class Person(object):
def __init__(self, name, parent):
# the person is born: age 0, given name, legal guardian is parent
self._age = 0
self.name = name
self.guardian = parent
def getAge(self):
return self._age
def setAge(self, age):
if hasattr(self, 'guardian') and age>=18: del self.guardian
self._age = age
age = property(getAge, setAge)

This is a good example of a case in which you need to run some code when
john.age is set, because if it's set to 18 or over you want to remove
john's attribute defining his legal guardian -- so, you use a property.
You don't need properties for the name and guardian attributes, because
so far at least we have not specified any code that needs to run when
those attributes are gotten, set, or deleted; if and when the specs
changes, you can change the definition of the class and NOT change any
client-code, because the client code still uses the attributes in
exactly the same way, e.g. "john.age += 1", whether a corresponding
property is defined, or not.


> > instance and introspecting on it. Would such instantiation be OK here?
>
> If I understand you right, it would be ok.
>
> The requirements are given by the template:
>
> john.sayYourClassDefinition()
>
> "john" is instantiated, when asked for his class definition.

OK, I'll look into that in my copious spare time (unless somebody else
does the work first;-).


> >>"assign to it" with:
> >>
> >>setattr(Talker, 'meta', "Class meta information")
> >>
> >>but _not_ with this:
> >>
> >>Talker.meta = "Class meta information"
> >>
> >>correct?
> >
> > Nope: both forms have IDENTICAL semantics. They both work in just the
> > SAME way.
> >
> > Try it out...!
>
> But this means that "assignment of metadata" works fine.

Yes, on mutable objects such as ordinary classes it does work fine. It
would not work on immutable objects such as strings or numbers.


> >>>>class Talker(object): pass
> >
> > ...
> >
> >>>>Talker.meta = 'class metainfo'
> >>>>print Talker.meta
> >
> > class metainfo
>
> thus if I make a typo, I create a new attribute?

Yep, just like, I believe, in Ruby; if you meant to assign to @zappo but
happen to mistakenly assign to @zippo instead, you've created a new
attribute. In Python, if you wish, you can check for such "oops"-level
errors by using tools such as pychecker or pyLint, which of course can
also check for other "oopses" besides "variable/attribute created once
but never used nor referenced". I've seen some people program their
editors to routinely run pychecker when saving files with a .py
extension, for example.

Personally, I don't generally bother with pychecker (even though its
most excellent author is my friend and colleague Neal Norwitz) because
compilers and lint tools just can't catch ALL of my "oopses" -- for
example, if I meant to write count+=1 but made a typo and wrote count-=1
instead, no checker/lint/compiler is gonna catch it for me. So, I have
learned that I need to write *UNIT-TESTS* for all of my code -- me and
another million programmers. Of course, unit tests, which are
indispensable anyway to catch the += vs -= typoes, as a side effect also
catch any typos such as zippo vs zappo. Very good expansions on these
fundamental ideas can be seen at
<http://www.mindview.net/WebLog/log-0025> and
<http://www.artima.com/weblogs/viewpost.jsp?thread=4639>, by excellent
authors Bruce Eckel and Robert Martin respectively (great experts of
such languages as Java and C++, but aficionados of Python, Ruby,
Smalltalk thanks to these considerations).


Alex

Aahz

unread,
Jan 3, 2006, 11:09:34 PM1/3/06
to
[much stuff deleted that I mostly agree with to get at an interesting
chunk of disagreement]

In article <pan.2006.01.04....@REMOVETHIScyber.com.au>,


Steven D'Aprano <st...@REMOVETHIScyber.com.au> wrote:
>
>By contrast, today's professional bodies like law, medicine etc. have
>independent standards of skill that must be met. I don't wish to deny
>that knowing the right people can help smooth the procedure of becoming
>a doctor, lawyer, etc., but failing to have an uncle who is a lawyer is no
>barrier to becoming a lawyer, provided you can pass the bar exam. That is
>very different from the guild system.

Unfortunately, this isn't quite true. Medicine and law both require the
passing of an apprenticeship, so there's still some room for favoritism
and blackballing.
--
Aahz (aa...@pythoncraft.com) <*> http://www.pythoncraft.com/

"Given that C++ has pointers and typecasts, it's really hard to have a
serious conversation about type safety with a C++ programmer and keep a
straight face. It's kind of like having a guy who juggles chainsaws
wearing body armor arguing with a guy who juggles rubber chickens wearing
a T-shirt about who's in more danger." --Roy Smith

Brian van den Broek

unread,
Jan 3, 2006, 9:54:56 PM1/3/06
to pytho...@python.org
Steven D'Aprano said unto the world upon 03/01/06 07:33 PM:

<snip>

> By contrast, today's professional bodies like law, medicine etc. have
> independent standards of skill that must be met. I don't wish to deny
> that knowing the right people can help smooth the procedure of becoming
> a doctor, lawyer, etc., but failing to have an uncle who is a lawyer is no
> barrier to becoming a lawyer, provided you can pass the bar exam. That is
> very different from the guild system.

<snip>

> Another major difference between today's professional bodies and medieval
> guilds is that the scarcity is not entirely (or even mostly) caused by
> the professional body. It is the universities controlling prerequisite
> degrees that gain more from the scarcity: within reason, the fewer places
> they offer for (say) law degrees, the higher fees they can charge for
> them. In my inexpert opinion, the cause of shortages of experts is more
> the fault of the universities than of the professional bodies.

According to the 2000 US Census, in a population of 174,136,341 people
between 18 and 65
<http://factfinder.census.gov/servlet/QTTable?_bm=y&-geo_id=01000US&-qr_name=DEC_2000_SF1_U_DP1&-ds_name=DEC_2000_SF1_U>,
there were a total of 862,037 lawyers
<http://factfinder.census.gov/servlet/DTTable?_bm=y&-geo_id=01000US&-reg=DEC_2000_SF4_U_PCT086:001&-ds_name=DEC_2000_SF4_U&-_lang=en&-redoLog=false&-mt_name=DEC_2000_SF4_U_PCT086&-mt_name=DEC_2000_SF4_U_PCT205&-format=&-CONTEXT=dt>
among the employed people 16 years and older.

So, just shy of 1 out of every 200 working-aged people in the USA were
lawyers in 2000.

I'm inclined to agree with the claim that law schools don't have the
correct number of seats, but I think we might just differ on which way
the adjustment should go :-)

(I do realize that US data isn't most pertinent to Steven, Alex or
myself -- au, it, ca -- but it is ready to hand. Shamefully, my
government wants to charge me for the occupation data, and Steven's
didn't yield free data before my patience and resolve wore out.)

Best,

Brian vdB

Michael Sparks

unread,
Jan 4, 2006, 4:48:38 AM1/4/06
to
On Wednesday 28 Dec 2005 17:58:33, Robert Kern wrote:
>
...
Sorry to reply to the thread so late in the day, but I noticed (via
QOTW :-( ) that Anton got worked up at me suggesting that congratulating
someone with a new job was a nice idea (surprised me too - all the
Google employees I've met have been very nice people), read the
thread (got sad) and then saw this:

> Who is "the man"? If Google were to hire you with no experience, would
> you then have "worked for the man"?

If you want to understand the reference, the most fun recent
explanation I've seen is in "School of Rock". Jack Black's character
explains it far better than I ever could :)

Regards,


Michael.
--
Michael...@rd.bbc.co.uk, http://kamaelia.sourceforge.net/
British Broadcasting Corporation, Research and Development
Kingswood Warren, Surrey KT20 6NP

This message (and any attachments) may contain personal views
which are not the views of the BBC unless specifically stated.

Ilias Lazaridis

unread,
Jan 4, 2006, 8:00:30 AM1/4/06
to
Alex Martelli wrote:
> Ilias Lazaridis <il...@lazaridis.com> wrote:
[...]

>>possibly one can provide the code for something similar to the ruby
>>attr_accessor:
>>
>>class Talker
>> def sayHello
>> puts "Hello world"
>> end
>>
>> attr_accessor :name, :age
>>
>>end
>>
>>thus they can later be accessed this way
>>
>>john.age = 19
>>
>>print john.age

[...]


> Yes: the amount of code one needs to provide for this purpose is, NONE.

[...]


> just as you request. _No need to provide ANY code in the class_.

[...] - (elaborations on getter/setter need)

I've understood your elaborations.

I would need this python "attr_accessor", to showcase that python is
capable to do it (even if the usage seems irrational/redundant).

>>>instance and introspecting on it. Would such instantiation be OK here?
>>
>>If I understand you right, it would be ok.
>>
>>The requirements are given by the template:
>>
>>john.sayYourClassDefinition()
>>
>>"john" is instantiated, when asked for his class definition.
>
> OK, I'll look into that in my copious spare time (unless somebody else
> does the work first;-).

would be very nice!

>>>>"assign to it" with:
>>>>
>>>>setattr(Talker, 'meta', "Class meta information")

[...]


>>>>Talker.meta = "Class meta information"

[...]


>>But this means that "assignment of metadata" works fine.
>
> Yes, on mutable objects such as ordinary classes it does work fine. It
> would not work on immutable objects such as strings or numbers.

ok

>>>>>>class Talker(object): pass


>>>>>>Talker.meta = 'class metainfo'
>>>>>>print Talker.meta
>>>
>>>class metainfo
>>
>>thus if I make a typo, I create a new attribute?
>
> Yep, just like, I believe, in Ruby; if you meant to assign to @zappo but
> happen to mistakenly assign to @zippo instead, you've created a new
> attribute. In Python, if you wish, you can check for such "oops"-level

[...] - (elaborations on code-verification / unit-testing)

Ok.

.

--
http://lazaridis.com

Anton Vredegoor

unread,
Jan 4, 2006, 9:37:54 AM1/4/06
to
Michael Sparks wrote:

> Sorry to reply to the thread so late in the day, but I noticed (via
> QOTW :-( ) that Anton got worked up at me suggesting that congratulating
> someone with a new job was a nice idea (surprised me too - all the
> Google employees I've met have been very nice people), read the
> thread (got sad) and then saw this:

Strange, I *did* get worked up at you some (long) time ago, probably
without you ever noticing, it was about your pythagorean proof about
anyone being able to learn kamelia quickly because you had some student
who had no problems whatsoever with it,

http://www.atopia.tk/anamnesis/kittleren.htm

while I could not find a clue what your software was supposed to do,
except being something very exciting (and I think I know python well
enough to not often have that problem), but I did not get worked up at
you because of you congratulating Guido. To make it more clear :
Congratulations Guido, with your new job!

However I still maintain that I was never able to meet these fine
people you speak about and which you seem to know because the cost
involved (a few hundred euro to visit pycon for example) was too high
compared to my food budget.

What I was trying to explain was that the world gets closer and closer
to the singularity (something I believe other people got worked up at
*me* about) and the world is now at the stage where everything gets
reinvented in about 5 years. This means that during the next 2.5 years
some phenomenon like Google changing internet history (which happened
in the last five years) will happen again (in a shorter time period).

Since we are going to reinvent ourselves faster and faster there is no
need to take old corrupt methods with us into the future. Some people
(maybe suffering from a wierd kind of conceptual static typing) equate
me talking about 'people having a backstabbing history' with implying
those exact people actually stab other people in the back literally.
'Having a backstabbing history' can also be explained as having been
into places where backstabbing was common, without implying any actual
backstabbing of these people themselves, except maybe the greater whole
they belonged to being instrumental to backstabbing, for example
mathemathics professors helping to crack codes which are used to
decipher or encode messages in a war situation.

I've already mentioned somewhere that I meant it figuratively and I
will further qualify it now by saying that Googles selection process
does them and the world a disservice by using some kind of elitist
criteria, or by hiring people who can prove that they -forced by market
mechanisms no doubt- have in the past collaborated with or worked for
companies that selected them on the basis of elitist criteria.

The elitist selection process suffers from the same problems that for
example IQ-tests have: Trying to scale something in one (or at least
too few) dimensions, where that something is very, very, very
multidimensional. It is insulting, inappropriate and denigrating when
applied to humans. Of course, irony will have people using elitist
selection processes being very personally offended by people pointing
out that it is unfair. Just like those who stole my money and job
opportunities now claim I'm a parasite or some wrathfull loser who
doesn't want to work.

In fact, although I still don't condone corruption, my vision has
cleared up a lot by not eating its fruits anymore. I am not jealous at
anyone still 'inside' and although I dream about trying to save people
from places where people get murdered randomly (the dreaded
backstabbing reference again), it gets less and less often as time goes
by. My current worry is about how I can survive for another 2.5 years
(the projected time period for the world to renew itself again) without
me jumping off a ledge because I dont want to be (and possibly live
forever without dying) with irrational people who don't deserve my
company or get offed by someone who can't stand me not joining
corruption.

It's possible some next generation of people don't want the current
population to survive because they are not advancing fast enough or
lack compassion with lower lifeforms. If anything, my post was about
trying to save the world from that fate by trying to induce that
compassion into this newsgroup. I think it would be beneficial for our
people working for google (and for google itself) if they freed
themselves of any remaining corruption so that world evolution will be
synchronized with social evolution and no unnecessary tensions will
occur.

Anton

'workout'

Alex Martelli

unread,
Jan 4, 2006, 11:02:26 AM1/4/06
to
Ilias Lazaridis <il...@lazaridis.com> wrote:
...
> >> attr_accessor :name, :age
...

> I would need this python "attr_accessor", to showcase that python is
> capable to do it (even if the usage seems irrational/redundant).

The code for it was in one of my previous posts, in more than one form,
but here it is again, more or less:

def add_silly_attr_accessor_to_a_class(klass, name):
def get(self, name): return getattr(self, '_'+name)
def set(self, name, value): return setattr(self, '_'+name, value)
setattr(klass, name, property(get, set))

to be used as in:

add_silly_attr_accessor_to_a_class(Talker, 'name')
add_silly_attr_accessor_to_a_class(Talker, 'age')

outside of the body of Talker. If you'd rather have it used INSIDE the
body of Talker, then:

def make_silly_attr_accessor(name):
def get(self, name): return getattr(self, '_'+name)
def set(self, name, value): return setattr(self, '_'+name, value)
return property(get, set)

to be used as in:

class Talker(object):
age = make_silly_attr_accessor('age')
name = make_silly_attr_accessor('name')

Finally, you could choose to use a decorator syntax instead:

def silly_attr_accessor_via_decorator(f):
name = '_'+f.__name__
def get(self, name): return getattr(self, '_'+name)
def set(self, name, value): return setattr(self, '_'+name, value)
return property(get, set)

to be used as in:

class Talker(object):
@silly_attr_accessor_via_decorator
def name(): pass
@silly_attr_accessor_via_decorator
def age(): pass

The latter is arguably a stretching of the concept of decorator, which
is meant to be a nice syntax for a higher-order-function (taking a
function as its argument and returning another function built by
modifying the argument one) -- here we're only using the *name* of the
"function" (name or age) and ignoring the object entirely (which is why
in the example use I'm defining the ``functions'' as empty, using the
no-op statement ``pass''). Still, some people believe there is mystical
and magical power in having special syntax for something rather than
using perfectly normal, general, and existing syntax for the purpose;
such syntax-obsessed people will no doubt be more impressed by seeing
the "special syntax" in use, than by ordinary, bread-and-butter
closures, properties and assignment statements...;-)


Alex

Alex Martelli

unread,
Jan 4, 2006, 11:02:27 AM1/4/06
to
Brian van den Broek <br...@cc.umanitoba.ca> wrote:

> (I do realize that US data isn't most pertinent to Steven, Alex or
> myself -- au, it, ca -- but it is ready to hand. Shamefully, my

Actually, I've been living in the US for over 9 months now, and like all
immigrants I have more dealings with lawyers &c than the average Joe,
so, it IS quite pertinent to my daily life, thanks;-)


Alex

Ilias Lazaridis

unread,
Jan 4, 2006, 11:55:03 AM1/4/06
to
Alex Martelli wrote:
> Ilias Lazaridis <il...@lazaridis.com> wrote:
>
>>>> attr_accessor :name, :age

>
>>I would need this python "attr_accessor", to showcase that python is
>>capable to do it (even if the usage seems irrational/redundant).
[...] - (comments, code "outside the body")

> def make_silly_attr_accessor(name):
> def get(self, name): return getattr(self, '_'+name)
> def set(self, name, value): return setattr(self, '_'+name, value)
> return property(get, set)
>
> to be used as in:
>
> class Talker(object):
> age = make_silly_attr_accessor('age')
> name = make_silly_attr_accessor('name')
>
> Finally, you could choose to use a decorator syntax instead:

[...] - (decorator example, comments)

ok, this one is nice.

-

[/REQUOTE]


>>>>> instance and introspecting on it. Would such instantiation be OK here?
>>>>
>>>> If I understand you right, it would be ok.
>>>>
>>>> The requirements are given by the template:
>>>>
>>>> john.sayYourClassDefinition()
>>>>
>>>> "john" is instantiated, when asked for his class definition.
>>>
>>> OK, I'll look into that in my copious spare time (unless somebody else
>>> does the work first;-).
>>
>> would be very nice!

[/REQUOTE]

Just for completeness:

I some reader has a compact solution, please post it or sent it via
email / form.

-

Mr. Martelli,

Thank you very much !!!

.

--
http://lazaridis.com

DaveM

unread,
Jan 4, 2006, 8:35:58 PM1/4/06
to
On 3 Jan 2006 20:09:34 -0800, aa...@pythoncraft.com (Aahz) wrote:

>Unfortunately, this isn't quite true. Medicine and law both require the
>passing of an apprenticeship, so there's still some room for favoritism
>and blackballing.

In the UK, in Medicine, House Officer jobs pretty much match the
qualification numbers. Sure, which HO post you get can give your career a
head start, but that advantage is evanescent if you can't cut the mustard.

Fouling your career by upsetting the wrong people is, OTOH, easy to do.

DaveM

Anton Vredegoor

unread,
Jan 5, 2006, 9:35:21 AM1/5/06
to
DaveM wrote:

Maybe not many people realize that it's also possible that *having* a
degree or having the *wrong* degree can also be a barrier. Or maybe
that's just the case in highly bureaucratic societies like the
Netherlands.

I finished a study in the social sciences, but since I refused draft I
had to do some social service work as a replacement. This was
explicitly meant to be *careerbreaking*, because if it were otherwise
it would be an advantage over other people who voluntarily went into
the preparing to kill people business. However, women, and people who
got out on a medical indication or because of surplus draftee numbers
did not have to do this. Also, during draft a lot of people got free
drivers licenses (for all vehicles). Having done draft is generally
seen as some positive contribution to society.

My social service work consisted of working as a programmer for a mad
computer scientist who just threw me out after I had doubts about
machine intelligence being feasible in less than a decade or so (and he
badly needed a publication). This completely (for science) useless and
overpayed guy (doctor at a public university) could practically do
anything he liked with me because I just had to break my career anyway
according to my social service contact person.

Before I had my degree as a social scientist I had spend many years in
the same kind of situation but then serving as an intermediary person
between a computer running statistical programs and an elderly
professor who was almost retiring but wanted to make one big
publication before he vanished into oblivion. Of course this guy was
very reluctant to let me finish my thesis because he would be without a
computer programmer then, and he was already to old to learn it
himself, while I seem to have a natural talent for handling computers,
even among people who are of my age.

Going back a little further in time, I remember a period as an intern
where I was not allowed to publish my seperate analysis of the data
*before* the same data was exhaustively studied and published by the
guy who had ordered the survey to take place (payed by government money
of course). Since this guy *never* seemed to be ready to publish
anything (personal problems, divorce and such things) my complete
internship was wasted in terms of getting anything I wrote out of this,
officially.

Now returning to being thrown out by the mad professor, I had the
choice between labeling books for the rest of my time doing social
service or finding some other careerbreaker. Luckily I had made some
friends while playing go (the oriental boardgame) and they introduced
me to their mathematics professor who subsequently let me do some
programming work there.

What struck me most was that the abyss between the social sciences and
mathematics was nearly absolute. While social scientists use
mathematics in a statistical way, their main aim is always to assert
that they are actually measuring what is supposed to be measured. This
can get quite sophisticated, for example if you give a person two
possible choices, will the data be comparable to data acquired with the
person having five possible answers? On the other hand, mathematicians
want to cut loose from the data acquiring stage as soon as possible and
just work with their formulas without making any assumptions about
reality. Lines have no thickness, scales are neat continuous variables,
correlations can be nicely separated in orthogonal factors, and so on.

After my social service was over I tried to find jobs at universities
or public institutions. I did find a research job at the headquarter of
the institution that gives money to unemployed or sick people. I soon
noticed that even before I had begun to work there it was decided that
there could be no way for me to publish anything based on data from
that site, because that data was hoarded by other people in much the
same way as the research data was guarded by the guy from my
internship.

The trick was to let me handle anonimizing and security, and being the
only person officially able to link data to persons, of course I was
not allowed to publish anything.

However, in this capacity I met a lot of people from smaller executive
departements from all over the country and I noticed that they too were
guarding their data as if their jobs depended on them, which was
probably not completely a strange assumption, from their perspective.

What they did was to send only "roughed up" data and selective parts of
the data they collected to the headquarters so that their complete
dataset never could be reconstructed and that way they always would
have that little negotiating edge to keep their jobs secure.

When I started a process to centralize the data and proposed to try and
avoid data corruption by intermediaries I found myself without a job,
really very soon.

I tried to find other jobs. I got an offer from a university, but again
there was no way to do my own research, even hinting at the possibility
of doing research made it impossible to even get the assisting job. It
was very hard to find jobs at universities with my background because
by now I was some kind of a strange amalgament of psychology, computer
science, mathematics and medical statistics person with some government
background.

There are (or at least there were at that time) huge gaps between the
different departments in the Netherlands' universities, programming was
grouped with the exact sciences and no psychologist could enter there.
Also psychologists would not let anyone enter who was 'infected' with
mathematics or computer science, except in some highly restricted
sub-departments of psychology of which there weren't very many.

After a few years I realized that trying to find a job this way was
hopeless, universities select not only by degree but also -and more
importantly- on the basis of personal contacts. Contacts which had been
broken on purpose by my government during my social service. Since I
borrowed a lot of money in order to be able to study for the title, the
idea of this being a theft of my money by the government comes to my
mind. My old professor was already retired and hadn't had many contacts
anyway, which made my situation even worse.

Now the nightmare really started. One would think that if higher
positions were not available then I would surely be eligible for
something lower in the ranks, maybe even way low down because money was
becoming very scarce.

No way. Everywhere I applied they required my complete job history and
after studing this thoroughly it was decided that I was just not the
right kind of person because the work would not be "interesting" enough
for me. They expected me to stay only a few weeks and then quit anyway
so why bother hiring me, even for the lowest of jobs. Somehow I suspect
some of these people to have been feeling threatened for their own
position if some person with higher education would work under them.

This went on for a few years, which I spent programming for myself,
discovering *Python*, doing some freelance work (but a few weeks work
in a year doesn't pay enough), and walking a lot and making photographs
along the way.

In the meantime, agencies were complaining about the large 'holes' in
my resume and, seeing that I had been unemployed for some time, my
chances of getting hired grew even slimmer. Work as a practicing
psychologist at a cliniq was impossible too because the eyes of the HRP
would become glazy immediately upon seeing my computer 'infected'
resume.

Work in a public function was impossible too, because job interviews
always seemed to gravitate towards my theory that mixing different
cultural groups (as was the theme of my thesis) was beneficial for
society as a whole *and* for the individual subculture, while official
policy at the time was demanding to give each group their own space and
language. Of course, that way a lot more government personel would be
secure of their jobs because everything had to be done seperately for
every subculture.

Next I came into the hands of special government agencies who were
handling the hard cases of unemployment. Let's get these unwilling lazy
bastards a job and stop them from parasitizing on our government money.
I was forced to comply with stupid courses which didn't help at all
(certainly not with finding me a job) and finally when nothing worked I
was forced to apply to nonsense jobs day after day just for the hell of
it, because if I still hadn't found a job I must have been a very
antisocial tough case who had to be handled the hard way.

I developed an allergy against sending resumes. I just couldn't stand
talking to human resource people about the so called 'holes' in my
resume anymore, pointing out that these holes where not holes at all
but that I had made very significant progress during that time, not the
least among these advancements was having become a very experienced
programmer.

Nothing would change the mind of future employers or employment
agencies however, most of the time one is not talking to people who
have a clue about programming anyway. So the only thing that counted on
a resume was *working* experience, and not just working experience
plain, but also it had to be exactly the right kind of working
experience, which with my diverse background would be too thin in any
specific way.

My allergy to resumes, not getting accepted because my education being
to high, my experience being to low for anything specific, brought me
me into further major trouble with the social security office. It was
just not allowed to experience traumatic consequences because of their
treatment, because what they did was just the law, and what could be
wrong with that, even if it meant forcing me day in day out to apply
for jobs till I snapped.

I decided to prevent that and rather be without any money from my
government than be continously tortured and degraded. Since then I
haven't heard anything from them anymore, I lost my social contacts one
by one because poverty doesn't make one popular, and I broke with my
family because for some reason they seem to think what the government
did was "good for me" when it nearly drove me to suicide.

Maybe this further clarifies my objections against elitist selection
procedures, based on degrees. Even if I have a degree, it always was
the wrong one.

The degree system itself is also funny. There have been many reforms in
the Netherlands and each time those working at universities have
automatically upgraded their degrees to the highest level while such
upgrading is not possible for those without a job. The system works
like this:

We have ranks a,b,c were a is lowest and c is highest.

People start at 'a' progress to 'b' and finally want to do 'c'.

However, just before reaching 'c', a new 'c' is created and the
previous categories 'a' and 'b' are taken together and put in a new
category 'a'. (I am planning to write a nice Python script showing this
algorithm sometime). This has happened a few times now in the
Netherlands and one wonders about the ingenuity with which people
having fixed positions at universities have come up with new
requirements, distinctions and titles to secure their jobs and justify
their never changing authority on all matters scientific. We have
computer science professors who cannot operate a mouse, mathematical
professors who only visit congresses or 'guide' students.

Never mind that most of the times the student does all the work and
receives almost no payment, and the professors know next to nothing
about the subject (except from times long gone) and enjoy luxurious
quarters and working conditions, foreign travel arrangements and a big
secure salary check each month.

Anton

'excuse me if I sound a bit bitter and as if suffering from a sense of
untitlement'

David T

unread,
Jan 4, 2006, 3:00:15 AM1/4/06
to pytho...@python.org

On Jan 3, 2006, at 9:54 PM, Brian van den Broek wrote:

> Steven D'Aprano said unto the world upon 03/01/06 07:33 PM:

> <snip>


>
>> By contrast, today's professional bodies like law, medicine etc. have
>> independent standards of skill that must be met. I don't wish to deny
>> that knowing the right people can help smooth the procedure of
>> becoming
>> a doctor, lawyer, etc., but failing to have an uncle who is a
>> lawyer is no
>> barrier to becoming a lawyer, provided you can pass the bar exam.
>> That is
>> very different from the guild system.
>

> <snip>


>
>> Another major difference between today's professional bodies and
>> medieval
>> guilds is that the scarcity is not entirely (or even mostly)
>> caused by
>> the professional body. It is the universities controlling
>> prerequisite
>> degrees that gain more from the scarcity: within reason, the fewer
>> places
>> they offer for (say) law degrees, the higher fees they can charge for
>> them. In my inexpert opinion, the cause of shortages of experts is
>> more
>> the fault of the universities than of the professional bodies.
>

> So, just shy of 1 out of every 200 working-aged people in the USA were
> lawyers in 2000.
>
> I'm inclined to agree with the claim that law schools don't have the
> correct number of seats, but I think we might just differ on which way
> the adjustment should go :-)

<snip>

My professional body (The American Chemical Society, no, I'm not a
professional programmer), takes the opinion that the more chemists
there are in the world the better. It keeps labor costs down.

That's what happens when the professional bodies are controlled by
large corporate interests. So, meanwhile, I sit at home and wait for
the "undersupply" of scientists to correct itself. I have visions of
starting my own manufacturing company, but it's hard to find capital.
There are way too many dead and dying small companies around Michigan
and way too many unemployed scientists and engineers, and lots of us
have great ideas for companies.

Fortunately, this gives me plenty of time to learn Python and write
code to simulate and optimize my manufacturing process!

:--David

Xavier Morel

unread,
Jan 3, 2006, 4:00:44 PM1/3/06
to
Ilias Lazaridis wrote:
> I estimate that there is a "unfreeze" operation, too - which would lead
> to flexibity.
>
There is none, you have to make a copy of the object via the "dup"
(duplicate) method to get an unfrozen copy (note: clone yields an exact
copy, which means that it's still frozen).

Unfreezing an object is forbidden in Ruby.

Alex Martelli wrote:
> At the other extreme, Ruby's very productive choice is to
> allow freeze and unfreeze of everything (I believe -- but you should
> double check with a Ruby expert)

I'm no ruby expert, but I'm pretty sure there is no way to unfreeze a
frozen ruby object, you *have* to create a molten copy with the "dup"
method.

Ilias Lazaridis wrote:
> Alex Martelli wrote:
>> Ilias Lazaridis <il...@lazaridis.com> wrote:

> [...] - google stuff


>
>>> http://lazaridis.com/case/lang/python.html#simple_variable_access
>>>
>>> this leads to a new limitation:
>>>
>>> "#LIMITATION: large amount of repetitive code"

>> One normally does not define large numbers of identical accessors (there
> [...] - (extensive elaboration)
>

> possibly one can provide the code for something similar to the ruby
> attr_accessor:
>
> class Talker
> def sayHello
> puts "Hello world"
> end
>
> attr_accessor :name, :age
>
> end
>
> thus they can later be accessed this way
>
> john.age = 19
>
> print john.age
>

There is no point, these exist because a ruby attribute can *never* be
accessed from outside the object, a Ruby attribute is always private
while a Python attribute is always public. This means that you *have to*
declare properties to have the ability to access an attribute of a Ruby
object, which lead to attr_accessor, attr_reader and attr_writer as
shortcut-declarations of basic properties.

The Pythonic equivalent of Ruby's attr_accessor is merely to do nothing,
because what the attr_accessor does is:

attr_accessor :something
generates
def something
@something
end
def something= value
@something = value
end

but not doing it would prevent any access to the "something" attribute.
(attr_reader only declares the getter method, making the attribute
read-only, and attr_writer only defines the setter, making the attribute
write-only)

One thing that is very important is that in Ruby you *never* deal with
member attributes from outside the object, only methods (messages to the
object).
In Python, you deal either with methods (messages) or attributes
(datas), but these attributes can be either "real" attributes (real
unchecked data) or properties, e.g. virtual attributes (that may
generate side-effects, sanity check on the data, or _may not map to any
existing unique data in the object_) and unless you really try to, you
don't have any way to distinguish a "real" attribute from a property
("virtual" attribute), and you don't care.

>
> thus if I make a typo, I create a new attribute?
>

Why yes of course, what were you expecting?

Mike Meyer

unread,
Jan 6, 2006, 2:23:27 PM1/6/06
to
Xavier Morel <xavier...@masklinn.net> writes:

> Ilias Lazaridis wrote:
> > thus if I make a typo, I create a new attribute?
> Why yes of course, what were you expecting?

Actually, it's not quite that way. If you make a typo reading an
attribute, you'll create an exception. There are languages where
making a typo reading an exception creates the attribute, giving it
some default value.

<mike
--
Mike Meyer <m...@mired.org> http://www.mired.org/home/mwm/
Independent WWW/Perforce/FreeBSD/Unix consultant, email for more information.

Ilias Lazaridis

unread,
Jan 7, 2006, 8:30:07 AM1/7/06
to
Ilias Lazaridis wrote:
[...]
>>> For Software Engineer:
>>>
>>> """
>>> Requirements:

>>>
>>> * BS or MS in Computer Science or equivalent (PhD a plus).
>>
>> Right here.
>
> This requirement is really funny.
>
> I thought google is somehow different.
[...]

from within this thread:
http://groups.google.com/group/comp.lang.python/browse_frm/thread/ee84d45c6857843a/295b4b21eb503bde

"
I understand.

Ok, thus Google is flexible in this.

[sidenote: some jobs _require_ a degree by law]

So, I like Google again (in this context).
"

.

--
http://lazaridis.com

Alex Martelli

unread,
Jan 7, 2006, 1:18:12 PM1/7/06
to
Anton Vredegoor <anton.v...@gmail.com> wrote:

> However I still maintain that I was never able to meet these fine
> people you speak about and which you seem to know because the cost
> involved (a few hundred euro to visit pycon for example) was too high
> compared to my food budget.

Europython is cheap to attend, and has been held twice in Charleroi,
Belgium, for example -- if you're in the Netherlands, you could have
bycicled there, crashed with somebody (I've seen lots of impecunious
people offered hospitality that way), and not spent more on food than
you would by staying in the Netherlands. You'll have to invent some
better excuse, to explain why you chose not to attend it.


Alex

Anton Vredegoor

unread,
Jan 8, 2006, 10:01:10 AM1/8/06
to
Alex Martelli wrote:

I already sent some reply via google, got a server error, resent, got a
confirmation that my message was posted, but it doesn't show up and also
there's no way to retrieve my message except fishing in the cache?

Yesterday I had a post not showing up (in another group) but today it
was there. This makes me feel insecure enough about whether or not my
replies come through via google to start using another provider. It's
not like I'm on a secret google no fly list no? (slightly paranoic)

Anyway, I'm not typing all that again. Maybe it will show up tomorrow.
The gist of it is that for me a few hundred euros is and was a *lot* of
money, and that this talk about 'cheap to attend' irritates me a lot.

Anton

Alex Martelli

unread,
Jan 8, 2006, 12:37:29 PM1/8/06
to
Anton Vredegoor <anton.v...@gmail.com> wrote:
...
> > Europython is cheap to attend, and has been held twice in Charleroi,
> > Belgium, for example -- if you're in the Netherlands, you could have
...

> The gist of it is that for me a few hundred euros is and was a *lot* of
> money, and that this talk about 'cheap to attend' irritates me a lot.

I just don't understand, always assuming you're in the Netherlands, how
attending Europython in Belgium (as opposed to Pycon in the US) could
have cost hundreds of euros. Conference registration is free to
speakers, bicycling NL->BE not costly (many were driving from NL, so
bumming a ride was far from impossible either), many attendants arranged
to "crash" for free thanks to the hospitality of others, food costs in
Belgium aren't much different from those in NL.

I'm not saying a few hundred euros is 'cheap' -- it obviously isn't, if
your income is low to nonexistent; rather, I'm wondering where that
"hundreds" amount comes from. You originally mentioned only pycon
(where the need to fly to the US, for people living in Europe, can
obviously account for "hundreds of euros" already); Europython is
specifically held in Europe to be cheaper and more convenient to attend
for Europeans, and I've always met many people there who fell in the
"income low to nonexistent" bracket for one reason or another.


Alex

ru...@yahoo.com

unread,
Jan 8, 2006, 11:45:02 AM1/8/06
to

"Anton Vredegoor" <anton.v...@gmail.com> wrote:
...
> I already sent some reply via google, got a server error, resent, got a
> confirmation that my message was posted, but it doesn't show up and also
> there's no way to retrieve my message except fishing in the cache?
>
> Yesterday I had a post not showing up (in another group) but today it
> was there. This makes me feel insecure enough about whether or not my
> replies come through via google to start using another provider. It's
> not like I'm on a secret google no fly list no? (slightly paranoic)
...

Nearly every message I've posted to c.l.p. in the last week
or so from Google has been badly delayed (12-24 hours
or more) or has disappeared.

Google seems to be quite badly broken.
Or mayby there really is a c.l.p. no fly list. I noticed this
started happening right after GvR was hired. :-)

Anton Vredegoor

unread,
Jan 8, 2006, 8:38:00 AM1/8/06
to
Alex Martelli wrote:

I looked it up: 160 euro (early registration). My food budget is about
16 euro a week now, maybe even less if I want to keep feeding myself a
bit longer, maybe in 2003 my reserves were a bit higher than now, but I
had not yet learned then to be without a regular income, so I was very
scared to become pennyless at that time.

I am perfectly used to sleeping at other peoples' places, for example I
was at many go (baduk) tournaments and if the prices and atmosphere
would be anything comparable to that I guarantee you that I would have
been present.

IIRC I got an offer from Laura Creighton at the time to borrow me the
money, so one could say it was a choice, although by that time the
price had gone up to 270 euro.

But frankly indeed, I just don't even like to participate to events
that claim to be open for all but don't even acknowledge that the
barriers are extremely high compared to some participants budgets. Your
hype about it being cheap has a very chilling effect on my enthousiasm,
it's the same way with pypy congresses, which I also would have liked
to attend (and this thing even seems to be sponsored by public EU
money). Probably I am still a *rich* person, on a global scale, because
I live in a place with free internet (from a public library).

You *do* realize that even posting to usenet is impossible (or at least
very hard) for a lot of people, including me for at least 6 months. I
had to find someone to invite me to gmail and also a way to access my
previous internet account, which I lost access to when they cut my
phone line, to recieve the mail that finally enabled me to post via
google. Nowadays it's probably possible to open a hotmail account and
get invited to gmail from there, so one can post to usenet.

Theoretically I have now yet another option to post (except via
google), but IMO it remains true that one needs at least one link to
corruption to be able to post to usenet.

Anton

'hey, and my laptop doesn't even have a cdrom, needs almost continous
electricity, it's keyboard is broken (but it works fine with external
keyboard), and it networks via a pcmcia card with a *cable* '

Anton Vredegoor

unread,
Jan 8, 2006, 8:39:38 AM1/8/06
to
Alex Martelli wrote:

I looked it up: 160 euro (early registration). My food budget is about

Anton Vredegoor

unread,
Jan 9, 2006, 8:25:37 AM1/9/06
to
Alex Martelli wrote:

> I just don't understand, always assuming you're in the Netherlands, how
> attending Europython in Belgium (as opposed to Pycon in the US) could
> have cost hundreds of euros. Conference registration is free to
> speakers, bicycling NL->BE not costly (many were driving from NL, so
> bumming a ride was far from impossible either), many attendants arranged
> to "crash" for free thanks to the hospitality of others, food costs in
> Belgium aren't much different from those in NL.

Ah, I see. You're approaching this from a 'speaker' scenario. You
already have a lot of contacts, know where you can sleep, where to eat
and so on.



> I'm not saying a few hundred euros is 'cheap' -- it obviously isn't, if
> your income is low to nonexistent; rather, I'm wondering where that
> "hundreds" amount comes from. You originally mentioned only pycon
> (where the need to fly to the US, for people living in Europe, can
> obviously account for "hundreds of euros" already); Europython is
> specifically held in Europe to be cheaper and more convenient to attend
> for Europeans, and I've always met many people there who fell in the
> "income low to nonexistent" bracket for one reason or another.

Now going back to my claim that elitism is bad, I think you are the
perfect proof of my point. You live in luxurious (with respect to
community, education and financial aspects of being a computer scientist
or programmer) conditions and can just not understand why some people
have problems entering that same environment and privileged conditions
as yourself. This attitude is very common and needs only some kind
Blair-alike kind of selfhypnosis in order to effectively not being aware
of lying.

What is shunned is any form selfanalysis, because it would immediately
reveal that you yourself are violently keeping all these people out of
opportunities (the backstabbing), in your case for example by requesting
certain degrees, without realizing that what you are selecting for is
not what you think it is. It is selection for socialization and
belonging to some kind of social group, not any mental ability really,
not even the likeliness of being able to grasp Haskell which you somehow
seem to link to having a mathematical education.

Seriously, this is just a fraction of a unit above craniometry and you
would be wiser if you dropped this attitude.

Anton

Alex Martelli

unread,
Jan 9, 2006, 11:07:42 AM1/9/06
to
Anton Vredegoor <anton.v...@gmail.com> wrote:
...
> I looked it up: 160 euro (early registration). My food budget is about

_Free for conference staff_: i.e., you could choose to contribute either
by volunteering your work to help organize and run the conference, or by
paying. This is a reasonably common arrangement at community-run
conferences. Other conferences, such as Euro Oscon 2005 in Amsterdam,
which was professionally run, are free for _speakers_.

> But frankly indeed, I just don't even like to participate to events
> that claim to be open for all but don't even acknowledge that the
> barriers are extremely high compared to some participants budgets. Your

The secret is to get involved early, and actively contribute your time
and energy and skills; then, your budget will not be affected.

> hype about it being cheap has a very chilling effect on my enthousiasm,

If you have enthusiasm, show it actively, by giving positive
contributions in organizing and running the conference, or, depending on
the conference, by speaking at it. THIS makes it cheap.

Some conferences may have a little budget (put together by pooling the
contributions of those who choose to pay to attend, minus venue costs)
for "special invitees", that may attend for free, in order to allow
participation to a few who were unable to actively contribute as
organizing staff, and couldn't make it otherwise; in some cases this may
extend to contributing to travel expenses. Such budget is always very
limited, so just a few people may be helped this way, but if you're
active in the community, even if unable to actually help as staff, it's
worth applying (early on, and together with an offer to help to whatever
limited extent you may despite geography, of course).

> it's the same way with pypy congresses, which I also would have liked

I know of no such things as pypy "congresses". There are pypy
*sprints*, and there is no cost to register for them -- all you have to
do is show up and work (coding, documenting, etc).

> to attend (and this thing even seems to be sponsored by public EU
> money).

50%, yes (the other 50% must come from private contributions, that's a
EU rule for research projects). It used to be thought that some of the
EU money could be used to help pay for sprint participants' travel
expenses, but apparently something has gone wrong on that score
(probably some EU administrative requirement) -- I didn't ever see any
of the travel-expense-help money that was promised to me on one
occasion, so I had to swallow that cost myself.

However, pypy sprints have been held, for example, in Amsterdam, so for
a NL resident travel costs (and there never were any other) should have
been truly minute.

> google), but IMO it remains true that one needs at least one link to
> corruption to be able to post to usenet.

If you define every academic center and every private firm as
"corruption", yep -- Usenet is typically accessed through those.


Alex

Alex Martelli

unread,
Jan 9, 2006, 11:33:23 AM1/9/06
to
Anton Vredegoor <anton.v...@gmail.com> wrote:
...
> Ah, I see. You're approaching this from a 'speaker' scenario. You
> already have a lot of contacts, know where you can sleep, where to eat

I am active in the community, and have long been, trying to help out to
the best of my abilities. Should I travel to some place X "on a
shoestring", while I wouldn't necessarily know _beforehand_ where to
sleep or eat, I would be able to ask around and see if anyone can offer
me a place to sleep (and maybe some food), just as I've offered them in
the past to friends visiting me in similar conditions.

This is the way communities _work_: you always offer help, as much as
you can, and you may (if you ever need it) get some help in return.


> Now going back to my claim that elitism is bad, I think you are the
> perfect proof of my point. You live in luxurious (with respect to
> community, education and financial aspects of being a computer scientist
> or programmer) conditions and can just not understand why some people
> have problems entering that same environment and privileged conditions
> as yourself.

I currently live in excellent ways, yes, but have no problem at all
understanding why some (indeed many) people, at least at some times in
their lives, do not -- the reasons are many and varied, but I have known
and often befriended huge numbers of people in "down and out"
situations, and in a few cases been able to help them back up. People
who attempt to *guilt-trip* me into helping have never been and will
never been in that lot: in this way, I'm definitely not a typical, guilt
driven "bleeding heart". I try to help people who are trying to help
themselves, and the kind of mixed whining and attacks which you are
producing is a great example of the very opposite: you don't want help
getting up, you want to drag others down. That's a game I don't play.

> This attitude is very common and needs only some kind
> Blair-alike kind of selfhypnosis in order to effectively not being aware
> of lying.
>
> What is shunned is any form selfanalysis, because it would immediately
> reveal that you yourself are violently keeping all these people out of
> opportunities (the backstabbing), in your case for example by requesting
> certain degrees, without realizing that what you are selecting for is
> not what you think it is.

I am perfectly aware of what university degrees mean and don't mean: in
a situation of asymmetric information, they're signals (ones somewhat
hard to fake) about how much somebody believes in themselves and are
willing to invest in themselves. The literature is quite vast and
exhaustive on this analysis, and I'm reasonably well-read in it, even
though it's not my professional field.

The mental jump from this to "violently" and "backstabbing" singles you
out as a particularly weird lunatic, of course. But it's not quite as
laughable as your unsupported assumption about "lack of self-analysis",
resting only on your erroneous premise that "it would immediately
reveal" these absurdities. The unexamined life is not worth living, and
I do examine mine, but what the examination reveals has absolutely
nothing to do with what you baldly assert it would.

> It is selection for socialization and
> belonging to some kind of social group, not any mental ability really,

Both: there are people who belong and are socialized but just lack the
mental ability (including sticktoitiveness and stamina) to stay the
course, and others who, despite coming from the most disadvantaged
backgrounds, still make it all the way through, bases on sheer ability
and determination. Adding the "or equivalent", and "or equivalent
experience", clauses, as present in many of our job offers, tries to
widen the catchment area to at least some people who didn't make it but
can still demonstrate they have the "mental abilities" in question.

> not even the likeliness of being able to grasp Haskell which you somehow
> seem to link to having a mathematical education.

My working hypothesis in the matter is that there is a mindset, a kind
or way of thinking, which helps with both grasping FP languages AND
grasping abstract mathematical disciplines.

> Seriously, this is just a fraction of a unit above craniometry and you
> would be wiser if you dropped this attitude.

And hired hundreds of thousands of people a year (that's about the
number of resumes we get now, WITH the current job offers) without
selection? Sure, that would definitely ensure wisdom. Yeah, right.

You're so pathetic you aren't even funny.


Alex

Hans Nowak

unread,
Jan 9, 2006, 11:39:09 AM1/9/06
to
Anton Vredegoor wrote:

> Now going back to my claim that elitism is bad, I think you are the
> perfect proof of my point. You live in luxurious (with respect to
> community, education and financial aspects of being a computer scientist
> or programmer) conditions and can just not understand why some people
> have problems entering that same environment and privileged conditions
> as yourself. This attitude is very common and needs only some kind
> Blair-alike kind of selfhypnosis in order to effectively not being aware
> of lying.

Tony Blair, or the Blair Witch project?

--
Hans Nowak
http://zephyrfalcon.org/

Steve Holden

unread,
Jan 9, 2006, 7:03:20 PM1/9/06
to pytho...@python.org
Anton Vredegoor wrote:
> Alex Martelli wrote:
>
>
>>I just don't understand, always assuming you're in the Netherlands, how
>>attending Europython in Belgium (as opposed to Pycon in the US) could
>>have cost hundreds of euros. Conference registration is free to
>>speakers, bicycling NL->BE not costly (many were driving from NL, so
>>bumming a ride was far from impossible either), many attendants arranged
>>to "crash" for free thanks to the hospitality of others, food costs in
>>Belgium aren't much different from those in NL.
>
>
> Ah, I see. You're approaching this from a 'speaker' scenario. You
> already have a lot of contacts, know where you can sleep, where to eat
> and so on.
>
If you can't afford to go to conferences, don't bitch about it if you
are (as you apparently claim to be) impecunious by choice.

I personally expended a lot of effort to reduce the costs of US
conference attendance by converting the International Python Conferences
(expensive, "professionally" organised) into PyCon (cheap and cheerful,
community-oriented). It's my understanding that EuroPython is even more
community-oriented than PyCon.

Maybe you just weren't prepared to *ask* about how to attend cheaply?

>
>>I'm not saying a few hundred euros is 'cheap' -- it obviously isn't, if
>>your income is low to nonexistent; rather, I'm wondering where that
>>"hundreds" amount comes from. You originally mentioned only pycon
>>(where the need to fly to the US, for people living in Europe, can
>>obviously account for "hundreds of euros" already); Europython is
>>specifically held in Europe to be cheaper and more convenient to attend
>>for Europeans, and I've always met many people there who fell in the
>>"income low to nonexistent" bracket for one reason or another.
>
>
> Now going back to my claim that elitism is bad, I think you are the
> perfect proof of my point. You live in luxurious (with respect to
> community, education and financial aspects of being a computer scientist
> or programmer) conditions and can just not understand why some people
> have problems entering that same environment and privileged conditions
> as yourself. This attitude is very common and needs only some kind
> Blair-alike kind of selfhypnosis in order to effectively not being aware
> of lying.
>

On the available evidence that seems completely untrue. Alex, as I know
from personal experience, has no problems accepting the material rewards
of a lifetime spent developing expertise, but that doesn't make him
elitist. I have seen him helping Python programmers without any monetary
reward (and he got precious little for all the time he spent as a
technical editor of "Python Web Programming"), and I know him to be
quite far from elitist.

> What is shunned is any form selfanalysis, because it would immediately
> reveal that you yourself are violently keeping all these people out of
> opportunities (the backstabbing), in your case for example by requesting
> certain degrees, without realizing that what you are selecting for is
> not what you think it is. It is selection for socialization and
> belonging to some kind of social group, not any mental ability really,
> not even the likeliness of being able to grasp Haskell which you somehow
> seem to link to having a mathematical education.
>

Are there *any* mirrors in your life?

> Seriously, this is just a fraction of a unit above craniometry and you
> would be wiser if you dropped this attitude.
>

I think the chip on your shoulder is forcing you to stand crooked.

How sad the world isn't organised the way *you* think it should be. Of
course this naturally means the world needs changing, not you ... or are
you just "linear combinations of social peer pressure vectors"?

regards
Steve
--
Steve Holden +44 150 684 7255 +1 800 494 3119
Holden Web LLC www.holdenweb.com
PyCon TX 2006 www.python.org/pycon/

Steve Holden

unread,
Jan 9, 2006, 7:10:08 PM1/9/06
to pytho...@python.org
Anton Vredegoor wrote:
[...]

> But frankly indeed, I just don't even like to participate to events
> that claim to be open for all but don't even acknowledge that the
> barriers are extremely high compared to some participants budgets. Your
> hype about it being cheap has a very chilling effect on my enthousiasm,
> it's the same way with pypy congresses, which I also would have liked
> to attend (and this thing even seems to be sponsored by public EU
> money). Probably I am still a *rich* person, on a global scale, because
> I live in a place with free internet (from a public library).
>
[...]
Well, if you can organise conferences that have lower costs of
attendance might I suggest you go ahead and do so? Personally I found
that venues were remarkably unhelpful in wanting to be rewarded for
their donations of facilities.

I'm not saying that conferences *can't* be organised more cheaply than
PyCon and EuroPython, just that to do so would take a considerable extra
level of effort that those of us who have compromised to the extent of
wanting to earn a living just can't give up enough time to manage.

So get off your soapbox and do something.

>
> 'hey, and my laptop doesn't even have a cdrom, needs almost continous
> electricity, it's keyboard is broken (but it works fine with external
> keyboard), and it networks via a pcmcia card with a *cable* '
>

What do you want, a medal? You've made life choices, which is fine. Just
don't moan about the inevitable and predictable consequences of those
choices. Instead enjoy that advantages (like you don't have to spend
weeks at a time away from home working for clients or teaching classes,
for example). Everything has its compensations. If you *could* bring
down the cost of computer conferences the world would be forever grateful.

Alex Martelli

unread,
Jan 9, 2006, 10:21:04 PM1/9/06
to
Steve Holden <st...@holdenweb.com> wrote:
...

> On the available evidence that seems completely untrue. Alex, as I know
> from personal experience, has no problems accepting the material rewards
> of a lifetime spent developing expertise, but that doesn't make him
> elitist.

I guess what DOES make me an elitist is that I'm perfectly happy to see
greater material rewards go to those who have greater skills or are more
inclined to exert constructive effort. NOT to the skewed extent one
observes in some countries -- I think countries such as Denmark, Japan,
Sweden, and Belgium, with Gini indices of 25 or less, strike a better
balance than ones such as the UK or Italy, with 36, not to mention the
US's 40 or Brazil's 60 (particularly because it's far from certain, in
high-Gini-index countries, that the "greater material rewards" are
actually mostly flowing to the elite who I think _deserves_ them, the
people who work hard and successfully and thus contribute to everybody's
benefit, as opposed to, people whose only substantial "contribution" has
been to get born in the right family). But, that's another issue.

> I have seen him helping Python programmers without any monetary
> reward (and he got precious little for all the time he spent as a
> technical editor of "Python Web Programming"),

Actually, I got the enormous pleasure of enjoying your work, and of
helping you (and helping friends is always a joy!) AND the whole
programming community (by helping you enhance a book that was already
good to start with). _Material_ rewards are not the only ones that
matter, not by a great deal!

> and I know him to be quite far from elitist.

I guess you and I have in mind different meanings for the word
"elitist", because, as above outlined, I do consider myself one. Even
though I believe in the "wisdom of crowds", I'm definitely anything but
a *populist* -- the "wise crowd", as I see it, is one where each
individual makes up his or her own mind on their own criteria, all
different but all compatible with rationality, as opposed to "following
the herd" or "fashion".


Alex

Armin Rigo

unread,
Jan 10, 2006, 6:52:35 AM1/10/06
to Alex Martelli
Hi Alex,

On Mon, 9 Jan 2006, Alex Martelli wrote:
> 50%, yes (the other 50% must come from private contributions, that's a
> EU rule for research projects). It used to be thought that some of the
> EU money could be used to help pay for sprint participants' travel
> expenses, but apparently something has gone wrong on that score
> (probably some EU administrative requirement) -- I didn't ever see any
> of the travel-expense-help money that was promised to me on one
> occasion, so I had to swallow that cost myself.

This is not the whole truth. We have some procedure now for funding
travel costs, although it's admittedly very bureaucratic :-(

Anyway, independently of this, there are some people we are happy to see
come back again and again to PyPy sprints even though we know their budget
is extremely limited. We have always arranged things for them to minimize
the costs. It's nothing like a "congress" where you have to pay XXX/day
for having water and cake brought to the tables by the staff at 10am. I
can certainly say that attending a PyPy sprint is not expensive at all;
I'd expect the major problem to be rather to find a week's free time for
it.

On the bureaucratic side: Alex, we *have* a procedure at this point, and
we have been trying to contact you several time in the past months -- with
no success as far as I know, so I'll try via comp.lang.python this time
:-) If you still feel like seeing your money back in exchange for some
papers to fill and sign, please show up...


A bientot,

Armin

Message has been deleted

Anton Vredegoor

unread,
Jan 10, 2006, 12:24:51 PM1/10/06
to
Armin Rigo wrote:

> We have some procedure now for funding
> travel costs, although it's admittedly very bureaucratic :-(

Since next sprint is in Palma de Mallorca I trust I can count on PyPy
to refund me the money?

> Anyway, independently of this, there are some people we are happy to see
> come back again and again to PyPy sprints even though we know their budget
> is extremely limited. We have always arranged things for them to minimize
> the costs. It's nothing like a "congress" where you have to pay XXX/day
> for having water and cake brought to the tables by the staff at 10am. I
> can certainly say that attending a PyPy sprint is not expensive at all;
> I'd expect the major problem to be rather to find a week's free time for
> it.

There seems to have been a relatively inexpensive sprint in Heidelberg.
So yes sometimes PyPy sprints can be inexpensive. But the associated
costs if one has to rent a room in a hotel would still make it
impossible for me to attend. What prompted me to cluster PyPy sprints
with the expensive stuff was this sprint:

http://www.trillke.net/images/HomePagePictureSmall.jpg

Although I can't find pricing info now, I believe that at the time I
considered the costs involved with the rent of the meeting place
exorbitant.

> On the bureaucratic side: Alex, we *have* a procedure at this point, and
> we have been trying to contact you several time in the past months -- with
> no success as far as I know, so I'll try via comp.lang.python this time
> :-) If you still feel like seeing your money back in exchange for some
> papers to fill and sign, please show up...

Maybe Mr Martelli will ease his conscience (it's hard to see how it
would not bother him to refuse to pick up checks while his opponents
barely have enough to feed themselves) by donating the money to me, so
that I might increase my efforts to squelch any remaining trace of
elitism at google.

Anton

"I'd even look into PyPy sprint options at Maastricht, so you'd get
extra value for your money"

Anton Vredegoor

unread,
Jan 10, 2006, 1:15:37 PM1/10/06
to
Alex Martelli wrote:

> situations, and in a few cases been able to help them back up. People
> who attempt to *guilt-trip* me into helping have never been and will
> never been in that lot: in this way, I'm definitely not a typical, guilt
> driven "bleeding heart". I try to help people who are trying to help
> themselves, and the kind of mixed whining and attacks which you are
> producing is a great example of the very opposite: you don't want help
> getting up, you want to drag others down. That's a game I don't play.

You got that all wrong. I am trying to save google (and our precious
Python personel there) from vanishing into oblivion because they would
be unfit for the future because of their elitist selection procedures.
Yes, refusing to give in to corruption has cost me a lot, but it has
also cleared my mind.

You are not my superior (or even considered to be more succesfull) as
you seem to imply. Rather you are suffering from delusions of
grandiosity and from unfounded assumptions of connections between
programming abilities and academic educations. I am merely giving my
point of view to the community. If that bothers you that is *your*
problem.

I would understand if you would settle matters rather by arguments than
just waiting for me to run out of food. You might even make a small
donation to prove your good intentions, but it shouldn't influence the
discussion in the way of argumentation.

> I am perfectly aware of what university degrees mean and don't mean: in
> a situation of asymmetric information, they're signals (ones somewhat
> hard to fake) about how much somebody believes in themselves and are
> willing to invest in themselves. The literature is quite vast and
> exhaustive on this analysis, and I'm reasonably well-read in it, even
> though it's not my professional field.

The problem is that universities now have very strong competition in
the form of internet, where noone bothers with trying to keep
university title structures intact. Since that always was more than 95
percent of the universities' effort (as I claimed before, but noone has
given arguments against, and in fact some agreed implicitly) one can
understand that this competition is fierce. If we want Google to
survive in the noosphere it *has* to lose this attitude problem, be it
the hard way or out of its own reflection.

> The mental jump from this to "violently" and "backstabbing" singles you
> out as a particularly weird lunatic, of course. But it's not quite as
> laughable as your unsupported assumption about "lack of self-analysis",
> resting only on your erroneous premise that "it would immediately
> reveal" these absurdities. The unexamined life is not worth living, and
> I do examine mine, but what the examination reveals has absolutely
> nothing to do with what you baldly assert it would.

Since your elitist selection process has you at the top, you don't even
have the slightest chance of coming around as a reasonable person,
unless you would explicitly consider the idea that you could be wrong
and degrees *are* BS.

> > It is selection for socialization and
> > belonging to some kind of social group, not any mental ability really,
>
> Both: there are people who belong and are socialized but just lack the
> mental ability (including sticktoitiveness and stamina) to stay the
> course, and others who, despite coming from the most disadvantaged
> backgrounds, still make it all the way through, bases on sheer ability
> and determination. Adding the "or equivalent", and "or equivalent
> experience", clauses, as present in many of our job offers, tries to
> widen the catchment area to at least some people who didn't make it but
> can still demonstrate they have the "mental abilities" in question.

Can't you see that you have the guards guarding the guards here?

> > not even the likeliness of being able to grasp Haskell which you somehow
> > seem to link to having a mathematical education.
>
> My working hypothesis in the matter is that there is a mindset, a kind
> or way of thinking, which helps with both grasping FP languages AND
> grasping abstract mathematical disciplines.

I guess it would seriously hurt you if programming abilities would be
linked to your other forte, the (considered as soft alpha scientific)
linguistic abilities.

> > Seriously, this is just a fraction of a unit above craniometry and you
> > would be wiser if you dropped this attitude.
>
> And hired hundreds of thousands of people a year (that's about the
> number of resumes we get now, WITH the current job offers) without
> selection? Sure, that would definitely ensure wisdom. Yeah, right.
>
> You're so pathetic you aren't even funny.

Wait till I remove all hashing code from dictionaries. Sometimes giving
up speed in the short term, results in speeding up the process as a
whole because it becomes possible to use intermediary results more
effectively. I have seen groups of mathematicians splitting up and each
going into their own room and after each had solved their own
interpretation of their piece of the problem, the resulting code was
not even using the same dataformats.

Sometimes adding an attractive female to a group of young male coders
will slow down the developments while it wouldn't matter in a team of
female coders. One has to consider the *complete* system, which is
another fault in your monocultural elitist selection process. Sometimes
adding a very strange element to a team can prevent it from being a
'linear combination of social peer pressure vectors'. Face your fears.

Anton

Steve Holden

unread,
Jan 10, 2006, 6:19:18 PM1/10/06
to pytho...@python.org
Anton Vredegoor wrote:
[stuuf]

>
> 'excuse me if I sound a bit bitter and as if suffering from a sense of
> untitlement'
>
Consider yourself excused. Now stop whining and go do the things you *can*.

Steve Holden

unread,
Jan 10, 2006, 6:29:23 PM1/10/06
to pytho...@python.org
Ilias Lazaridis wrote:
[...]
> [...]
>
> -
>
> TAG.google.evolution.talent.detection
>
TAG.who.gives.a.rats.ass

Carl Friedrich Bolz

unread,
Jan 10, 2006, 6:42:14 PM1/10/06
to pytho...@python.org
Hi!

Anton Vredegoor wrote:
> Armin Rigo wrote:
>
>
>> We have some procedure now for funding
>>travel costs, although it's admittedly very bureaucratic :-(
>
>
> Since next sprint is in Palma de Mallorca I trust I can count on PyPy
> to refund me the money?

If you want to attend the sprint you should contact the mailing list
pypy-...@codespeak.net. For more contact possibilities see

http://codespeak.net/pypy/dist/pypy/doc/contact.html

>
>>Anyway, independently of this, there are some people we are happy to see
>>come back again and again to PyPy sprints even though we know their budget
>>is extremely limited. We have always arranged things for them to minimize
>>the costs. It's nothing like a "congress" where you have to pay XXX/day
>>for having water and cake brought to the tables by the staff at 10am. I
>>can certainly say that attending a PyPy sprint is not expensive at all;
>>I'd expect the major problem to be rather to find a week's free time for
>>it.
>
>
> There seems to have been a relatively inexpensive sprint in Heidelberg.
> So yes sometimes PyPy sprints can be inexpensive. But the associated
> costs if one has to rent a room in a hotel would still make it
> impossible for me to attend.

The trick again was to talk to people: I organized the sprint there and
found some _very_ inexpensive rooms for several people, so it could have
worked if you had asked.

> What prompted me to cluster PyPy sprints
> with the expensive stuff was this sprint:
>
> http://www.trillke.net/images/HomePagePictureSmall.jpg
>
> Although I can't find pricing info now, I believe that at the time I
> considered the costs involved with the rent of the meeting place
> exorbitant.

Hehe. You could not have been farther from the truth. This is the house
where Holger Krekel (one of the founders of the PyPy project) lives in,
together with roughly fifty other people. Accomodation in there was free.

[snip]


> "I'd even look into PyPy sprint options at Maastricht, so you'd get
> extra value for your money"

We are always looking for places to do sprints, so if you know any venue
where holding such an event is possible we would be glad if you
contacted us. Organizing a sprint in your home town is always a
possibility to have free accomodation at a sprint :-).

Cheers,

Carl Friedrich Bolz

Fredrik Lundh

unread,
Jan 10, 2006, 6:43:35 PM1/10/06
to pytho...@python.org
TAG.how.come.this.thread.generates.kooks.faster.than.I.can.plonk.them.questionmark

Steve Holden

unread,
Jan 10, 2006, 6:56:21 PM1/10/06
to pytho...@python.org
Fredrik Lundh wrote:
> TAG.how.come.this.thread.generates.kooks.faster.than.I.can.plonk.them.questionmark
>
TAG.did.you.just.call.me.a.kook.questionmark
TAG.above.tag.not.actually.valid

Fredrik Lundh

unread,
Jan 10, 2006, 7:00:03 PM1/10/06
to pytho...@python.org
> TAG.did.you.just.call.me.a.kook.questionmark

TAG.no.dash.but.if.you.keep.replying.to.them.all.the.time.i.may.have.to.plonk.you.too.smiley

Alex Martelli

unread,
Jan 11, 2006, 12:19:39 AM1/11/06
to
Anton Vredegoor <anton.v...@gmail.com> wrote:
...
> > On the bureaucratic side: Alex, we *have* a procedure at this point, and
> > we have been trying to contact you several time in the past months -- with
> > no success as far as I know, so I'll try via comp.lang.python this time
> > :-) If you still feel like seeing your money back in exchange for some
> > papers to fill and sign, please show up...
>
> Maybe Mr Martelli will ease his conscience (it's hard to see how it
> would not bother him to refuse to pick up checks while his opponents
> barely have enough to feed themselves) by donating the money to me, so
> that I might increase my efforts to squelch any remaining trace of
> elitism at google.

Don't hold your breath -- I can think of at least a thousand worthy
charities (not to even mention individuals) I'd donate to, before giving
you one eurocent, if I had money burning holes in my pockets. The evil,
perverted way in which you distort pypy's inexplicable difficulties in
contacting me (when I've exchanged mails on a different subject, less
than a month ago, with the CEO of one of the consortium's companies)
into me "refusing to pick up checks", would be funny if it weren't just
too pathetic.


Alex

Alex Martelli

unread,
Jan 11, 2006, 12:19:40 AM1/11/06
to
Anton Vredegoor <anton.v...@gmail.com> wrote:
...
> You are not my superior (or even considered to be more succesfull) as
> you seem to imply.

Depends on who does the considering, I'm sure. If the considerer loves
the English language, for example, a horrible mis-spelling such as
"successfull" with two final L's would count for a lot in their judgment
(English is neither your native language nor mine, so it's not unfair to
either of us to consider it...;-).

> I am merely giving my
> point of view to the community. If that bothers you that is *your*
> problem.

You said that Google only hires people with "long histories of
backstabbing", thus directly insulting everybody who's ever been hired
by Google (among others). If your spewing such hateful and baseless
insults bothers those who read them, it's not JUST the readers' problem:
it directly reflects on your base, spiteful, and hateful behavior.

> I would understand if you would settle matters rather by arguments than
> just waiting for me to run out of food. You might even make a small
> donation to prove your good intentions, but it shouldn't influence the
> discussion in the way of argumentation.

My intentions in YOUR regard, given the above-mentioned insult, are
anything BUT good: on the contrary, I consider you a particularly
disgusting vermin, and should it ever be in my power to make you pay for
it without unduly inconveniencing myself (which is, of course, quite
unlikely), I might well do so.


> > I am perfectly aware of what university degrees mean and don't mean: in
> > a situation of asymmetric information, they're signals (ones somewhat
> > hard to fake) about how much somebody believes in themselves and are
> > willing to invest in themselves. The literature is quite vast and
> > exhaustive on this analysis, and I'm reasonably well-read in it, even
> > though it's not my professional field.
>
> The problem is that universities now have very strong competition in
> the form of internet, where noone bothers with trying to keep
> university title structures intact. Since that always was more than 95
> percent of the universities' effort (as I claimed before, but noone has
> given arguments against, and in fact some agreed implicitly) one can
> understand that this competition is fierce. If we want Google to
> survive in the noosphere it *has* to lose this attitude problem, be it
> the hard way or out of its own reflection.

Giving outstanding contributions to open-source projects or others made
feasible by the internet is, of course, another "hard to fake signal" in
terms of asymmetric-information markets. And of course, Google will
happily accept resumes from such "stars of open source". For example,
Eric Raymond has no university degree, but, were he to apply for a job
at Google, rest assured that his resume would be happily considered,
under the "or equivalent" clause of many of our job offers. Of course,
Eric is "outstanding among the outstanding", but similar considerations
may apply to many lesser stars in the open-source firmament.


> Since your elitist selection process has you at the top,

Nope -- that's Eric Shmidt (or, from a slightly different POV, Larry and
Sergey).

> you don't even
> have the slightest chance of coming around as a reasonable person,

Obviously not to *you* -- and considering the quality of your
"reasoning", I think that's quite a compliment to me.

> unless you would explicitly consider the idea that you could be wrong
> and degrees *are* BS.

I repeat: they're (among other things) "hard to fake signals" in an
asymmetric information market. Your local library no doubt has (or can
get by inter-library loan) Akerlof's "An economist theorist's book of
tales": get it and study up on the essay "The market for lemons", which
was worth to Akerlof a well-deserved Nobel Memorial Prize. Until you
understand the basics of asymmetric-information markets, it's not worth
discussing to what extent degrees interact with such markets.

> Can't you see that you have the guards guarding the guards here?

Are you objecting to the fact that a firm's existing employees have the
task of selecting future employees of the same firm? Who else do you
suggest for the purpose -- astrologers?

> > > not even the likeliness of being able to grasp Haskell which you somehow
> > > seem to link to having a mathematical education.
> >
> > My working hypothesis in the matter is that there is a mindset, a kind
> > or way of thinking, which helps with both grasping FP languages AND
> > grasping abstract mathematical disciplines.
>
> I guess it would seriously hurt you if programming abilities would be
> linked to your other forte, the (considered as soft alpha scientific)
> linguistic abilities.

Programming *in general* may well be linked to linguistic abilities,
although I'd really love somebody to explain to me why MOST excellent
programmers hate writing docs and aren't good at it. Programming _in FP
languages_ appears to be favored by a somewhat different mindset than
programming in procedural and OO languages, and I observe empirically
that the former is more often linked to a grasp of abstract maths.

Not sure what you mean by "my _other_ forte" -- though I like many forms
of maths, I have no degree in maths or CS -- my degree was in Electronic
Engineering. I'm definitely not in the upper centile among Googlers in
either abstract maths or functional programming, though I may be in the
specific field of (applied) "linguistic abilities".


> Sometimes adding an attractive female to a group of young male coders
> will slow down the developments while it wouldn't matter in a team of
> female coders. One has to consider the *complete* system, which is
> another fault in your monocultural elitist selection process. Sometimes

I think diversity along many axes may enhance a team's prowess, at least
when proper management guidance helps steer the whole through its
never-denied nonlinearities. And anybody with the least knowledge of
Google would find "monocultural" the last word coming to mind to
characterize it. But some aspects, which include both an appreciation
for diversity AND outstanding individual abilities, are indispensable to
make the whole mix work. So we strive for diversity, but NOT by
including individuals whose abilties aren't outstanding, nor ones who
cannot thrive in an extremely diverse environment.

> adding a very strange element to a team can prevent it from being a
> 'linear combination of social peer pressure vectors'. Face your fears.

Anything but linear. But that's not a FEAR of mine -- I would call it a
HOPE, were it not for the fact that I see it concretely happening every
day at work: teams that produce more value than the sum of their parts
would, with mutual respect and amity growing among people from the
wildest and most diverse mix of backgrounds and personalities.


Alex

Steve Holden

unread,
Jan 10, 2006, 6:13:01 PM1/10/06
to pytho...@python.org
Steven D'Aprano wrote:
> On Tue, 03 Jan 2006 08:27:39 -0800, Alex Martelli wrote:
>
>
>>Or some even more stringent qualification, such as the state's Bar exam
>>for lawyers -- you may not be able to sit for that exam w/o the
>>appropriate degree, but the degree by itself is not enough, you still
>>have to pass the exam. It is that way for Engineers in Italy (I passed
>>my State Exam in the early '80s), although you only need the certificate
>>for some specific professional undertakings (e.g. design a ship, or a
>>large building, or technically supervise building operations beyond a
>>certain size -- not to write software or to design chips).
>>
>>Personally, I agree with the theory, first expressed by Adam Smith, that
>>such barriers to entry are mostly useful to grant practitioners of a
>>certain profession the "scarcity value" that lets them charge higher
>>prices, although of course they're always presented as "good for
>>society". Note that in Europe in the Middle Ages you needed strict
>>qualifications of that kind for just about anything -- you could not
>>make hats unless you belonged to the Hatters' Guild, etc; most of those
>>restrictions have since been lifted, but a few groups (doctors, lawyers,
>>accountants, ...) have managed to keep them in place.
>
>
> Let's not confuse the medieval guild system with today's system. Guilds
> were more like clubs than professional bodies: it was who you knew, rather
> than what you knew, that decided whether you got in. You were forbidden
> from becoming (say) a hat maker unless the other hat makers allowed you to
> join the guild. There was no independent, or even semi-independent, body
> who decided what qualifications were needed to make hats. It was all about
> who you knew -- if your uncle's best friend was a hat maker, you could be
> apprenticed to a hat maker and join the guild, otherwise there was no exam
> to sit that got you in, no matter how talented you were.
>
I believe you are overlooking the fact that you had to serve an
apprenticeship that only ended when you ether produced work of master
craftsman quality or decided you would be better employed elsewhere.
This isn't to refute the truth of Smith's assertion that the guilds
controlled scarcity, giving them some control over price. But today's
world, the world of "polite incompetence" (a phrase used about Virginia
society by a dear neighbour in the USA) where few can perform the jobs
they are paid to, but everything is cheap.

> This system combined the worst of all outcomes: you got artificial
> scarcity with the monopoly pricing that leads to, *plus* it failed to
> enforce or even encourage minimum standards of skill and strategy.
>
Wrong [see above]. I don't remember many mediaeval cathedrals falling
down, but the Tacoma Narrows bridge was a practical lesson in
engineering. So what's your real point?

> By contrast, today's professional bodies like law, medicine etc. have
> independent standards of skill that must be met. I don't wish to deny
> that knowing the right people can help smooth the procedure of becoming
> a doctor, lawyer, etc., but failing to have an uncle who is a lawyer is no
> barrier to becoming a lawyer, provided you can pass the bar exam. That is
> very different from the guild system.
>
Well, one might equally argue that becoming a master mason in the past
required you to produce master masonic work. Since professions and
crafts are somewhat different, however, it's unlikely to be fruitful to
attempt to draw direct comparisons. Maybe having an uncle helped you in
to the trade, but it didn't cut you much slack in terms of required
standards, hence the absence of cathedral-shaped heaps of rubble. York
Minster was built in the 1400s, for example, and doesn't look like
falling down any time soon.

I can't think of many modern American houses likely to survive more than
a century. They are built to a price, not a quality. The situation is
rather different in some other countries, where natural resources have
been depleted for longer and are correspondingly more valued.

> In general, professional bodies like engineers, doctors, etc. do a
> reasonable job of enforcing minimum standards of skill and quality.
> Certainly there are a lot fewer building collapses in countries that
> enforce building standards than countries that allow the free market to
> decide.
>
The major problem with professional bodies is precisely their lack of
insistence on a practical demonstration of capability. "Paper MCSEs",
for example, frequently make bad Windows system administrators because
their education has been geared to the acquisition not of practical
skills but of the qualification itself. The medical profession acquits
itself reasonably because it does still require a good amount of
doctoring before qualification. Why are the lawyer jokes not doctor jokes?

> Free market radicals like to sneer at "for the good of society" arguments,
> but the problem with their reasoning is that they only consider the
> monetary cost of hiring a professional, and not the other costs. Of course
> anything that makes professionals scarce will increase the cost of hiring
> that professional. But they fail to take into account the externalities
> that come from increasing the numbers of under-qualified, shoddy
> professionals.
>
Damn socialists, when will they stop insisting that profit isn't the
most practical measure of quality? :-)

> The free market often works well for (say) enforcing minimum standards for
> bread: anyone who can taste can recognise good bread from bad, and if you
> buy bad bread from a baker today you simply will go to another baker
> tomorrow. But dealing with accountants, lawyers, doctors etc. is very
> different. Expert opinions are not like bread: only a fellow expert can
> recognise good advice from bad advice. Most people buy bread at least once
> a week, but might only get legal advice once or twice in their life. Under
> these circumstances, Adam Smith's Invisible Hand is feeble indeed, and
> shonky rip-off merchants and incompetents thrive, harming everyone.
>
Right. If I am wrongly executed for a murder I didn't commit it will be
a long time before I use the same lawyer in another case.

But there are other complexities you fail to consider. For example, Java
has been "puffed" as a desirable language for so long now (around ten
years) that even non-technical managers who shouldn't be allowed within
a mile of a language choice feel quite at liberty to say "all our
applications will be written in Java".

This has the even less pleasant effect that impressionable young people
entering the industry see "learning" Java as the way to make a living,
and can indeed make some sort of a living without ever having to
demonstrate competence as a programmer. Which accounts for the abysmally
poor quality of much Java code.

> That's not to say that skilled experts can't make a living -- in an
> economy filled with snake-oil medical practitioners, good experts who
> get a good reputation can charge a high premium. People who find a
> good doctor or lawyer will recommend him to their friends. This squeezes
> out the middle: new, but skilled, experts get lost in the sea of shonkies,
> but the tiny minority that manage to get a reputation will attract
> near-monopoly pricing. That leads to a two-tier system where only the rich
> and powerful can afford good experts, be they doctors, lawyers, engineers
> or accountants, and everyone else either goes without or are forced into a
> lottery where the vast majority of experts they can afford are incompetent.
>
Welcome to capitalism. Only six more major wars and everyone will be
doing it.

> Another major difference between today's professional bodies and medieval
> guilds is that the scarcity is not entirely (or even mostly) caused by
> the professional body. It is the universities controlling prerequisite
> degrees that gain more from the scarcity: within reason, the fewer places
> they offer for (say) law degrees, the higher fees they can charge for
> them. In my inexpert opinion, the cause of shortages of experts is more
> the fault of the universities than of the professional bodies.
>
>
This unfortunately does not accord with the unseemly spectacle of the
universities rushing a "sell" their "product" to the "market", despite
the fact that few academics have ever had to make a living by selling
anything, let alone justifying the price of their products by providing
acceptable quality and a money-back guarantee.

As the degree mill becomes an industry the intake pyramid inevitably
broadens to include those of lower intellect, and unless the standard of
education (which should perhaps now really be called training since so
much of the academic world appears to be vocationally focussed) improves
radically the inevitable result is a decline in the practical abilities
of the graduates.

When *I* was an academic, teaching was regarded as a fundamentally
boring part of the role. That was one of the reasons I stopped being an
academic, since it was the most interesting part from my point of view.

I don't believe much has happened to change academic perceptions (i.e. I
suspect the average academic resume will emphasise research rather than
teaching success), but the surrounding system incessantly demands people
who can write mediocre software rather than genuine original thinkers,
so the universities become degree mills to earn the capitation fees to
fund the research they are supposed to be about.

regards
Steve

Richard Brodie

unread,
Jan 11, 2006, 6:06:47 AM1/11/06
to

"Steve Holden" <st...@holdenweb.com> wrote in message
news:mailman.314.11369700...@python.org...

> Wrong [see above]. I don't remember many mediaeval cathedrals falling down.

Your memory of medieval times has gone a bit hazy I expect; in truth,
some would fall down from time to time, particularly if the builders tried
something particularly ambitious. What are left are the good designs.


Anton Vredegoor

unread,
Jan 11, 2006, 8:37:53 AM1/11/06
to
Alex Martelli wrote:

> Anton Vredegoor <anton.v...@gmail.com> wrote:
> ...
> > You are not my superior (or even considered to be more succesfull) as
> > you seem to imply.
>
> Depends on who does the considering, I'm sure. If the considerer loves
> the English language, for example, a horrible mis-spelling such as
> "successfull" with two final L's would count for a lot in their judgment
> (English is neither your native language nor mine, so it's not unfair to
> either of us to consider it...;-).

Well this sums it all up for me, about you. Making stupid claims to
superiority while comfortably sitting at a computer *with a
spellchecker* and denying me the same priviliges, not even by
correcting google's _usenet_ interface (while its mail interface
includes at least a minimally functional editor/spellchecker) to the
point where a comparison would be fair. Stop whining and being
insulted, your elitist selection policies have far more worldwrecking
consequences than a few artificially magnified and misunderstood
'insults'.

Anton

'you could always join the dutch unemployment inquisition'

A.M. Kuchling

unread,
Jan 11, 2006, 8:39:11 AM1/11/06
to
On Tue, 10 Jan 2006 23:13:01 +0000,
Steve Holden <st...@holdenweb.com> wrote:
> attempt to draw direct comparisons. Maybe having an uncle helped you in
> to the trade, but it didn't cut you much slack in terms of required
> standards, hence the absence of cathedral-shaped heaps of rubble. York
> Minster was built in the 1400s, for example, and doesn't look like
> falling down any time soon.

Googling for "cathedral collapse" finds an interesting page at
<http://www.newcomen.com/excerpts/beauvais.htm>:

... As a matter of structural fact there is almost no argument
possible. The decay sensed by the eye after about 1250 stems
from a slow relaxation of the firm structural grasp that had
been acquired during the preceding hundred years.

...

Beauvais seems to have been particularly unfortunate. The apse
and choir were started in 1247, and finished in 1272. On 29
November 1284 the vault fell... Whatever the actual reason, it
was certainly believed at the time that the pier spacing was
too large, and the repairs over the next 50 years included the
intercalation of piers between these originally built for the
choir, so that the bays were halved from about 9m to about
4.5m. ...

--amk

Anton Vredegoor

unread,
Jan 11, 2006, 8:50:34 AM1/11/06
to
Steve Holden wrote:

> Consider yourself excused.

Thanks.

Anton

Christopher Subich

unread,
Jan 11, 2006, 10:03:05 AM1/11/06
to
Fredrik Lundh wrote:
>>TAG.did.you.just.call.me.a.kook.questionmark
>
>
> TAG.no.dash.but.if.you.keep.replying.to.them.all.the.time.i.may.have.to.plonk.you.too.smiley

TAG.you're.it.exclamation.point.

Fredrik Lundh

unread,
Jan 11, 2006, 1:36:30 PM1/11/06
to pytho...@python.org
Richard Brodie wrote:

> > Wrong [see above]. I don't remember many mediaeval cathedrals falling down.
>
> Your memory of medieval times has gone a bit hazy I expect

probably because he was hit in the head by a falling stone during a trip to southern
france, many years ago.

</F>

Aahz

unread,
Jan 12, 2006, 12:30:11 AM1/12/06
to
In article <1h8yup6.90e6xths96jkN%al...@mail.comcast.net>,

Alex Martelli <al...@mail.comcast.net> wrote:
>
>Giving outstanding contributions to open-source projects or others made
>feasible by the internet is, of course, another "hard to fake signal"
>in terms of asymmetric-information markets. And of course, Google will
>happily accept resumes from such "stars of open source". For example,
>Eric Raymond has no university degree, but, were he to apply for a job
>at Google, rest assured that his resume would be happily considered,
>under the "or equivalent" clause of many of our job offers. Of course,
>Eric is "outstanding among the outstanding", but similar considerations
>may apply to many lesser stars in the open-source firmament.

Side note: I don't have a degree, and I interviewed at Google several
years ago. I'm about 97% certain that my lack of degree played little
role (if any) in my failure to get a job offer.
--
Aahz (aa...@pythoncraft.com) <*> http://www.pythoncraft.com/

"19. A language that doesn't affect the way you think about programming,
is not worth knowing." --Alan Perlis

Aahz

unread,
Jan 12, 2006, 12:34:07 AM1/12/06
to
In article <mailman.314.11369700...@python.org>,

Steve Holden <st...@holdenweb.com> wrote:
>
>The major problem with professional bodies is precisely their lack of
>insistence on a practical demonstration of capability. "Paper MCSEs",
>for example, frequently make bad Windows system administrators because
>their education has been geared to the acquisition not of practical
>skills but of the qualification itself. The medical profession acquits
>itself reasonably because it does still require a good amount of
>doctoring before qualification. Why are the lawyer jokes not doctor
>jokes?

While it may not have the same intensity or duration as medical
internship, lawyers are typically required to serve an internship before
being permitted to go into independent practice.

Dave Hansen

unread,
Jan 12, 2006, 11:18:29 AM1/12/06
to
On 11 Jan 2006 21:30:11 -0800 in comp.lang.python,
aa...@pythoncraft.com (Aahz) wrote:

[..]


>
>Side note: I don't have a degree, and I interviewed at Google several
>years ago. I'm about 97% certain that my lack of degree played little
>role (if any) in my failure to get a job offer.

Side note: I have a couple degrees, and I sent in solutions to those
"tests" Google published in Dr. Dobbs a year or so back, but I never
heard back from them.

Not that I expected to. I just did it for fun. I'm not sure what
Google would do with someone whose entire work experience has been
developing C code for small embedded controllers anyway. I use Python
mostly to write small utility scripts for myself.

And, FWIW, I don't think I could convince my wife (or myself) to move
to CullyFORNya for any amount of money, whether there was a massage
therapist on duty or not...

Regards,
-=Dave

--
Change is inevitable, progress is not.

It is loading more messages.
0 new messages