Efficency and the standard library

B

blmblm


(I wasn't going to follow up to this one, but the terminology thing
is bugging me, so .... )

[ snip ]
The problems in the Schildt books are an artifact of the way in which
McGraw-Hill dev edits books at worst.

"Dev edit"? I know just a little about the process whereby a manuscript
(on a technical subject) submitted to a publisher is turned into a
printed book, and "dev edit" is an unfamiliar term. It *sounds* like
it's the phase in which the publisher hires/finds people with relevant
expertise to review the technical content, but I can't think of any
term for this process that could be shortened to "dev edit". ?
Their philosophy, which is
shared by most other computer publishers, is that bugs in printed code
are not really important, since "no warranty, express or implied" is
made of this code. Although buggy code in printed books (as opposed to
shipped software systems which are also under the "no warranty" rule)
is regrettable, no professional programmer uses such code blindly,
because "no warranty" is made.

Too bad for people who are *not* professional programmers, eh? such
as students?

[ snip ]
 
B

blmblm

"spinoza1111" ha scritto nel messaggio
while(*ptrIndex1)
{
ptrIndex0 = ptrIndex1;
while (-1)
{
// --- Check for (one character) handle
for(;
*ptrIndex1 && *ptrIndex1 != *strTarget;
ptrIndex1++);
// --- Check for complete match while remembering the
// --- last position of the handle

yes this "for" seems run good
but remember the last position of hadle means memory, means to use malloc or get
memory from the stack: what about there are 1.000.000s of "matchs"

What am I missing here .... the "handle" here is a local variable,
and there will only be one copy of it unless the routine is called
recursively, which it doesn't seem to be, so where's the waste of
memory?
 
B

blmblm

[ snip ]
I guess.

I still have no clue what his complaint about my version is. It works, and
so far as I know, it passed every test but the 0-length needle on the first
try, and a trivial one-line patch fixed that. It hasn't needed several hours
of debugging to work perfectly for all known input data, just five minutes to
handle a pathological boundary condition.

I should probably not presume to speak for Mr. Nilges, but my guess
is that his objection to your code is that it uses functions from
string.h. I won't try to summarize/restate what it is he objects to
about those functions, since I'm not sure I understand it myself.
<shrug>
 
B

blmblm

That's because I didn't provide the "mode" argument, which is actually
another bug. :) (... and no, not an intentional one. Which is embarassing,
I've written several implementations of that function, you'd think I'd know
how to use it. I've even fixed that bug in at least one other person's code.)

Well, yeah .... I'm thinking, though, that if you don't supply
a mode argument, what gets used is -- well, what *does* get used,
and what octal value maps to "-rw---S--T"?? (Experiment suggests
that it's octal 5600. Hm!)
 
B

blmblm

Quoted for Seebs's benefit. I won't reply.
[...]

Perhaps you could explain to us how re-posting spinoza1111's ravings
benefits Seebs, or anyone else for that matter.

Good point. I suppose I have some notion that it's fair play to
bring the worst of the insults to Seebs's attention. But anyone
who wants to claim that this constitutes "let's you and him fight" --
it's a fair cop, maybe. I'll try to refrain from doing it again.
Eventually you will probably realize that debating spinoza1111 is
a waste of your own time (which is your to waste) and of the rest
of our time as well. Most of his posts here are reponses to other
posters' response to him. If people started ignoring him completely,
he would probably post less, and this newsgroup's signal-to-noise
ratio would improve vastly.

*Please* stop feeding the troll (or whatever he is; there's been
some debate about whether he qualifies as a "troll", but the effect
is the same whether he does or not).

Sometimes the temptation is too much, but I'll try to reduce the
volume anyway.
 
B

blmblm

[ snip ]
And what are the perils of poorly chosen variable names? At this
point, you HAVE NOT DEMONSTRATED that they are confusing, or cause
cancer, and you are thinking in comic-book shibboleth terms. At most,
all you can demonstrate is that aliterate youngsters who are
nonetheless too old to be playing video games and should crack a book
might have a laugh...and people laughed at you and you fear a return
to Adorno's "nightmare of childhood", a scene you reproduce with
others as the victim in a doomed attempt to avoid the secret contour
of your weakness.

Alice: Doctor! You fool! How dare you code intIndex1! It is a poorly
chosen variable name!
Nilges: Zip it, woman! Zey laughed at me at zee Royal Academy, but I
shall show zose fools and RULE ZEE VERLD!
Timmy: Mommy, I'm scared!
Ruff: Woof! Woof!

Well, it's my impression that more than one person has commented on
some of your variable names being poorly chosen (the ptrIndexN ones
in particular), so perhaps the burden is on you to demonstrate that
they're well chosen. If you're going to be verbose, wouldn't it be
more useful to call them something that makes their role in your
algorithm clearer? ptrIndexOfHandle, say ....

You attempt to defend your usage below (which is why I'm quoting
it), but I remain unconvinced (which is why I'm not responding
to it).

[ snip ]
You're insane. What YOU DON'T LIKE (and what many other programmers do
not like) about my variable names is my preference for, and
willingness to write, variable names that are correctly spelled out
and systematically chosen (an index is...guess what).

The literary critic Edmund Wilson did some articles about life inside
Ford Motor in the 1930s, and he found that managers in that firm were
almost insane with fear of the Ford family, and careful at all times
never to speak or write (dictate to secretaries at that time) with
anything like correct grammar let alone style. The secretaries were
their grammar checkers.

The fact is that the only reason correctly spelled and internally
systematic identifiers are NOT encouraged was that attendant on the
election of Reagan, programming was "rationalized" by bringing
programmers to heel.

[ snip ]
But more important, sumptuary rules were imposed on writing. CEOs who
themselves were aliterate certainly didn't want, as emails were
introduced, to get emails that would tax their parser, and this is why
it became fashionable to be half-literate...and to hate fully spelled
variable names, and to replace them with basically private
abbreviations (where Willem's mathematician's code is at one and the
same time the limit case and quite refreshing because unlike the
intermediate cases it is consistent).

[ snip ]
 
B

blmblm

[ snip ]

I still don't have enough information to actually identify the
possible-offensive piece of verse. But -- ah, no matter.

[ snip]
Julienne and blm, you are enablers, because you don't complain to him
[Richard Heathfield]
about his behavior:

I'll reply to the rest in the other thread in which you posted it.

[ snip ]
 
S

Seebs

"Dev edit"? I know just a little about the process whereby a manuscript
(on a technical subject) submitted to a publisher is turned into a
printed book, and "dev edit" is an unfamiliar term. It *sounds* like
it's the phase in which the publisher hires/finds people with relevant
expertise to review the technical content, but I can't think of any
term for this process that could be shortened to "dev edit". ?

"Development editor". I have encountered the term. The development editor
is the one who is, fairly early in the process, involved in decisions such
as "what is our target market" or "does the focus of this book seem right,
and/or are we spending our time on the right material".
Too bad for people who are *not* professional programmers, eh? such
as students?

Exactly. Students rely on posted errata.

(... and I just noticed that the errata I submitted to my publisher a
while back don't seem to be posted, so I guess I should go bug them,
huh.)

-s
 
S

Seebs

I should probably not presume to speak for Mr. Nilges, but my guess
is that his objection to your code is that it uses functions from
string.h. I won't try to summarize/restate what it is he objects to
about those functions, since I'm not sure I understand it myself.

I don't think a couple of functions which can be defined in 5-10 lines
justify that kind of rage. ... Actually, I suppose that what does or
doesn't justify a given level of fury is probably irrelevant, because
"justify" implies a number of assumptions which are unsupported here.

But it still seems as though, even if I were to write those functions
by hand, and suffer the resulting speed penalties, it would almost certainly
still be a shorter, simpler, and less buggy implementation.

-s
 
S

Seebs

Well, yeah .... I'm thinking, though, that if you don't supply
a mode argument, what gets used is -- well, what *does* get used,
and what octal value maps to "-rw---S--T"?? (Experiment suggests
that it's octal 5600. Hm!)

Usually, stack garbage.

There is an interesting side question about this, which I think may be worth
bringing up. It involves the behavior of a non-portable function, but the
underlying questions involved are genuinely questions about C -- specifically,
how compilers handle undefined behavior.

For historical reasons, the POSIX open() system call takes EITHER two or
three arguments. The arguments are:
open(path, mode, permissions)
"mode" is a set of bit flags. One of the possible bit flags is "O_CREAT",
indicating that the file should be created if it does not already exist.
If this flag is set, the "permissions" argument must be provided.

This function predates the existence of a standard mechanism for declaring
or identifying functions with variable argument lists... And it predates
the O_CREAT flag. There is no circumstance in which, lacking O_CREAT,
the permissions value is ever used, and there was (and still is) a large
body of code in which it is omitted.

There is a test program in something we use (I forget what) which tries to
verify the availability of a particular feature, by running some tests on a
temporary file, which it opens with open(). It uses O_CREAT, but it doesn't
care about permissions (because the file is immediately removed), so they
weren't specified.

On some modern systems, this fails. At *compile* time. Because there are
now compilers which have hooks to allow them to determine that if the second
argument includes O_CREAT, there must be a third argument.

This is an extremely surprising thing, to me. It doesn't directly correspond
to anything you'd normally see in standard C, but it's similar to the way
that some compilers will now give warnings or errors for code such as:
printf("%d\n");

I actually think it's a great feature, because it's very easy for programmers
to forget to provide the third argument. (The design is, I'd argue, probably
broken -- but it's a pretty minor break and, thanks to modern compilers, easy
enough for the implementation to bulletproof.)

-s
 
S

Seebs

Well, it's my impression that more than one person has commented on
some of your variable names being poorly chosen (the ptrIndexN ones
in particular), so perhaps the burden is on you to demonstrate that
they're well chosen.

And in fact, we HAVE demonstrated that his names are poorly chosen.

Look at the number of bugs in his code, and how long it took to find and
fix them. Given how completely trivial the task is (I sincerely believe
that this would be a reasonable project for a first-semester CS student,
albeit probably late in the semester), it seems to me that the only way
an even marginally experienced programmer could have trouble with it would
be if the specific implementation to hand were confusing.

Unless he's got some great explanation for where the badly-designed part
is that makes it so confusing, the obvious explanation would be that since
the ptrIndex? variable names don't tell you what they are indexes of, just
that they are the first four numbered indexes, it is very easy to forget
what each of them is supposed to be pointing to at any given time, and
that makes bugs more likely. Even if a given bug isn't directly caused by
a confusion between two of the confusingly-similar indecies, the mere fact
that the programmer must consciously track which index is which, rather than
trusting the name to be informative, chews up cognitive resources and makes
bugs more likely.

There is a reason that things people have to be able to think about quickly
and clearly are usually carefully constructed to be simple, with well-defined
and straightforward labeling conventions. While it's most obvious in, say,
safety-related stuff ("IN CASE OF FIRE BREAK GLASS"), it also applies to
choice of how to express programs. The reader -- who may be you, a day later,
trying to debug the code -- benefits from names which are clear as to the
PURPOSE of the variables.

-s
 
D

David Thompson

I know it's not portable C, but here's an example that leapt to mind:
int fd;
if (fd = open("testprog.out", O_RDWR | O_CREAT) != -1) {
write(fd, "hello, world!\n", 14);
It's harder to do a comparable example for stdio, because 1 isn't a valid
FILE *, but I'm sure you could come up with something comparable. <snip>

The to-me-canonical* stdio example, fairly often seen in -- well maybe
not the wild, but at least the semi-wild -- is
while /*or if*/ ( ch = getchar() != EOF ) ... use ch ...

(* OK, canon isn't determinable by my experience. YKWIM.)

But -Wparentheses also distrusts Conjunctive Normal Form -- i.e. &&
over || -- which I learned in elementary school and thus consider
unquestionable natural law or even God-given. <G>

-Wparentheses also catches dangling-else, often a hard bug to find
because the programmer usually indents as meant.

-Wall also includes -Wformat to check *printf/scanf arguments, and
that's a class of bugs fairly common among newbie posters here, whom
on no actual evidence I assume to be not entirely unlike students.

The other ones are IMO less effective examples:

implicit-int -- not actually a bug just poor style

implicit-function -- doesn't actually malfunction in many 'vanilla'
cases, and when it does often requires looking at assembly (or
machine) to clearly see the problem

missing-braces -- often not a bug (the {0} idiom recently discussed
here) and when it is easy to find

uninitialized -- more often a bug but still not hard to find

unused-*, switch-* -- IME rarely *newbie* bugs

sequence-point, strict-aliasing -- not things you are ready to explain
early in an introductory class

trigraphs, unknown-pragmas -- probably not worth explaining ever
 
I

ImpalerCore

"spinoza1111" <[email protected]> ha scritto nel messaggio#io_x
...latest code...

<snip>

In view of the face that NO OTHER POSTER (to my knowledge) has met the
requirements (code a string replace function without string.h usage) I
hereby declare victory, and award myself the Golden Spinoza Order of
Purity and Truth har har.

Seriously, I have demonstrated, I believe, that Republicans can't code
worth dick, but they can (if Peter Seebach is still a Republican) say
"there is a bug in my code but I'm fucked if I'll fix it", and they
sure can backstab and lie. That is: there is an entire programming
world-view, a Gestalt, that is complete malarkey and normalized
deviance. It consists of the inchoate saws and maxims that have
accumulated over time, that have sifted down from on-high from capable
early developers, but which have become little more than a cargo
cult.

My code is hard to read, it is said (on dit). In a sense, it is. I
find it hard to read at times myself.

#i find hard my code only at first see
#but if i think about it, i find it readable and easy
#
#if my code is hard it is because do complex things.
#if i have one problem is how to traslate one complex problem
#to his little one problems, but now i think not have it too

An entire story exists in the cargo cult of the programmer who is in
some versions of the story "too clever by half" and in others only
thinks he is, and who writes an enormous program that nobody can
figure out.

#people not understand because someone has experience of some language
#some routines, that other people not have

The social function of the story is to normalize
differences in ability, and to cover up the fact that many companies
try to solve ill-defined and very hard problems with computers, often
in order to exploit their workers or cheat customers. It omits the
existence of real code written by ordinary members of the white collar
proletariat which solved in an unsung fashion a hard problem...such as
the assembler for the 8K IBM 1401 that was written by a Univ of Chi
graduate student that put the IBM assembler to shame.

When looking for work in the 1990s, I answered an ad from Rockwell-
Wescom, a telecom manufacturer in Chicago. During my interview, the
manager said "some guy many years ago figured out how to use our call
data to reconstruct calls by simulating the PBX: he was pretty
strange." I said, "that was me". I'd become a legend of the dreamtime.
I didn't get a job because, the manager said, I was "too good to be
true". There had to be something wrong with a guy who'd solved a
problem nobody else could solve but was looking for work in his
forties.

Whereas at a shipping conference in 2003 I was greeted with
recognition by the staff of a shipbuilding firm for whom I'd created a
key program in the 1980s. This was because their culture was one of
openness and trust, not myth, and it's important that at the
conference, they said that they weren't bothering to bid for work in
Iraq. It was an ethical firm, of the sort that is in my experience
rare.

Code in some instance might look challenging because the problem is
actually a bit hard.

#and so the code for that problem could be hard

Likewise it was hard for NASA engineers to solve
the problem of O-ring temperatures in cold temperatures in the
Challenger space shuttle, and later for them to solve the problem of
foam insulation dropping off Columbia at launch.

"They say it couldn't be done. So, I didn't do it."

In a post-Enlightenment culture of real science that has sifted down
to low-level technicians distinguished only by their conformity,
passive-aggression, frightened political conservatism (or passive-
aggressive "libertarianism") and/or religious Fundamentalism, the

#yes possible i'm fundamentalist, when i convince myself of something
#it is not easy change idea for what say other when no code is show

former science (including Dijkstra's misinterpreted admonitions
concerning simplicity and "the humble programmer") become a cargo cult
of excuses for normalized deviance.

#to program, some time, is not easy and one has to be humble always
#because exist always that 90% that is better of me
#and each one has his/her way for write and for resolve problems
#and that way of resolve can not be simulated in another one people

In a recent collection of writings on popular music by my fat pal
Theodore Adorno, he sets out the contrast starkly between classical
and popular music, and this is applicable to programming.

Popular music, he wrote, seems free and liberating, but in actuality
is almost always oversimplified in structure (and this is still true
of pop music years after he wrote it). The dissonances and syncopation
rely for their effect, he wrote, on the fact that for the listener
they are not actual artistic and standalone statements, but instead
sardonic POINTERS (references) back to classical music, light
classical music, and more traditional pop music.

The pop composer, even Irving Berlin or Copland, relies for his effect
on a backreference which says inside the music "listen, I flatted that
note, but you can if you like normalize my deviance by treating what I
said as unserious".

Consider the difference between Phillip Glass or Ygor Stravinsky on
the one hand, and Alban Berg on the other. The audience, according to
a 1980s Time magazine article about Glass, happily "sighed" when
Glass's cheap backreferences to the most innocuous classical music
with an easy-listening rock beat started to drone. Likewise, the
anxious bourgeois applauded Stravinsky (and Picasso) in the 1920s when
they reverted to classical models by means of snarky backreferences
with just enough dissonance to make the audience feel hip.

Whereas Beethoven meant to write the entire symphony in such a way
that ANY change would damage the whole (whereas my formatting and
naming conventions are not something I can willingly discard). (I
really felt for Tom Hulce's Amadeus in the eponymous movie when he was
told to discard notes by the Emperor).
<snip>

Looks like you've become addicted to spinoza's drug and are having
withdrawals. Remember, just say no. Don't worry, your side effects
will disappear eventually and you can live to become a normal clc
poster again.
 
S

spinoza1111

Looks like you've become addicted to spinoza's drug and are having
withdrawals.  Remember, just say no.  Don't worry, your side effects
will disappear eventually and you can live to become a normal clc
poster again.

io_x didn't write that, I did. He's a smart guy, but not that smart.
 
S

spinoza1111

"spinoza1111" <[email protected]> ha scritto nel messaggio#io_x
...latest code...

<snip>

In view of the face that NO OTHER POSTER (to my knowledge) has met the
requirements (code a string replace function without string.h usage) I
hereby declare victory, and award myself the Golden Spinoza Order of
Purity and Truth har har.

Seriously, I have demonstrated, I believe, that Republicans can't code
worth dick, but they can (if Peter Seebach is still a Republican) say
"there is a bug in my code but I'm fucked if I'll fix it", and they
sure can backstab and lie. That is: there is an entire programming
world-view, a Gestalt, that is complete malarkey and normalized
deviance. It consists of the inchoate saws and maxims that have
accumulated over time, that have sifted down from on-high from capable
early developers, but which have become little more than a cargo
cult.

My code is hard to read, it is said (on dit). In a sense, it is. I
find it hard to read at times myself.

#i find hard my code only at first see
#but if i think about it, i find it readable and easy
#
#if my code is hard it is because do complex things.
#if i have one problem is how to traslate one complex problem
#to his little one problems, but now i think not have it too

An entire story exists in the cargo cult of the programmer who is in
some versions of the story "too clever by half" and in others only
thinks he is, and who writes an enormous program that nobody can
figure out.

#people not understand because someone has experience of some language
#some routines, that other people not have

The social function of the story is to normalize
differences in ability, and to cover up the fact that many companies
try to solve ill-defined and very hard problems with computers, often
in order to exploit their workers or cheat customers. It omits the
existence of real code written by ordinary members of the white collar
proletariat which solved in an unsung fashion a hard problem...such as
the assembler for the 8K IBM 1401 that was written by a Univ of Chi
graduate student that put the IBM assembler to shame.

When looking for work in the 1990s, I answered an ad from Rockwell-
Wescom, a telecom manufacturer in Chicago. During my interview, the
manager said "some guy many years ago figured out how to use our call
data to reconstruct calls by simulating the PBX: he was pretty
strange." I said, "that was me". I'd become a legend of the dreamtime.
I didn't get a job because, the manager said, I was "too good to be
true". There had to be something wrong with a guy who'd solved a
problem nobody else could solve but was looking for work in his
forties.

Whereas at a shipping conference in 2003 I was greeted with
recognition by the staff of a shipbuilding firm for whom I'd created a
key program in the 1980s. This was because their culture was one of
openness and trust, not myth, and it's important that at the
conference, they said that they weren't bothering to bid for work in
Iraq. It was an ethical firm, of the sort that is in my experience
rare.

Code in some instance might look challenging because the problem is
actually a bit hard.

#and so the code for that problem could be hard

Likewise it was hard for NASA engineers to solve
the problem of O-ring temperatures in cold temperatures in the
Challenger space shuttle, and later for them to solve the problem of
foam insulation dropping off Columbia at launch.

"They say it couldn't be done. So, I didn't do it."

In a post-Enlightenment culture of real science that has sifted down
to low-level technicians distinguished only by their conformity,
passive-aggression, frightened political conservatism (or passive-
aggressive "libertarianism") and/or religious Fundamentalism, the

#yes possible i'm fundamentalist, when i convince myself of something
#it is not easy change idea for what say other when no code is show

former science (including Dijkstra's misinterpreted admonitions
concerning simplicity and "the humble programmer") become a cargo cult
of excuses for normalized deviance.

#to program, some time, is not easy and one has to be humble always
#because exist always that 90% that is better of me
#and each one has his/her way for write and for resolve problems
#and that way of resolve can not be simulated in another one people

In a recent collection of writings on popular music by my fat pal
Theodore Adorno, he sets out the contrast starkly between classical
and popular music, and this is applicable to programming.

Popular music, he wrote, seems free and liberating, but in actuality
is almost always oversimplified in structure (and this is still true
of pop music years after he wrote it). The dissonances and syncopation
rely for their effect, he wrote, on the fact that for the listener
they are not actual artistic and standalone statements, but instead
sardonic POINTERS (references) back to classical music, light
classical music, and more traditional pop music.

The pop composer, even Irving Berlin or Copland, relies for his effect
on a backreference which says inside the music "listen, I flatted that
note, but you can if you like normalize my deviance by treating what I
said as unserious".

Consider the difference between Phillip Glass or Ygor Stravinsky on
the one hand, and Alban Berg on the other. The audience, according to
a 1980s Time magazine article about Glass, happily "sighed" when
Glass's cheap backreferences to the most innocuous classical music
with an easy-listening rock beat started to drone. Likewise, the
anxious bourgeois applauded Stravinsky (and Picasso) in the 1920s when
they reverted to classical models by means of snarky backreferences
with just enough dissonance to make the audience feel hip.

Whereas Beethoven meant to write the entire symphony in such a way
that ANY change would damage the whole (whereas my formatting and
naming conventions are not something I can willingly discard). (I
really felt for Tom Hulce's Amadeus in the eponymous movie when he was
told to discard notes by the Emperor).
<snip>

io_x, what are you doing? You appear to have stolen my prose and
posted as your own. Are you sure you want to do that? It will make you
look smart in the eyes of the wise, but you'll be attacked by dogs.
 
S

spinoza1111

And in fact, we HAVE demonstrated that his names are poorly chosen.

Look at the number of bugs in his code, and how long it took to find and

There were...five, as I recall. At a far lower rate than your
stunningly incompetent rate of 100% in the strlen boner. And I will
not apologize for taking a long time...to properly document my work
and charitably credit contributors. As it happened, like most people
here, I have a life, and I do not waste my employer's time
participating in these newsgroups 8 hours a day, which is what you
seem to be doing. Instead, I worked on 30 minute ferry rides to and
from my own job, which is, thankfully, not in programming and not with
people like you.
fix them.  Given how completely trivial the task is (I sincerely believe
that this would be a reasonable project for a first-semester CS student,

How would you know? You've never taken a single computer science
class.
albeit probably late in the semester), it seems to me that the only way
an even marginally experienced programmer could have trouble with it would
be if the specific implementation to hand were confusing.

Unless he's got some great explanation for where the badly-designed part
is that makes it so confusing, the obvious explanation would be that since
the ptrIndex? variable names don't tell you what they are indexes of, just

And what do your variable names tell us? Argument from shibboleth and
local tribal custom, not science.
that they are the first four numbered indexes, it is very easy to forget

Especially if you're attention disordered and completely unqualified.
what each of them is supposed to be pointing to at any given time, and

And one letter shibboleth names make it easier how?
that makes bugs more likely.  Even if a given bug isn't directly caused by
a confusion between two of the confusingly-similar indecies, the mere fact
that the programmer must consciously track which index is which, rather than
trusting the name to be informative, chews up cognitive resources and makes
bugs more likely.

You might have a finite number of cognitive resources. I'd watch the M
& Ms. They drain 'em fast. The fact is that reading code is hard, and
a skill you don't seem to possess. Instead of reading code, you prefer
talking to putatively safe third parties about other people's defects.

blm, Julienne, io_x, Ben and others have dived into unfamiliar code
and understood unfamiliar styles because that is part of a
professional programmer's job. I read Willem's code and understood it
although his style is very different from mine. You look at a couple
of variable names and then start assaulting your colleagues.

If you're a programmer, I'd rather work at Starbuck's or be homeless.
As it happens, I don't have to. But I will pay any price not to have
to look at the ugly, vacuous, fat faces of latter day and so called
programmers who don't know their trade, only myths, fables,
shibboleths and backstabbing.
There is a reason that things people have to be able to think about quickly
and clearly are usually carefully constructed to be simple, with well-defined
and straightforward labeling conventions.  While it's most obvious in, say,
safety-related stuff ("IN CASE OF FIRE BREAK GLASS"), it also applies to
choice of how to express programs.  The reader -- who may be you, a day later,
trying to debug the code -- benefits from names which are clear as to the
PURPOSE of the variables.

Pompous nonsense. We all know things must be clear, and to a literate
and qualified programmer (the only audience I care about any more,
even though such a person is rare indeed), my code is designed to be
clear. It uses English, neither your bastardized shibboleths nor
Willem's far more elegant mathematical style. It spells things out
after the prefix in hopes you can pronounce them.

But if you're not qualified to read code without throwing tantrums and
stabbing people in the back, I suggest you find another line of work.
 
I

ImpalerCore

io_x, what are you doing? You appear to have stolen my prose and
posted as your own. Are you sure you want to do that? It will make you
look smart in the eyes of the wise, but you'll be attacked by dogs.

Should he be expecting the threat of an intellectual property suit
anytime soon?
 
I

Ian Collins

#it is only one not conventional way of quote because my news reader not
#show the ">" for your text and i would write manually all these">".

You are using a crap reader, google for "outlook quote fix".
 
S

spinoza1111

[ snip ]
I still have no clue what his complaint about my version is.  It works, and
so far as I know, it passed every test but the 0-length needle on the first
try, and a trivial one-line patch fixed that.  It hasn't needed several hours
of debugging to work perfectly for all known input data, just five minutes to
handle a pathological boundary condition.

I should probably not presume to speak for Mr. Nilges, but my guess
is that his objection to your code is that it uses functions from
string.h.  I won't try to summarize/restate what it is he objects to
about those functions, since I'm not sure I understand it myself.
<shrug>

Not with a bang but a whimper, or a shrug, huh?

As it happened, and as you should know, I decided to respond to
Peter's errors (not searching for %s and using strchr and not strstr)
to show programming at a much higher level than script kiddiedom.
Since Nul terminated strings are a mistake, I decided to show how
optional string.h is. This created an interesting challenge for the
real coders here, and a lot of mockery from our local attention
disordered script kiddie.

But obviously, you're entirely too dainty to serve this ng by helping
to eradicate people who come in here to advance their low sense of
self worth by destroying others in a zero-sum game. Like Obama allows
Israel to piss on his face, in my view.
 
S

spinoza1111

spinoza1111wrote:
[ snip ]
Results are in the middle of the pack not the stuff of a A+.
w..
Oh gee, this was Walter. If anything I said (including my poem)
implies that my opinion of blm is lower, I withdraw it. I already had
a low opinion of Walter.
Which poem was that ....  (I have to say that I usually skip your
verse.)  
Of course you do, dear Ms Massingill,
Of course you do, for we live in an age of songs of the doomed
Tuneless dirges are all you hear
The music of language, what you fear.
This was poorly written and unnecessarily offensive on my part, as
opposed when it is necessary to be offensive to the truly offensive. I
apologize for this.

However, it's plain that I'm a piker when it comes to being offensive.
See Heathfield's post in the thread Edward Nilges' Lie.

Because he cannot code properly and doesn't know computer science, and
is an uncultivated boor who works as a temp, he thinks it's cute to
forge letters said to be from me, a violation of the law.

Julienne and blm, you are enablers, because you don't complain to him
about his behavior: like many women in this type of situation, you're
a little dazzled by the thug and his transgressions; perhaps an
atavistic part of you is not a little excited by blood, metaphorical
or otherwise. I am using this newsgroup as intended and even Seebach
has conceded that these threads have been useful and productive. I
start them, whereas Heathfield and Seebach endeavor to destroy them
because they're not qualified to participate on a level with people
like Navia and Willem, let alone me (100% bug rate in strlen, absurd
linked list, heap a DOS term, is not a programmer per se, etc).

Julienne, blm, and Malcolm, I shall not participate until you find it
in yourselves to complain to Heathfield and Seebach in the thread
Edward Nilges' lie where Heathfield posts a letter he says is from my
lawyer: this was a criminal act. I will not read or post to these
newsgroup, and you people can return to your regularly scheduled
programming.

You may email me at (e-mail address removed). But what I would most
appreciate is copies of your post or emails to Seebach and Heathfield,
asking them to desist. This type of behavior is the norm in groups of
fair and decent people.

Otherwise, I am wasting my time here.

Malcolm, Julienne, blm: unless I hear from you by Monday March 8,
under advice of my counsel, genuine letters are going this week to
Seebach's employer and my publisher (who is also Seebach's publisher)
concerning his behavior. In addition, a letter is going to SAMS
concerning Heathfield.

At this time, a letter has gone to Apress. For the same reason I take
the time to document code neatly and in a literate fashion, I shall
choose the rate at which the process proceeds. As for returning,
that's just a decision. What is sick and bizarre here is Heathfield's
pattern. It appears to me he's being paid for posting.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
474,099
Messages
2,570,626
Members
47,237
Latest member
David123

Latest Threads

Top