Efficency and the standard library

S

Seebs

Surely, though, the point of using typedefs like DWORD is to avoid
having any problems in changing what size the standard ints, longs, char
*s etc are? You just change the typedef.

That's a wonderful theory, but in the world we actually live in, there's tons
of code which depends heavily on knowing exactly what size a "DWORD" is, and
there's also tons of code that depends heavily on knowing exactly what
generic C types are the same size as that.

Whoops.

-s
 
S

Squeamizh

[ snip ]
I've explained that the technical lower middle class IS at risk for
Fascism, and I have nothing but contempt for homosexuals who have
benefited from the fag movement only to take out their resentments by
using the sort of "bashing" language they were subject-to. I am
referring to Seebs.

"fag movement"?  How is that *not* gay-bashing ....

(And while I'm at it -- the phrase you use elsewhere, "feminized
men" -- how is that not ....  No, no, never mind; I'm pretty sure
I don't want to, um, go there.)

[ snip ]
[ .... ] such as my replace code
which is superior to anything else I've examined.

Have you looked at the code posted by others here?  On a quick
skim of your code and that of the others I've been benchmarking
(Harter, Bacarisse, Thomasson, and willem), all of them seem to be
roughly comparable with respect to solving the problem correctly
and efficiently, and the only one that's not at least as readable
as yours (in my opinion anyway) is willem's -- and he probably
wasn't trying for readable.  Harter's code even contains copious
comments, which again on a quick skim seem pretty good to me.

What is it you think is superior about your code?  

Jesus, you're worse than Richard Heathfield. What is it going to take
for you to realize that Spinoza is a lost cause?
 
M

Moi

That's a wonderful theory, but in the world we actually live in, there's
tons of code which depends heavily on knowing exactly what size a
"DWORD" is, and there's also tons of code that depends heavily on
knowing exactly what generic C types are the same size as that.

Whoops.

I have never understood the intentions of the silly DWORD typedefs.

Were they intended
* as "a machine wide int"
* an int with *exactly* 32 bits
* or just inherited from assembler naming ?

Anyway, C's calling conventions allow an integer to be promoted
to a larger type (or truncated to a smaller) when used as a function
argument, so most of this ugliness would not have been necessary.

IMHO most of Windows's problems with portability (Itanium) have to do
with this kind of extremely bad typing.
(plus the wish for binary compatibility, and backward compatibility)

AvK
 
N

Nick Keighley

No, he has not, at least not by anyone in command of the facts (not
least because he /does/ give it away free for non-commercial use). He
/has/ been criticised, however, for claiming without qualification that
it's free when in fact it's only free for non-commercial use. He has
also been criticised for trying to use this newsgroup to market his
product - with, it seems, some success, since he doesn't do that as much
nowadays. (I expect he links to it in his sig block, although I'm not
about to go and check - but that's okay, it's (partly) what sig blocks
are for.)


Had such attacks been made, I wouldn't have agreed with them either.

I'm pretty sure someone asked him why he hadn't GPL'd it, and pretty
strongly implied that anyone that didn't GPL their software also ate
babies and told people what was going to happen next in the film
 
S

santosh

Nick Keighley said:
Nick Keighley wrote: [...]
For instance Jacob has been attacked in
this ng for not giving his compiler away for free, [...]
I don't agree with such attacks. He has as
much right to earn his daily bread as anyone else.

Had such attacks been made, I wouldn't have agreed with them
either.

I'm pretty sure someone asked him why he hadn't GPL'd it, and
pretty strongly implied that anyone that didn't GPL their software
also ate babies and told people what was going to happen next in
the film

This was quite a while back, IIRC, and it was either the "teapot/tea
leaves" person, or someone else clearing taunting Jacob just to get a
rise out of him and enjoy the inevitable subsequent debates. So IMO
neither Jacob nor anyone else need take those posts as serious
criticism of his product.
 
B

BruceS

Nick Keighley wrote:



Well, I think that's more or less inevitable. There are even people who
say the 1969 Moon trip was a hoax. People say the stupidest things.

It might seem like that, but then they just keep talking.
(with apologies to "King of the Hill")
 
B

blmblm

spinoza1111 said:
On Feb 24, 8:09 am, Rob Kendrick <[email protected]> wrote:

[ snip ]
[ .... ] Professor Massengill [ .... ]

That's twice -- well, sort of, because this time you came a little
closer to spelling it right, though the variant you chose does
lend a bit of credibility to Seebs's suggestion about whether
the spelling mistake is a simple typo or something else. (I'm
uncertain about whether to add a :) here.)

Please don't imagine that he has any credibility. I was merely too
lazy to check the spelling, and frankly, people have abused my own
name too much for me to be all sensitive.

And yet you don't hesitate to point out others' misspellings, and
to call them -- I forget, is it "illiterate" or "aliterate"?

Just sayin'.

[ snip ]
Here, my extra care is not compensatory, I see, any more than
Seebach's.

I have no idea what you mean here.

Okay, good.

[ snip ]
 
B

blmblm

spinoza1111 said:
spinoza1111wrote:

[ snip ]
I've explained that the technical lower middle class IS at risk for
Fascism, and I have nothing but contempt for homosexuals who have
benefited from the fag movement only to take out their resentments by
using the sort of "bashing" language they were subject-to. I am
referring to Seebs.

"fag movement"? How is that *not* gay-bashing ....

It's only "gay bashing" in what I call the Chomsky 3 sense. That is,
for bureaucratic convenience rather than for real human rights,
bureaucratic machinery examines human language AS IF it were a series
of regular expressions, which when applied fully means that because "I
don't think you should call me a 'fag'" conforms to the regular
expression *fag*, it is disallowed: "don't ask, don't tell".

This not only occurs literally in certain automated tools with
Orwellian results, it's also applied to speech in such a way that
people, today, use a language that is considerably less vivid, and
fails consistently to add to human dignity, than our language of the
Sixties. Frankly, I encounter situations here of such absurdity, and
such a theater of cruelty, that the only sensible response is either
poetic (which I've essayed) or something like "shove it up your
ass" (which also seems to fit).

The movement for homo rights was on the street a fag movement. The
Chomsky 3 bureaucratic rule ignores intentions and treats speakers as
objects. But my intention was to draw attention that (in my opinion)
Seebach uses the liberation movements of the 1960s merely to unfairly
make his life easier and shit on others.

I was 18 when gays rioted at Stonewall. What it meant was that people
didn't have to go around in "character armor" denying their own
vulnerability, and one result in computing was the structured
walkthrough in which people would be "humble" on the one side, and,
perhaps even more important, unwilling to go off topic from problem
solving and start attacking people's credibility and qualifications,
as Seebach does. The effect is to me sickening, because as I've said
it's the delinking of humility from charity.

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

[ snip ]
[ .... ] and Dijkstra's premature death from
the effects of lifelong clinical depression (according to Peter
Neumann, who I interviewed for my book).

Interesting. I wonder whether this is widely known.

[ snip ]
[ .... ] such as my replace code
which is superior to anything else I've examined.

Have you looked at the code posted by others here? On a quick
skim of your code and that of the others I've been benchmarking
(Harter, Bacarisse, Thomasson, and willem), all of them seem to be
roughly comparable with respect to solving the problem correctly
and efficiently, and the only one that's not at least as readable
as yours (in my opinion anyway) is willem's -- and he probably
wasn't trying for readable. Harter's code even contains copious
comments, which again on a quick skim seem pretty good to me.

What is it you think is superior about your code?

I solved the problem, which was to avoid string.h, and thinking
influenced by string.h, in which you have to start at one byte to the
right of the last point at which you did strstr (or its equivalent)
because strstr doesn't tell you where the one-character "handle" might
start to the left of this point.

But there is no point in performing this optimization unless you're
looking for overlapping occurrences of the string to be replaced,
and without a clear specification of how such occurrences are to
be dealt with if they occur, it's not clear to me that there's any
point in looking for them.
The comments are not only highly literate, they are attractively laid
out in two dimensions within the limits of an Ascii view, as is the
code. I disciplined myself to keep nearly all lines (save two) within
67 characters, this being the limit imposed by the newsreader,
apparently. Each logical level has its own nesting.

Eh. Well, all right, now we know more about your criteria.
I used literate and meaningful identifiers,

If you say so. I don't find ptrIndex0 very meaningful.
and the use of pre-
Szymonyi "Hungarian" means I made a conscious and documented decision
as to data types

And yet for most of your variable names, the prefix that indicates
type gives no more information than the declared type. The exception
seems to be the distinction between ptrSomething and strSomething.
Unless "lng" is meant as a short form of "length" rather than a
short form of "long"?
(that's called "programming on purpose" as opposed to
the opposite, which ain't good in my book)

Because I released the code early in its development and because I not
only fixed each bug as it arose (unlike friend Seebach) the bug rate
diminished exponentially, approaching zero as a limit and not floating
maddeningly above zero at some large constant value, which happens to
be the case for most "working" software. I took the risk of the
cruelest form of mockery and abuse in this fucking slum so as to get
the insights of the decent people here in debugging, which is far and
away the best course.

I used the best possible algorithm within the constraint that I did
not choose to create auxiliary tables, which was to create a linked
list of segments where the target does not occur and then assemble
this linked list and each target occurence into the result string.
This was, I believe, the minimal algorithm in terms of time and memory
complexity within the constraint, along with Willem's elegant
solution, which uses extra stack memory.

It's still not clear to me how it's valuable to detect overlapping
matches when you apparently don't do anything with them. It's
difficult for me to follow your code by just reading it, so I tried
running it in debug mode with input "abababab", "aba", and "xyz".
The list you build -- well, it seems to me that it's the same list
that would be built if overlapping matches were not being detected,
and the output is "xyzbxyzb", which is what I agree it should be,
but -- what was the point of carefully remembering the location of
a partial match?

I may well be missing something. Reading other people's code is
not one of my best things.
I carefully tuned this algorithm using ideas from reading the Boyer
Moore CACM paper by restarting the search at the first occurence of
the first character of the target to the right of the previous
starting point, by noting this occurence in the search for the target.

s/occurence/occurrence/ ?

(I wouldn't mention it, but you're so quick to point out spelling
errors in others' prose.)
Above all, I took pains. I realize that such craft, in the corporation
is now interpreted as "wasting" valuable (if unspecified) "resources"
in language that assumes I'm chattel because I don't own the means of
production. But I'm too old to start regarding Peter's slop as decent
code.

Any questions, blmblm?

I think you more or less answered them, in that I have a better sense
of what criteria you're using. (I might dispute whether those are
appropriate criteria or whether your code meets them as well as you
think said:
I clearly deserve A+ if you ask me. I regard Willem's work as A+ and
although his style is radically different from mine, as a decent
programmer I do NOT use shibboleth as doth Peter Seebach. I dove right
into his code and read it, discovering his recursive insight...which I
helped him bring to fruition.

By providing a testing framework and finding one bug, right?
I am all too familiar with people who
call themselves programmers but who can't and won't read unfamiliar
code, preferring personality destruction to Hamlet's "as a stranger
give it welcome".

Anyway, you asked for an apologia you got one.

Yes. Thanks. Vaguely on-topic, too.
You know, I really didn't know that my misspelling of your name was
also the name of a feminine hygiene product, because I'm not up to
speed in feminine hygiene. I live in Hong Kong ha ha. But speaking of
another meaning of apologies, I owe you one for that
confusion...despite the fact that *pace* Peter S, as in zip it,
knowing feminine hygiene, or its lack, hath zip to do with programming
as far as I can see.

Not a problem, really -- as I think I said earlier, I'm accustomed
to, um, variant spellings. I usually do point them out, but (again
usually) without rancor. There are exceptions to both "usually"s.
 
B

blmblm

While I try to remain focused on Usenet, failure is more common than
success. ;-) It's especially difficult to ignore the interesting
tangents that are introduced in any thread longer than a few posts.
However, if we reach some sort of result where good information is
exchanged, I call it a win regardless of the tangents.

Agreed on all counts!
 
B

blmblm

[ snip ]
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.)
 
B

blmblm

[ snip ]
It would be nice to have some consistent way of saying "yes, I know
about this, don't bug me" for - for example - functions that don't use a
parameter (because they are one of a group called from a table of
pointers, say). Most compilers have their own ways of doing it - and
that's the problem.

Java has a "@SuppressWarnings" tag that can be used for -- well,
I *think* it's roughly the same purpose. I'm not 100% sure it's
supported (or required to be supported) by all implementations, but
something like that might make a nice addition to other languages.
 
B

blmblm

[ snip ]
Jesus, you're worse than Richard Heathfield. What is it going to take
for you to realize that Spinoza is a lost cause?

I'm finding the discussion interesting enough to continue, whether
it changes spinoz1111's behavior or not, and while a fair amount
of it is marginally topical at best, I don't seem to be alone
in responding. But I will try to pipe down if asked to do so by
some quorum of others.
 
S

Seebs

???

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

Thanks, I think.
By providing a testing framework and finding one bug, right?

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.

-s
 
S

Seebs

the program runs and creates testprog.out, but with rather strange
permissions -- "ls" reports them as "-rw---S--T". ????

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.)

-s
 
S

Seebs

I'm finding the discussion interesting enough to continue, whether
it changes spinoz1111's behavior or not, and while a fair amount
of it is marginally topical at best, I don't seem to be alone
in responding. But I will try to pipe down if asked to do so by
some quorum of others.

I think the key is the realization that it is quite possible to have
interesting discussions about C informed by spinoza1111's code, even though
his code is usually garbage and he appears to have an almost supernatural
talent for getting things wrong.

But he's wrong in such interesting ways, and discussions of the errors have
actually been pretty rewarding, I think. I mean, yes, his string replace
code is a monument to overthinking, and the perils of failure to build useful
components, and the perils of poorly-chosen variable names.

But it sure has produced more topical discussion of C than a whole lot of
other, apparently-more-reasonable, threads have.

The same thing's been true of a physics discussion I've been watching and
occasionally participating in. Trying to explain basic physics to someone
who appears to be genuinely convinced that there is a "real" frame of
reference to determine whether things are moving or not, or that changing
frames of reference necessarily costs energy, is *very* enlightening, in
a way that standing around agreeing about basic and obvious things is not.

Fundamentally: There are more ways to be wrong than ways to be right on most
technical issues. Learning by looking only at what is right is not likely
effective. Discussing why various wrong answers are wrong is much more
informative. If you want to learn about the importance of good variable
naming, IMHO, a page of good examples won't help you as much in understanding
the topic as trying to read the godawful mess of ptrIndex0++ ptrIndex3--
crap that spinoza1111 produced.

The solution makes no sense until you understand the problem.

-s
 
K

Keith Thompson

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.

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).
 
W

William Hughes

I'm finding the discussion interesting enough to continue, whether
it changes spinoz1111's behavior or not, and while a fair amount
of it is marginally topical at best, I don't seem to be alone
in responding.  But I will try to pipe down if asked to do so by
some quorum of others.


Why should you "pipe down"? Even if you are persuing
the impossible dream of getting spinoza1111 to change his
mind, there is something to be said for quixotic quests
(<music up>To reach the unreachable... NO SINGING)
and you are not harming anyone
(sure you will make some spinoza1111 comments visible to those
who have his posts and only his posts blocked, but
I have no trouble detecting replies to spinoza1111
and I don't even use a newsreader.)

- William Hughes
 
S

spinoza1111

Sure, majoritarian tyranny and digital Maoism shall rule, right blm?
As you say, what ev er. But you certainly are at liberty to not reply.
Thanks for your insightful comments, not all of which with which I
agreed, but all of which I found far more intelligent than the norm. I
have to say "far" since the norm is so so low.
Why should you "pipe down"?  Even if you are persuing

perusing? sigh
the impossible dream of gettingspinoza1111to change his
mind, there is something to be said for quixotic quests
(<music up>To reach the unreachable... NO SINGING)

Interesting comment, for it's "hip" in Amerikkka to ironically/
sardonically ban certain anthems, including "The Impossible Dream"
from Man of La Mancha, Macarthur Park, and Stairway to Heaven, and in
Amerikkka pianos in public places are locked lest some homeless man
with a degree from Juilliard start whaling away.

Whereas in the American bookstore Shakespeare and Co. on the left bank
of the seine in Paris, there is a public access piano, and even my
tinkling was tolerated. Then, a man sat down and started to play the
most excellent jazz versions of pop tunes.

I jokingly mentioned the scene in Wayne's World where the shopclerk
points to a sign that says "No Stairway to Heaven", and he immediately
launched into a beautiful jazz version of STH.

Any quest, whether for bug free software as opposed to boss pleasing
in ten minutes, or my Impossible Dream, and here getting me to shut
the **** up, is wearily, ironically and sardonically dismissed as if
it were at all normal to be so utterly without effect or affect.
 
S

spinoza1111

I think the key is the realization that it is quite possible to have
interesting discussions about C informed byspinoza1111'scode, even though
his code is usually garbage and he appears to have an almost supernatural
talent for getting things wrong.

Not as good as yours, I'm afraid.

Look, puke. You had to be told fix your %s bug and then you blithely
posted a one liner with 100% bugs per line, and your friend (?)
Thompson gravely tech-reviewed it and missed the bug, which I had to
find for you. You were unable to think outside of string.h as I
challenged you and instead posted code so poorly formatted (with zero
sensitivity to indentation) and with such aliterate variable names
that I decided it wasn't worth my time to find the many bugs that were
probably there.

You've published foolish and incorrect statements ("the 'heap' is a
dos term" and "there are thousands of errors in Schildt I mean
twenty") in a vicious attack you had no qualifications to make, for
you have bragged more than once that you majored in psychology and
have taken zero computer science classes...and your code's inability
to not use string.h code, your string.h thinking, and your beliefs
that in a useful programming language order of evaluation can be
nondeterministic all makes that crystal clear: that you are not a
qualified programmer.

Whereas my code for replace() had a grand total of six bugs, and they
were not found by you: instead, I deliberately posted an early version
in order to get feedback, and fixed each bug without making the sort
of excuses you make, crediting the reporter. You didn't have the
decency to credit me, nor even the decency to read emails requesting
you to work out your issues with me like a man.
But he's wrong in such interesting ways, and discussions of the errors have
actually been pretty rewarding, I think.  I mean, yes, his string replace
code is a monument to overthinking, and the perils of failure to build useful
components, and the perils of poorly-chosen variable names.

You are a child, Peter Seebach. Zip your fly.

I mean...what is "overthinking?" I actually know. It is a major
corporate crime in little "shops" in which the programmers are
technical eunuchs, where a giant software system has been written in
the Old Days by the Old Ones, and any real rethink by the eunuchs is
not on: instead, their job description is "find bugs and report them
to the studlies in Bangalore who'll work for one tenth what you make".
In fact, programmers who "think" in such workplaces ARE a liability,
since their thinking might convince them, because *gedanken sind
frei*, that capitalism is a bribe paid for access to the tools of
production...or some heavy shit like that.

And what are the perils, Pauline, of failure to build useful
components? What "useful components" do you build, turd blossom? You
proudly posted a "tool" to fail to replace %s in a string, and I can
only infer from your posting this code that you meant to establish
chops, and that this joke represented the zenith of what it is you do.
Did you mean "reuse"? The challenge was NOT to reuse, and you've
FAILED. If you'd taken the computer science classes that are a
requirement and not an option for credibility, you'd know that that is
how it is taught. In a compiler development class, you have to write a
compiler, not "use" one.

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!
But it sure has produced more topical discussion of C than a whole lot of
other, apparently-more-reasonable, threads have.

Yeah, but I wonder why that is so? Could it be it takes courage AS
WELL as far more coding intelligence to be the seed? Every thread I
enter gets interesting and informative real fast, but of course you're
fucked if you'll make any obvious inference. But it does amuse me to
play Socrates.
The same thing's been true of a physics discussion I've been watching and
occasionally participating in.  Trying to explain basic physics to someone
who appears to be genuinely convinced that there is a "real" frame of
reference to determine whether things are moving or not, or that changing
frames of reference necessarily costs energy, is *very* enlightening, in
a way that standing around agreeing about basic and obvious things is not..

Here you go again. You know, dear Peter, there is argument by analogy,
argument by false analogy, and a new form of even more fallacious
argument that you use here (I've taught logic at university level).

This is when people on the Internet respond by telling some story
about some COMPLETELY DIFFERENT person in hopes that their auditors
will confuse the real person being disrespected with some mostly
fictional other person.
Fundamentally:  There are more ways to be wrong than ways to be right on most
technical issues.  Learning by looking only at what is right is not likely
effective.  Discussing why various wrong answers are wrong is much more
informative.  If you want to learn about the importance of good variable
naming, IMHO, a page of good examples won't help you as much in understanding
the topic as trying to read the godawful mess of ptrIndex0++ ptrIndex3--
crap thatspinoza1111produced.

Abstract meaningless bullshit followed by libel. You know, I really
need to get around to complaining, on the advice of counsel, to Apress
and your employer about your behavior.

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.

One way to do this is by means of "sumptuary" rules. "Sumptuary laws"
of the Middle Ages forbid the lower classes to wear silks and colors
favored by the wealthy. In programming, "business casual" replaced
IBM's "uniform" because the IBM employee, by shopping intelligently at
Jos. Banks or Brooks Brothers during their June sale, could look like
Watson Jr or Akers. Instead, "business casual" makes certain that the
"mere programmers" are visually recognizable by way of dun colors and
poorly fitting khakis.

Like Whit Diffie, who I knew at Bell-Northern Research, I wore a suit
to work, and since I was a runner as I still am, I'd arrive looking
like Tom Cruise. The executives didn't like this since I was "just" a
compiler developer.

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).
 
S

spinoza1111

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.)

I'm beginning to wonder if you are truly an evil man.

You can have countless bugs and be excused, it seems to me, and your
pretense of humility is unlinked to any charity (and therefore is not
humility), since you charged Schildt with "hundreds" of bugs and
coined a foul word out of his patronym, and you've completely
misrepresented my work, which is vastly superior to yours even though
I don't fucking know C that much, in hopes that newbies and managers
won't do due diligence, and just chance upon your wild and
unsubtantiated claims, your libelous and criminal claims, concerning
my competence.

But dig it, puke: attorneys WILL do due diligence. And your employer
(and Apress) are not going to be amused if they are involved in the
mess you made.
 

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,104
Messages
2,570,643
Members
47,246
Latest member
rangas

Latest Threads

Top