Today, a mother****er Christophe Rhodes (aka Xof in irc://chat.freenode.net/lisp

) kicked banned me.

Here's the few relevant excerpt. (full, unedited excerpt will be

published if there is a public interest)

Begin excerpt:

[5:31am] <xahlee> k, here is a simple problem but rather tedious to do

it correctly.

....

[5:32am] <xahlee> given a unit vector A={a1,a2}, write a function

AngleA, such that it returns the positive angle from {1,0} to A.

[5:33am] <xahlee> mathematically this is simple, but to implement it

is rather cumbersome, with many if statements.

[5:34am] <xahlee> also, anyone who has implemented this will know trig

well.

[5:34am] <xahlee> i wonder if there's already in some library in lisp.

(i doubt it)

[5:36am] <pjb> xahlee: (acos (scalar-product A #(1 0)))

....

[6:34am] <xahlee> can anyone show me the source code of a function

that convert a complex number (a1 b2) to it's polar representation?

[6:35am] <Xof> (defun polarize (complex) (values (abs complex) (phase

complex)))

[6:35am] <Xof> wait, why am I replying to the troll?

[6:36am] <fax> :/

[6:36am] <Jasko> even the mighty Xof is not immune!

[6:36am] <tritchey> Xach: you were right, he HAS turned into mary

poppins.

[6:36am] <xahlee> well... what is the source code for your “phase”?

[6:36am] <Xach> xahlee: it is, as kmp once said, given from god

[6:36am] <Xof> clhs phase

[6:36am] <specbot>

http://www.lispworks.com/reference/H...dy/f_phase.htm
[6:36am] LiamH joined the chat room.

[6:36am] <fax> xahlee: you know enough maths to write an

impllementation

[6:36am] <froydnj> piso: ah...hmmm

[6:37am] <fax> xahlee: if its a CLHS function, then how its actually

written will be implementation specific

[6:37am] <fax> er CL not CLHS

[6:37am] <xahlee> as i described, i'm interested in the algorithm of

the implementation, not what it means.

[6:37am] <xahlee> «can anyone show me the source code of a function

that convert a complex number (a1 b2) to it's polar representation?»

[6:37am] <Xof> all of that is true, but there's quite a good

suggestion for how to implement it on the page I got from specbot

[6:37am] <fax> xahlee: afaik there is no way to calculate it without

conditionals

[6:38am] <Xof> xahlee: and that's what you got

[6:38am] <fax> you can do 4 dot products, or atan.. however you do it

you have to handle cases

[6:38am] <xahlee> fax: thanks fax! only you come thru understand the

question and not being a troll.

[6:38am] <Xof> (atan y x)

[6:38am] <xahlee> the others so far, e.g. xof and pjb in particular,

just wanted to troll.

[6:38am] <Xof> look, ma, no conditionals

[6:38am] <fax> xahlee: more than just me gave you some info..

[6:39am] Xof was promoted to operator by ChanServ.

[6:39am] Xof set a ban on *!

*n=(E-Mail Removed)13.pacbell.net.

[6:39am] You were kicked from the chat room by Xof. (now go away,

please)

------------------

Christophe Rhodes has unjustly kicked banned me about 3 times in the

past year in #lisp. Basically, making it impossible for me to use the

service provided by freenode.net in way. Today's incident, is actually

the most lenient. In the past ~3 times, he simply kick banned me

within few minutes i joined the #lisp channel.

Christophe Rhodes is one example of a power-struggling tech geeker in

the computing industry. Incidents like this, happens frequently in

just about all computer forums where almost all members are

exclusively male.

I want to bring this to the public attention (in this case, in the

lisp community). Because, it is mother****ers like these, that does

society harm, and they all pretent to be saints and justice holders.

-------------------

Some notes about the math problem discussed in the topic:

As i have indicated in my post, it is non-trivial to implement a

function that returns the positive angle of a vector. For example, it

can be done with sign checking of the coordinate components (in total

4 cases, which can be done as 2 levels of nesting if, or simply 4

if.), and or the evaluation of Min[Abs[ArcCos[x],Abs[ArcSin[x]]], or

use clever ways with dot product, or ArcTan. It is not a trivial to

know which algorithm is in general more efficient. (this is important,

since finding the angle of a vector is a basic function, that may

needs to be called millions times directly or indirectly) Further,

consider the inverse trig function, it is likely 99.99% of people with

a PH D in math wouldn't know how these are actually implemented. So,

the question of whether calling one of the inverse trig function is

more robust or efficient than another is a open question. And, besides

the algorithmic level, the question also entails how the language

actually implement the inverse trig functions.

Besides efficiency concerns, there's also robustness concerns. For

example, if the 2 vectors are {1,0} and {0,1}, a simplistic

implementation will result in division by 0 or similar errors.

Checking whether one of them lies on the x or y axis means more if

statements, as well the non-trivial problem of determining if two

numbers are equal. (e.g. is 0.000001 considered equal to 0.0001 )

My interest in bringing this up for discussion, is because i'm writing

a program in Linden Scripting Language to generate a architecture of a

given polyhedral symmetry in Second Life (see

http://xahlee.org/sl/index.html
), and i need to write a function that returns the positive angle of 2

given vectors from A to B. I have implemented solution to this

problem a few times in Mathematica since about 1993. Being a

efficiency and perfection nerd with some leisure at the moment, i

thought i'd like to know more details about his problem. A optimal

implementation with respect to the algorithm level, or see how

languages implement the function that convert complex numbers to polar

form, or some general understanding and learning with regards to this

problem.

In a person's computing career, concrete and specialized questions

like these abound, and the answers or knowledge about them are scarce.

Due to the general ignorance of technical knowledge, and the power-

struggling nature of males, and the habit of intolerance and “troll-

crying” in computing communities, made it difficult to have any

sensible discussion of original questions that doesn't fit into some

elementary level of FAQs and concepts.

Asides from complainting about the person who unjustly kicked banned

me many times in the past year (which has happened to me in other irc

channels (in particular, #perl, #python, #emacs,...), mailing lists,

forums, as well happens all the time to many many others (every day in

just about every irc channel).), i hope that in general, tech geekers

be more tolerant and knoweledgable. In particular, aquire

understanding and communication from persons in society who are not in

the computing community.

For example, in newsgroups everyone is all concerned and involved

about the phenomenon of troll all day. To understand this more

seriously, study psychology, sociology, anhtropology, ethnology,

history. I do not mean getting interested and excited with a slashdot

news article then start to discuss it in your forum. But do, take a

class in community colleges, or if suitable, spare a reading of your

favorite science fiction for a text book on the these subjects. The so-

called “troll” (whatever it means), is a social, behavior phenomenon.

So, understanding social sciences is the proper way to understand it,

if necessary, learn how to remedy the situation. Not, for example, by

tech geeking with other tech geekers.

If you are, for example, interested in the comparative superiority of

computer languages that almost every tech geekers seem to know so much

about, then, try to take a course on the great many specific branches

of philosophy, the great branches and depths of (non-computer-

language) lingusitics, or the great depth and branches and specialties

and even philosophies of mathematical logic, or its history. Various

branches or trainings in philosophy will help you in critical

thinking, as well as aid you in seeing perspectives, philosophies, or

how to approach a problem with a good definition. Similarly,

linguistics will help you, in general, understand the concept or

theories of semantics or meaning and syntax and grammar, in a way that

can give you a independent and original thinking on the questions of

judging computing languages. Similarly, mathematical logic gives you a

extremely modern technical tool in evaluating or accessing the

problem. Spare a tech-geeking on a techincal book on your favorite

languages or computer language design book or latest computer

engineering practice guide or forum argumentation or wiki or Open

Sourcing zeitgeist ****, to read a text book or learn on the above

topics.

Xah

http://www.velocityreviews.com/forums/(E-Mail Removed)
∑

http://xahlee.org/