From: Xah Lee
Subject: The Semicolon Wars as a software industry and human condition
Date: 
Message-ID: <1155822175.534005.100490@75g2000cwc.googlegroups.com>
Of interest:

• The Semicolon Wars, by Brian Hayes. 2006.
 http://www.americanscientist.org/template/AssetDetail/assetid/51982

in conjunction to this article, i recommend:

• Software Needs Philosophers, by Steve Yegge, 2006
http://xahlee.org/Periodic_dosage_dir/_p/software_phil.html

• What Languages to Hate, Xah Lee, 2002
http://xahlee.org/UnixResource_dir/writ/language_to_hate.html

  Xah
  ···@xahlee.org
∑ http://xahlee.org/

From: DJ Stunks
Subject: Re: The Semicolon Wars as a software industry and human condition
Date: 
Message-ID: <1155824568.318184.102980@i42g2000cwa.googlegroups.com>
Xah Lee wrote:
> Of interest:
>
> · The Semicolon Wars, by Brian Hayes. 2006.
>  http://www.americanscientist.org/template/AssetDetail/assetid/51982
>
> in conjunction to this article, i recommend:
>
> · Software Needs Philosophers, by Steve Yegge, 2006
> http://xahlee.org/Periodic_dosage_dir/_p/software_phil.html
>
> · What Languages to Hate, Xah Lee, 2002
> http://xahlee.org/UnixResource_dir/writ/language_to_hate.html

speak of the devil...

-jp
From: jmckitrick
Subject: Re: The Semicolon Wars as a software industry and human condition
Date: 
Message-ID: <1155825717.383393.146500@b28g2000cwb.googlegroups.com>
What's more of a waste of time:

1.  The 30 minutes he took to write his vacuous essay.
2.  The 15 seconds it took to skim it and see nothing worth reading.
3.  The 30 seconds it took to write this post.

Tough call.
From: Iain King
Subject: Re: The Semicolon Wars as a software industry and human condition
Date: 
Message-ID: <1155827943.041208.51220@i3g2000cwc.googlegroups.com>
Xah Lee wrote:
> Of interest:
>
> • The Semicolon Wars, by Brian Hayes. 2006.
>  http://www.americanscientist.org/template/AssetDetail/assetid/51982
>
> in conjunction to this article, i recommend:
>
> • Software Needs Philosophers, by Steve Yegge, 2006
> http://xahlee.org/Periodic_dosage_dir/_p/software_phil.html
>
> • What Languages to Hate, Xah Lee, 2002
> http://xahlee.org/UnixResource_dir/writ/language_to_hate.html
>
>   Xah
>   ···@xahlee.org
> ∑ http://xahlee.org/

I'm confused - I thought Xah Lee loved Perl?  Now he's bashing it?
Huh?

Iain
From: J�rgen Exner
Subject: Re: The Semicolon Wars as a software industry and human condition
Date: 
Message-ID: <MQ%Eg.13019$Z1.9299@trnddc03>
Iain King wrote:
> Xah Lee wrote:
>> Of interest:
>>
>> . The Semicolon Wars, by Brian Hayes. 2006.
>>  http://www.americanscientist.org/template/AssetDetail/assetid/51982
>>
>> in conjunction to this article, i recommend:
>>
>> . Software Needs Philosophers, by Steve Yegge, 2006
>> http://xahlee.org/Periodic_dosage_dir/_p/software_phil.html
>>
>> . What Languages to Hate, Xah Lee, 2002
>> http://xahlee.org/UnixResource_dir/writ/language_to_hate.html
>>
>>   Xah
>>   ···@xahlee.org
>> ? http://xahlee.org/
>
> I'm confused - I thought Xah Lee loved Perl?  Now he's bashing it?

He only loves himself.
Aside of that:


         +-------------------+             .:\:\:/:/:.
         |   PLEASE DO NOT   |            :.:\:\:/:/:.:
         |  FEED THE TROLLS  |           :=.' -   - '.=:
         |                   |           '=(\ 9   9 /)='
         |   Thank you,      |              (  (_)  )
         |       Management  |              /`-vvv-'\
         +-------------------+             /         \
                 |  |        @@@          / /|,,,,,|\ \
                 |  |        @@@         /_//  /^\  \\_\
   @·@@·@        |  |         |/         WW(  (   )  )WW
   \||||/        |  |        \|           __\,,\ /,,/__
    \||/         |  |         |      jgs (______Y______)
/\/\/\/\/\/\/\/\//\/\\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
==============================================================

jue
From: Greg R. Broderick
Subject: Re: The Semicolon Wars as a software industry and human condition
Date: 
Message-ID: <Xns9822E6E613E70tnalzrqrfcrnxrnflarg@io.blackholio.dyndns.org>
"Iain King" <········@gmail.com> wrote in news:1155827943.041208.51220
@i3g2000cwc.googlegroups.com:

> I'm confused - I thought Xah Lee loved Perl?  Now he's bashing it?
> Huh?

That's his other personality.

-- 
---------------------------------------------------------------------
Greg R. Broderick            ··················@blackholio.dyndns.org

A. Top posters.
Q. What is the most annoying thing on Usenet?
---------------------------------------------------------------------
From: Ken Tilton
Subject: Re: The Semicolon Wars as a software industry and human condition
Date: 
Message-ID: <0u0Fg.345$fE5.316@newsfe11.lga>
Xah Lee wrote:

> 
> • What Languages to Hate, Xah Lee, 2002
> http://xahlee.org/UnixResource_dir/writ/language_to_hate.html

Nonsense. This is technology, not religion. Technologists in fact have a 
responsibility to identify and use the best tools available.

Xah, you are getting soft in your old age. :)

hth, kenny

-- 
Cells: http://common-lisp.net/project/cells/

"I'll say I'm losing my grip, and it feels terrific."
    -- Smiling husband to scowling wife, New Yorker cartoon
From: Philippe Martin
Subject: Re: The Semicolon Wars as a software industry and human condition
Date: 
Message-ID: <x86Fg.69346$LF4.37380@dukeread05>
>>It was philosophers that got us out of that Dark Ages mess, and no small
>>number of them lost their lives in doing so. And today, the philosophy
>>majors are the butts of the most jokes, because after the philosophers
>>succeeded in opening our minds, we forgot why we needed them.

Look east Xah, we're still in the "Dark Ages mess".
From: Michele Dondi
Subject: Re: The Semicolon Wars as a software industry and human condition
Date: 
Message-ID: <699ce2hrjfohm09ptcku7q8bom451gds1n@4ax.com>
On 17 Aug 2006 06:42:55 -0700, "Xah Lee" <···@xahlee.org> wrote:

>Of interest:
>
>� The Semicolon Wars, by Brian Hayes. 2006.
> http://www.americanscientist.org/template/AssetDetail/assetid/51982
[snip]
>� What Languages to Hate, Xah Lee, 2002
>http://xahlee.org/UnixResource_dir/writ/language_to_hate.html

Cool! From the former:

: Today's missionaries take an upbeat approach, spending more time in promoting their own religion and less in dissing the other person's beliefs. The message is no longer "You'll burn in hell if you write C." It's "Look what a paradise Python offers you!" (I think maybe I liked the old sermons better.)


Michele
-- 
{$_=pack'B8'x25,unpack'A8'x32,$a^=sub{pop^pop}->(map substr
(($a||=join'',map--$|x$_,(unpack'w',unpack'u','G^<R<Y]*YB='
.'KYU;*EVH[.FHF2W+#"\Z*5TI/ER<Z`S(G.DZZ9OX0Z')=~/./g)x2,$_,
256),7,249);s/[^\w,]/ /g;$ \=/^J/?$/:"\r";print,redo}#JAPH,
From: Xah Lee
Subject: A Editor Feature for Extending Selection based on Language Syntax
Date: 
Message-ID: <1156135784.964866.190530@i3g2000cwc.googlegroups.com>
can anyone give me a guide about writing a short elisp function? (for
non-emacs readers, this message will describe a editor feature i think
will be very beneficial to spread this concept.)

i want to write a function such that, when run, highlight a region
between the nearest left and right delimiters. Delimiters are any of
parenthesis, square brackets, or single and double quotes etc. When the
function is run again, it extends the selection to the next enclosing
delimiters.

So, in this way, a user can repeatedly press a keyboard shortcut and
extend the selection.

This is feature of BBEdit/TextWrangler on the Mac, which extend
selection to the nearest outer parenthesis. This is also a feature of
the Mathematica editor, which actually extend selection to the nearest
syntactical unit in the language, not just paired delimiters.

What i wanted this for is mostly in editing HTML/XML, where one press
can select the content, another press will include the enclosing tags,
another press extends the selection to the next outer content, and
another press include that tags too, and so on.

I'm a elisp newbie. Here's a simple code i have so far:

(defun d ()
	"extend selection to nearest enclosing delimiters"
	(interactive)
  (skip-chars-backward "^<>()“”{}[]")
  (push-mark)
  (skip-chars-forward "^<>()“”{}[]")
  (exchange-point-and-mark 1)
)

... i think i have quite a lot to go... I think this would be a great
feature for any mode, where the a keypress will highlight more
syntactical units in any language's mode. For example, suppose in
C-like language:

function f (arg1, arg2) {
line1;
line2;
}

if the cursor is at arg1, then first press will highlight the content
of the args, another press includes the parens, another press will
include the whole function. If the cursor is at line1, then it selects
that word in the line, then the line, then the whole function def body,
then including {}, then the whole function... etc in many languages.

For a xml language example, suppose we have this RSS/Atom example:

<entry>
  <title>Gulliver's Travels</title>
  <id>tag:xahlee.org,2006-08-21:030437</id>
  <updated>2006-08-20T20:04:41-07:00</updated>
  <summary>Annotated a chapter of Gulliver's Travels</summary>
  <link rel="alternate" href="../p/Gullivers_Travels/gt3ch05.html"/>
</entry>

If the cursor is inside a tag's enclosing content, say, on the T in
Gulliver's Travels inside the <title> tag, then the repeated extension
is obvious. But however, suppose the cursor is at t in the
“alternate” inside the “link” tag, then it would first select
the whole “alternate” word, then the whole “rel="alternate"”,
then the whole link tag, then the whole content of the entry tag, then
including the “<entry>” tags itself.

(in short, the selection extends according to the language's syntax
tree)

  Xah
  ···@xahlee.org
∑ http://xahlee.org/
From: John Bokma
Subject: Reported (was Re: A Editor Feature for Extending)
Date: 
Message-ID: <Xns98265C37A0B8castleamber@130.133.1.4>
"Xah Lee" <···@xahlee.org> wrote:

Let's see how fast we can drop you from another hosting provider :-D.


-- 
John                Experienced Perl programmer: http://castleamber.com/

          Perl help, tutorials, and examples: http://johnbokma.com/perl/
From: ······@gmail.com
Subject: A Record of Frustration with GNU Quality and IT Industry in General
Date: 
Message-ID: <1157179664.197226.154560@m79g2000cwm.googlegroups.com>
"Xah Lee" <···@xahlee.org> writes:
«i want to write a function such that, when run, highlight a region
between the nearest left and right delimiters. Delimiters are any of
parenthesis, square brackets, or single and double quotes etc. When the
function is run again, it extends the selection to the next enclosing
delimiters.»

Ole Arndt wrote:
«
For sexp only:
(defun oa:mark-list (&optional arg)
  "Repeatedly select ever larger balanced expressions around the
cursor.
Once you have such an expression marked, you can expand to the end of
the following expression with \\[mark-sexp] and to the beginning of the

previous with \\[backward-sexp]."
  (interactive "p")
  (condition-case c
      (progn
        (backward-up-list arg)
        (let ((end (save-excursion (forward-sexp) (point))))
          (push-mark end nil t))
        )
    (scan-error (mark-sexp))
    )
  )
»

That's super.

I took some time to study your code and the various existing commands
for syntax selection.

forward-sexp    →  move to the next sibling
backward-sexp   →  move to the previous sibling
mark-sexp       →  same as forward-sexp but selecting the text
backward-up-list → go up a node in the tree

but too bad they deal with lisp expression only, not general recursive
syntax, and not general the syntax tree of any language.

I looked at lisp.el per John Sullivan's suggestion. To my sorrow, the
key behind these function to move about the syntax tree lies in
scan-sexps, which is written in C. I was hoping to simply replace the
parenthesis character so as to include other delimiters
()[]“”<>‘’ but i'm out of luck in this regard.

i just spend a few hours today in elisp, don't have my function done
but had quite a lot frustrations with the unavailabilities of the lisp
manual and the antiquated makeinfo shit...

-------------------------------------
A Record of Frustration with GNU Quality and IT Industry in General

long story short: being not a elisp expert, after spending a couple of
hours coding and learning, i thought that i wanted to perhaps take a
more systematic reading on the elisp manual.

To my chagrin, the chapterized elisp manual is still broken on the
gnu's official site. (i reported this twice this year here) For
example,
goto
http://www.gnu.org/software/emacs/elisp-manual/html_chapter/elisp_3.html
and you'll get 404.
And my emacs tutorial at
http://xahlee.org/emacs/elisp_basics.html
has many links to the broken. It makes my site looking majorly stupid.

(side note: long story short: i made public complaints on newsgroup
comp.emacs  on 2005-10-29 and 2006-03-06 on numerous problems with the
offical doc web site. That the url is gone, or the links among its
subchapters are broken. To this day, this remains broken. Mr John
Sullivan of GNU org has some insider detail on these. (who at GNU is
responsible for these problems?))

Then, i thought perhaps i'll just goddamn make a mirror of the
chapterized official elisp manual on my website xahlee.org, so that i
can just link to my own site and not subject the quality of my site's
material to the whims of FSF's document disappearances.
So i tries to find a source i can download the chapterized html files.
As expected, it is not on the official website
http://www.gnu.org/software/emacs/elisp-manual/

The single-file version in HTML is a whopping 4 megabites, too unwieldy
for practical online browsing. I thought of splitting that file into
chapters myself, but quickly decided that's gonna be too much work.
(splitting the file at the right places, adding HTML code, generating
TOC etc.) Then, i thought perhaps i'll just get the texinfo source and
use makeinfo to generate the html myself. That way it would be clean.
So i did download the textinfo source. A quick reading of “man
makeinfo” gets me to run
“makeinfo --html *texi”
but i get some goddamn no ../info dir found.
Also, the bunch of *texi files has a index.texi which links to a
non-existant index.text.unperm (sp?) which doesn't fucking exist.

Then i tried to create a info dir in the parent dir and tries to
makeinfo on a single file instead... after a series of failures and
errors, i though maybe i should read up on makeinfo instead of trying
to feeling lucky by skimming the man.

The makeinfo doc itself is a whopping verbiage.
(http://www.gnu.org/software/texinfo/manual/texinfo/) I spend perhaps
10 on it without being able find out what i needed. I'm sure i will if
i goddamn sit down and spend a day to undertake Textinfo.
The scanning of this doc and the elisp manual also gave me a sense just
how the writings are out of touch with today's computing scene.
(although GNU docs are in general good, but one major problem running
thru them all is logorrhoea and waxing philosophy from technical to
political at every fucking chance)

After giving up on trying to make a clean chapterized elisp manual from
the textinfo source myself, i gave a little thought that perhaps i can
grab them somewhere on the web. After another 10 or 20 or os minutes, i
found the (chapterized) latest edition of 2.8 to be at
http://www.delorie.com/gnu/docs/elisp-manual-21/elisp_toc.html
. I thought of wget it, then i'll have to deal with trimming the header
and footer shit of that site, and it sure is gonna sprawl into hours of
work.

Also, basically every file i put under xahlee.org is valid HTML or
otherwise good. So, i take a look to see the elisp manual are valid
HTML documents, and see how much work i might have to do to fix them.
As expected, it is fucking invalid garbage like a x-mas tree.

what a motherfucking pain it is to work with the ways of the computing
industry. Fuck the tech geekers. Each and every mother fucking one of
you.

  Xah
  ···@xahlee.org
∑ http://xahlee.org/
From: David Hansen
Subject: Re: A Record of Frustration with GNU Quality and IT Industry in General
Date: 
Message-ID: <87u03qll8r.fsf@robotron.kosmorama>
On 1 Sep 2006 23:47:44 -0700 ·······@gmail.com" <······@gmail.com> wrote:

> I looked at lisp.el per John Sullivan's suggestion. To my sorrow, the
> key behind these function to move about the syntax tree lies in
> scan-sexps, which is written in C. I was hoping to simply replace the
> parenthesis character so as to include other delimiters
> ()[]“”<>‘’ but i'm out of luck in this regard.

All of emacs parsing functions deal with syntax classes, defined in
the current buffers syntax table (or via text properties).

> i just spend a few hours today in elisp, don't have my function done
> but had quite a lot frustrations with the unavailabilities of the lisp
> manual and the antiquated makeinfo shit...

Hmm, have you even tried to read the shit?  Let's see...  Look up one
of these functions in the manual "C-h i m elisp RET i forward-sexp RET".

This leads us to the node "30.2.6 Moving over Balanced Expressions".
The first paragraph says:

,----
| Here are several functions concerned with balanced-parenthesis
| expressions (also called "sexps" in connection with moving across them
| in Emacs).  The syntax table controls how these functions interpret
| various characters; see *Note Syntax Tables::.  *Note Parsing
| Expressions::, for lower-level primitives for scanning sexps or parts
| of sexps.  For user-level commands, see *Note Commands for Editing
| with Parentheses: (emacs)Parentheses.
`----

Now i really wonder how you spend these "few hours".  Just some
advice: don't drink booze or use other narcotics while programming.

David
From: John Sullivan
Subject: Re: A Record of Frustration with GNU Quality and IT Industry in General
Date: 
Message-ID: <878xl1wy42.fsf@ashbery.wjsullivan.net>
·······@gmail.com" <······@gmail.com> writes:

> To my chagrin, the chapterized elisp manual is still broken on the
> gnu's official site. (i reported this twice this year here) For
> example,
> goto
> http://www.gnu.org/software/emacs/elisp-manual/html_chapter/elisp_3.html
> and you'll get 404.
> And my emacs tutorial at
> http://xahlee.org/emacs/elisp_basics.html
> has many links to the broken. It makes my site looking majorly stupid.
>
> (side note: long story short: i made public complaints on newsgroup
> comp.emacs  on 2005-10-29 and 2006-03-06 on numerous problems with the
> offical doc web site. That the url is gone, or the links among its
> subchapters are broken. To this day, this remains broken. Mr John
> Sullivan of GNU org has some insider detail on these. (who at GNU is
> responsible for these problems?))
>

I've told you this before. This is not the place to report bugs like this. I
think that this is a bug with the way the HTML version of the manual is
generated, and so it should be reported to the project that generates it -- the
emacs bug list. Have you reported it to them yet? If so, then please follow up
with them. 

-- 
-John Sullivan
-http://www.wjsullivan.net
-GPG Key: AE8600B6
From: ······@gmail.com
Subject: Re: A Record of Frustration with GNU Quality and IT Industry in General
Date: 
Message-ID: <1157377634.637667.191010@74g2000cwt.googlegroups.com>
Addendum:

Side note: i made public reports to newsgroup comp.emacs several times
since 2005-10-29 on 2 problems with the offical doc web site. That the
elisp chapterized html doc dissappeared, and for the calc doc, the
links to chapters whose title containing non-alphanumeric chars are
broken. The disappearance of doc got fixed after my report (with a
Thank Me letter) but then disappeared again in a month or so, while the
broken links have never been fixed. Mr John Sullivan of GNU org has
some insider detail on these.

The record of my report are here:
http://xahlee.org/emacs/_p/gnu_doc_reported.html

Also:

(Side note: you'll note that on the official GNU doc site, they provide
documentations for various provisions e.g. HTML in single file, HTML
single file compressed, plain text ASCII single file, ASCII compressed,
TeX dvi, PostScript — mentalities and moronicities that are about 1
to 2 decades out-of-date, yet the most critically needed formats of
online chapterized HTML or PDF, are missing. (FSF do provide PDF
versions for at least some of their other software. e.g. GCC and
Texinfo, so the missing PDF for Elisp is at least not intentional
political behavior as FSF is wont to do))

The complete account is now archived at:
http://xahlee.org/emacs/gnu_doc.html
---------------------

Dear John,

John Sullivan wrote:
«I've told you this before. This is not the place to report bugs like
this. I think that this is a bug with the way the HTML version of the
manual is generated, and so it should be reported to the project that
generates it -- the emacs bug list. Have you reported it to them yet?
If so, then please follow up with them.»

Did i not read on your blog that recently you and your FSF or such
cohorts with Anti-DRM cries against Apple's iPod in a Apple store?
( on your blog: http://pics.livejournal.com/johnsu01/pic/0000t68x )
Perhaps you did not realize, that the proper channel is
http://www.apple.com/feedback/ ?

Please see also:
The Bug-Reporting Attitude
http://xahlee.org/UnixResource_dir/writ/bug_report_attitude.html

Best,

  Xah
  ···@xahlee.org
∑ http://xahlee.org/
From: Ari Johnson
Subject: Re: A Record of Frustration with GNU Quality and IT Industry in General
Date: 
Message-ID: <m2odtxu014.fsf@hermes.theari.com>
·······@gmail.com" <······@gmail.com> writes:
> And my emacs tutorial at
> http://xahlee.org/emacs/elisp_basics.html
> has many links to the broken. It makes my site looking majorly stupid.

Regardless of how off-topic this is on Usenet as a whole, especially
in the groups you posted to, there are many things that make your site
"looking [sic] majorly stupid."  The online Emacs manual is not one of
them.  The fact that you affirmatively state specific details of
crimes you have committed is one of them, and your constant
proselytizing by way of your not-quite-English essays and idiotic,
inflammatory remarks is another.
From: Mallor
Subject: Re: A Record of Frustration with GNU Quality and IT Industry in General
Date: 
Message-ID: <1157319066.940773.323790@b28g2000cwb.googlegroups.com>
Ari Johnson wrote:
> ·······@gmail.com" <······@gmail.com> writes:
> > And my emacs tutorial at
> > http://xahlee.org/emacs/elisp_basics.html
> > has many links to the broken. It makes my site looking majorly stupid.
>
> Regardless of how off-topic this is on Usenet as a whole, especially
> in the groups you posted to, there are many things that make your site
> "looking [sic] majorly stupid."  The online Emacs manual is not one of
> them.  The fact that you affirmatively state specific details of
> crimes you have committed is one of them,

Crimes?  You wanna demonstrate some basis in fact, or are you just
another armchair libelist?


Cheers,
Brandon Van Every
From: Bill Atkins
Subject: Re: A Record of Frustration with GNU Quality and IT Industry in General
Date: 
Message-ID: <1157332355.490418.275330@i42g2000cwa.googlegroups.com>
Mallor wrote:
> Ari Johnson wrote:
> > ·······@gmail.com" <······@gmail.com> writes:
> > > And my emacs tutorial at
> > > http://xahlee.org/emacs/elisp_basics.html
> > > has many links to the broken. It makes my site looking majorly stupid.
> >
> > Regardless of how off-topic this is on Usenet as a whole, especially
> > in the groups you posted to, there are many things that make your site
> > "looking [sic] majorly stupid."  The online Emacs manual is not one of
> > them.  The fact that you affirmatively state specific details of
> > crimes you have committed is one of them,
>
> Crimes?  You wanna demonstrate some basis in fact, or are you just
> another armchair libelist?

Why so antagonistic?  How about "Crimes?  Where do you see that?" ?
What led you to think the OP was being libelous?
From: Ari Johnson
Subject: Re: A Record of Frustration with GNU Quality and IT Industry in General
Date: 
Message-ID: <m2psec5wzs.fsf@hermes.theari.com>
"Mallor" <···········@gmail.com> writes:

> Ari Johnson wrote:
>> ·······@gmail.com" <······@gmail.com> writes:
>> > And my emacs tutorial at
>> > http://xahlee.org/emacs/elisp_basics.html
>> > has many links to the broken. It makes my site looking majorly stupid.
>>
>> Regardless of how off-topic this is on Usenet as a whole, especially
>> in the groups you posted to, there are many things that make your site
>> "looking [sic] majorly stupid."  The online Emacs manual is not one of
>> them.  The fact that you affirmatively state specific details of
>> crimes you have committed is one of them,
>
> Crimes?  You wanna demonstrate some basis in fact, or are you just
> another armchair libelist?

Gladly...

According to Wikipedia (which cites to Nevada Revised Statutes, see
http://en.wikipedia.org/wiki/Prostitution_in_Nevada), in Nevada
prostitution is illegal outside of licensed brothels and it is not
legal to license a brothel in Clark County, which contains Las Vegas.
Soliciting someone to engage in a criminal act is illegal in all
jurisdictions.

According to Xah Lee's web page (see
http://xahlee.org/Periodic_dosage_dir/las_vegas/20031015_copulate.html),
he engaged the services of an escort service with the intention of
paying money for sexual intercourse and did in fact pay money for
sexual intercourse.

Note that escort services are legal, just like hiring a stripper is
legal, but when engaging the services of either business it remains
illegal to pay for sex.

There is your basis in fact.  By the way, truth is an absolute defense
to libel. :)
From: rydis (Martin Rydstr|m) @CD.Chalmers.SE
Subject: Re: A Record of Frustration with GNU Quality and IT Industry in General
Date: 
Message-ID: <w4cveo49gjk.fsf@rackham.cd.chalmers.se>
Ari Johnson <·········@gmail.com> writes:
> By the way, truth is an absolute defense to libel. :)

That isn't true in all jurisdictions.

',mr

-- 
[Emacs] is written in Lisp, which is the only computer language that is
beautiful.  -- Neal Stephenson, _In the Beginning was the Command Line_
From: ······@gmail.com
Subject: Transient Mark Mode and the Modernization of Emacs
Date: 
Message-ID: <1157186527.685848.214160@e3g2000cwe.googlegroups.com>
While reading on the emacs manual on the chapter about Mark
(http://www.gnu.org/software/emacs/manual/html_node/Mark.html), in a
process of writing some elisp function... i realized that the Transient
Mark Mode, which i've been using for the past couple of years, entails
more than just appearance.

Basically, since emacs always have a mark once it is set, and in fact
keeps a record of marks, thus there is always a region (from the last
mark to the cursor's position). And if a region is to be highlighted,
this would create a highlighted section at all times, and is annoying
and is not what most editors do.

The bottom line is that to implement transient mark mode, another
concept comes into play: active/inactive state of the region. Emacs
functions that work on region must change their behavior with this
concept in mind (when Transient Mark Mode is on).

The point i want to bring here is that, this is getting complex. We
already have the CUV mode, now the Transient Mark Mode (which is off by
default), and i also note there's delete-selection-mode, all of these
compatibility modes in effort to make emacs more inline with modern
software user interface conventions and expectations also add
complication to emacs.

I would very much suggest, that emacs from now on by default turn on
the CUV mode, Transient Mark Mode, and delete-selection-mode by
DEFAULT, and in emacs's documentation reduce the importance of these
old-fashioned state of these modes.

... i would write a full detailed account on the reasons and choices
for emacs modernization another day... but basically, software must
change with time. Technical superiority is almost never the main cause
of a software's survivability. (e.g. far numerous technical superior
technologies have foundered in the history of software industry)
Emacs's various ways of user interface, although have strong followers,
but it is questionable that itself is truly a superior user interface.
On the other hand, the simple fact that all major software have adopted
the same user interface is a strong reason to adopt this change. (and,
make these changes by default does not jeopardize emacs's older ways.)

Some other major points about modernization of emacs is archived here:
http://xahlee.org/emacs/modernization.html

The springing up of things like Eclipse and its huge following, just
indicates that there's something wrong at least in practice, with the
concept that emacs is the all powerful editor as people are made to
believe. (and emacsers themselves like to believe)

  Xah
  ···@xahlee.org
∑ http://xahlee.org/
From: Pascal Bourguignon
Subject: Re: Transient Mark Mode and the Modernization of Emacs
Date: 
Message-ID: <87ejuuqr39.fsf@thalassa.informatimago.com>
·······@gmail.com" <······@gmail.com> writes:
> [...]
> The point i want to bring here is that, this is getting complex. We
> already have the CUV mode, now the Transient Mark Mode (which is off by
> default), and i also note there's delete-selection-mode, all of these
> compatibility modes in effort to make emacs more inline with modern
> software user interface conventions and expectations also add
> complication to emacs.
> [...]

Xah Lee, the Most UnZen Netizen.

-- 
__Pascal Bourguignon__                     http://www.informatimago.com/

Nobody can fix the economy.  Nobody can be trusted with their finger
on the button.  Nobody's perfect.  VOTE FOR NOBODY.
From: Xavier Maillard
Subject: Re: Transient Mark Mode and the Modernization of Emacs
Date: 
Message-ID: <87irk69n6z.fsf@zogzog.gnu-rox.org>
·······@gmail.com" <······@gmail.com> writes:

>   Xah

Are you the same than[1] ?


Footnotes: 
[1]  http://www.emacswiki.org/cgi-bin/wiki/KickbanXahLeeFromEmacsChannel

-- 
Xavier
From: ······@gmail.com
Subject: Re: A Editor Feature for Extending Selection based on Language Syntax
Date: 
Message-ID: <1157372285.354111.246710@m73g2000cwd.googlegroups.com>
TRIUMPH OF THE WILL!

(global-set-key "\M-7" 'extend-selection)

(defun extend-selection ()
"Highlight a region between the nearest left and right
delimiters. Delimiters are paired charactered such as ()[]<> and
including the  double quote \", as well as some unicode ones,
e.g.«»“”‘’「」.
When the function is run again, it extends the selection to the next
level of enclosing delimiters. "
 (interactive)
(if
    (or (and (eq last-command this-command) (mark t))
        (and transient-mark-mode mark-active)
        )
(let (e1 e2 b1 b2)
(if (< (mark) (point) )
(progn (setq e1 (mark)) (setq e2 (point)))
(progn (setq e2 (mark)) (setq e1 (point)))
)
(goto-char (- e1 1))
(skip-chars-backward "^<>(“{[「\"")
(setq b1 (point))

(goto-char (+ e2 1))
(skip-chars-forward "^<>)”}]」\"")
(setq b2 (point))
(push-mark b1 nil t)
)

(progn
  (push-mark
   (save-excursion
     (skip-chars-backward "^<>(“{[「\"")
     (point)
     ) nil t)
  (skip-chars-forward "^<>)”}]」\"")
)

)
  )

--------------
Not exactly the syntax-tree-walking generality, but does what i need at
the moment for working with HTML!

Took me godly hours to write this this weekend!
This is the longest elisp learning session i've had. One learns quite
something.

For those elisp newbies, goto
http://xahlee.org/emacs/emacs.html

I'll be adding this example with commentaries soon.

  Xah
  ···@xahlee.org
∑ http://xahlee.org/
From: Tim X
Subject: Re: A Editor Feature for Extending Selection based on Language Syntax
Date: 
Message-ID: <87y7szj6pk.fsf@lion.rapttech.com.au>
·······@gmail.com" <······@gmail.com> writes:

> TRIUMPH OF THE WILL!
>
> (global-set-key "\M-7" 'extend-selection)
>
> (defun extend-selection ()
> "Highlight a region between the nearest left and right
> delimiters. Delimiters are paired charactered such as ()[]<> and
> including the  double quote \", as well as some unicode ones,
> e.g.«»“”‘’「」.
> When the function is run again, it extends the selection to the next
> level of enclosing delimiters. "
>  (interactive)
> (if
>     (or (and (eq last-command this-command) (mark t))
>         (and transient-mark-mode mark-active)
>         )
> (let (e1 e2 b1 b2)
> (if (< (mark) (point) )
> (progn (setq e1 (mark)) (setq e2 (point)))
> (progn (setq e2 (mark)) (setq e1 (point)))
> )
> (goto-char (- e1 1))
> (skip-chars-backward "^<>(“{[「\"")
> (setq b1 (point))
>
> (goto-char (+ e2 1))
> (skip-chars-forward "^<>)”}]」\"")
> (setq b2 (point))
> (push-mark b1 nil t)
> )
>
> (progn
>   (push-mark
>    (save-excursion
>      (skip-chars-backward "^<>(“{[「\"")
>      (point)
>      ) nil t)
>   (skip-chars-forward "^<>)”}]」\"")
> )
>
> )
>   )
>
> --------------
> Not exactly the syntax-tree-walking generality, but does what i need at
> the moment for working with HTML!
>
> Took me godly hours to write this this weekend!
> This is the longest elisp learning session i've had. One learns quite
> something.
>
> For those elisp newbies, goto
> http://xahlee.org/emacs/emacs.html
>
> I'll be adding this example with commentaries soon.

Oh, please don't - wait until you know what your doing before trying
to explain how to do it to others. Your function shows considerable
cloudy thought or lack of clarity on purpose, your formatting is
making things more difficult to understand, you have statements that
have no actual purpose and I suspect you are using the wrong
functions (see what C-h f has to say on push-mark and set mark.

Some points -

1. You should use save-excursion consistently. In the first part of
   your if statement, you don't use it at all, despite moving and
   changing point and mark. If your function was interrupted in this
   part, the location of point and mark would be different from where
   they were when the function started and there would be no way of
   restoring things to their pre-run values.

2. You don't need all those ugly progn statements. The same effect can
   be achieved with more clarity without them, just re-think what you
   are trying to do. Lots of progns tend to indicate attempts to
   program lisp as if it were C and a sign you are not thinking under
   a lisp paradigm.

3. You don't need the b2 variable - its never used apart from
   assigning a value to it that is never referenced. I suspect you
   don't need b1 either. 

4. You can get rid of those ugly progns. For example, the if and
   progns after the let can be replaced with 

(let ((e1 (if (< (mark) (point))
             (mark)
           (point)))
      (e2 (if (< (mark) (point))
            (point)
           (mark))))
   .....
   .....)

5. Just looking at your code, I suspect the function doesn't do
   exactly what you want. For example, suppose you have something like

(ababcd{ababcd(ababcd)ababcd}ababcd)

and your currently matched on the inner (), if your function is run
and works, won't you now be matched on the {} rather than the outer
()?. Maybe thats what you wanted, but I would have expected you wanted
to match on the next outer pair that are the same as your current
matched pair.

6. I don't understand why the whole thing needs to be wrapped in the
   if and the progn for the else. There may be a valid reason, but it
   certainly isn't obvious from your code. 

I would strongly recommend looking at something like paredit mode that
already has this sort of functionality for sexps - what you are doing
is primarily the same, except with a broader definition of what
defines the sexps. I would also recommend reading about syntax tables
as it appears your re-inventing a stone wheel when the rest of us are
using pneumatic steel belted tyres with tred and suspencion. 

HTH

Tim

-- 
tcross (at) rapttech dot com dot au
From: Hadron Quark
Subject: Re: A Editor Feature for Extending Selection based on Language Syntax
Date: 
Message-ID: <87zmdehoy0.fsf@mail.com>
Tim X <····@nospam.dev.null> writes:

> 2. You don't need all those ugly progn statements. The same effect can
>    be achieved with more clarity without them, just re-think what you
>    are trying to do. Lots of progns tend to indicate attempts to
>    program lisp as if it were C and a sign you are not thinking under
>    a lisp paradigm.


Could you expand on this with an example or two please? Its one of the
first things taught in the Linux tutorial and, being a C programmer, I
dont see the problem with progn. What should he be doing instead for a
sequence of function calls?
From: Tim X
Subject: Re: A Editor Feature for Extending Selection based on Language Syntax
Date: 
Message-ID: <87d5a9bshe.fsf@lion.rapttech.com.au>
Hadron Quark <···········@gmail.com> writes:

> Tim X <····@nospam.dev.null> writes:
>
>> 2. You don't need all those ugly progn statements. The same effect can
>>    be achieved with more clarity without them, just re-think what you
>>    are trying to do. Lots of progns tend to indicate attempts to
>>    program lisp as if it were C and a sign you are not thinking under
>>    a lisp paradigm.
>
>
> Could you expand on this with an example or two please? Its one of the
> first things taught in the Linux tutorial and, being a C programmer, I
> dont see the problem with progn. What should he be doing instead for a
> sequence of function calls?

Its about the differences in style between functional and procedural
programming. The progn has its uses and there are situations where it
is the right thing to use. However, when learning lisp, it is
generally a sign someone is still writing in a procedural style rather
than a functional one. I guess the issue is mainly about clarity.

In C, you tend to rely on side effects more than in lisp, where many
would argue side effects tend to make the code harder to understand.
In C, you are more likely to use a sequence of procedural calls, while
in lisp, you are more likely to use nested function calls. This
results in a slightly different development style. In C, you are
likely to write a file containing a number of procedures, compile,
test and debug those procedures and then use them. In Lisp, you tend
to start with a single function and as you expand it, break bits off
into other functions which are called by that function. In C, you
might do something like 

      x = someProc(a, c);
      y = someSetupProc();
      dosomething(x, y);

in lisp, you might do

(do-something
   (some-proc a (get-c))
   (some-setup-func))

While these examples are artificial in the extreme, I think the
important point to note is that the differences in styles tend to
result in different solutions - merely translating from C to lisp
usually doesn't make this clear. The reason is that if you are
approaching the problem from a lisp perspective, you solution is
usually fundamentally different because your attacking it from a
different perspective with a different development approach and
different language constructs. Changing how you think about problems
when learning lisp is probably the hardest lesson of all - it
certainly has been for me. The really interesting thing is that I've
noticed it has started to affect how I program in other languages like
C and perl and I think my C and perl have become easier to read and
possibly a bit more elegant. 

I found one way to make the switch was to watch out for things like
progn as this tended to be a sign I was slipping back into a
procedural way of thinking about the solution. I would stop and
reconsider the problem and try to work out how to solve it without a
progn. Most of the time, I'd come up with something which didn't use
progn and the solution would be shorter, clearer and I think better. 

Lisp has other constructs that are used more often that either don't
exist in C or are rarely used. For example, in C you might have

if (someTest) {
    doSomething1;
    doSomething2;
    doSomething3;
}

while in lisp, you might do

(when (some-test)
      (do-something1)
      (do-something2)
      (do-something3))

rather than

(if (someTest)
    (progn
        (doSomething1)
        (doSomething2)
        (doSomething3)))



-- 
tcross (at) rapttech dot com dot au
From: Xah Lee
Subject: Re: A Editor Feature for Extending Selection based on Language Syntax
Date: 
Message-ID: <1157664042.845610.165560@b28g2000cwb.googlegroups.com>
David Kastrup wrote:
«I'd use (region-beginning) and (region-end).  Good grief.»

Wee! Thanks!

--------------
btw, I have written a fuller account on this syntax-tree-walking
feature. See

 http://xahlee.org/emacs/syntax_tree_walk.html

in particular, emacs's forward-sexp et al has a simplistic
implementation in that it sometimes doesn't do what it is supposed to
do. (see the example there)

  Xah
  ···@xahlee.org
∑ http://xahlee.org/
From: Xah Lee
Subject: Quality Emacs Lisp Documentation Available Online
Date: 
Message-ID: <1158360344.250480.190620@b28g2000cwb.googlegroups.com>
Complete emacs lisp documentation in html, one page per node, is now
available at:
 http://xahlee.org/elisp/index.html

(thanks to Alfred M. Szmidt for helping build it from makeinfo by
solving some problems of FSF's fault.)

The html have been edited so that they are valid HTML.
(there are 850+ html pages and i have only checked a dozen pages thru
w3c's html validation service
at http://validator.w3.org/ .  If you find any invalid HTML page,
please let me
know.)

Also, the html's style sheet have been fixed in several ways as to make
the html rendering more readable.
For a example of the rendered HTML with the new CSS, see
 http://xahlee.org/elisp/Association-Lists.html

It took me several hours amid expected frustration to get this doc
mirror up.

First, the motivation stem from a problem of a computing organization's
fault. For detail on this, please see:
( http://xahlee.org/emacs/gnu_doc.html )
Then, trying to remedy that encoutered bad source code and bad doc
generating program...

But in the end, at least that a valid, chapterized elisp doc is finally
available. In a couple of days, i may post a account of the detailed
errors and problems, and what i have done to make a doc from makeinto a
valid HTML document with a useful Cascade Style Sheet.

Lastly a positive remark: The Emacs Lisp Manual, is the one of the best
documentation there is in the computing industry.
(See also: Examples of Quality Documentation at
http://xahlee.org/perl-python/quality_docs.html )

  Xah
  ···@xahlee.org
∑ http://xahlee.org/