[Asterisk-Dev] Client development...
Boudewijn van Ingen
bogie at xs4all.nl
Sat Sep 27 16:18:42 MST 2003
At 10:59 AM 27-09-2003 -0600, Brad Waite wrote:
>"I've had alls I can stands, and I can't stands no more."
Bugs Bunny? Is that you? ;-) ;-)
>Boudewijn van Ingen wrote:
>
>> I'm glad you admit to be an inexperienced software developer. In my own
>> experience of over twenty years as a professional programmer, I have
>> learned that the actual programming language you use isn't half as
>> important as the structural design of the project. And as far as I can
>> see, whatever little 'design' there is in the "iaxclient" library is
>> just about begging for the application of C++, or some other object
>> oriented programming language (however scary that may sound to you).
>
>I'm glad you admit to being an arrogant software developer.
Indeed I do admit to being that. ;-)
>> And you've just demonstrated that you don't have sufficient knowledge
>> about that, by assuming that C++ prevents anyone from coding in C (or
>> any other language for that matter). You are apparently unaware that C++
>> is a superset of C, and thus can't be a 'limitation' to anyone who codes
>> in C.
>
>And you've just demonstrated that you don't have sufficient tact to work
with
>others, by coming here and assuming you can say that everything that's been
>done
>so far is junk. You are apparently unaware that working with other human
>beings
>sometimes requires humility, and thus is a limitation to someone (like
>yourself)
>who thinks their way *has* to be the right way.
Perhaps I left out some information, that might have made more clear where
I'm coming from, and what I'm trying to do. That is indeed probably due to
a lack of 'tact' on my part.
I haven't had much trouble working together with 'other human beings',
though. I believe I must have been expecting too much in this case. Perhaps
my initial mail to this list should have been fivehundred lines long.. ;-)
>> But I didn't come here for an arguement about programming languages. I
>> have indeed better things to do.
>
>Yes - telling yourself how great you are.
Actually I came here asking a question. That first question was answered,
and I came up with another one (about debugging output in a logfile, with
asterisk running as a deamon), which hasn't been answered so far.
>> You're afraid of being "extinguished" by *me*? Poor sod.
>
>Humility is always extinguished by hubris. (At least in this life.)
I did not particularly like to be associated with Microsoft's methods. That
was uncalled for. Almost as silly as saying that I was 'limiting' myself to
programming in C++, and the illogical conclusion that that action in itself
should somehow be a reason not to program in C++.
That response reminded me of Monty Pythons "arguement sketch". I must have
had the wrong door...
>> If you can provide me with a copy of the iax-library that plugs in
>> seemlessly with Borland's development environment (you might also try
>> Pascal or assembly), you would have solved my problem. As it is, all I
>> can find are ports that have about 300% overhead, and still leak memory,
>> as well as GPF'ing all the time...
>
>Okay, Mr. "I've got 20 years of programming under my belt", please list
for us
>at least 10% of all open- or close-source projects that will plug in
>seemlessly
>to another cross-platform dev environment. Y'know what? You
can't. They are
>*very* few and far between and you know it.
I know that, indeed. I've seen a lot of sources, both commercial and open
source. Generally the open source stuff is more compliant to standards, and
better organized, separating platform dependent matters out into different
modules, that can be easily adapted. But I rarely encounter software that
complies with my own standards, apart from what I have produced myself, of
course. ;-)
>So to say that IAXlib should plug
>seemlessly into Borland *when that wasn't one of the design goals* is
moronic.
No it isn't. If the code would have been compliant to *ANY* kind of
standard (ANSI, anyone?) I wouldn't have so much trouble using it. It is
not very hard to do, and very rewarding to impose some kind of coding
standards on any project. In fact I am sure it is a wise thing to do.
Some such basic rules should be:
- Always compile with all the available warnings that your compiler can
provide ON, to make sure you see all the possible problems in your code;
- Always compile (or have someone do it for you) your code on at least
two completely different platforms, using two different compilers on
platforms that provide them, in the above mentioned way, to make sure you
do not use platform or compiler specific 'hacks';
- If you might find it necessary to use platform or compiler specific
'features', then make sure you insulate that part of your code in separate
modules, in order to facilitate portability;
- Even if you have to use 'features' that are unavailable on other
platforms, make sure the rest (as much as possible) of your code compiles
and links cleanly everywhere, using dummy modules wherever the required
features are -so far as you know- unavailable, because someone else might
find an implementation of those features later on...
Such basic coding rules should apply to any software product. No matter
what programming language. I apply them (and many more) stringently to all
the code that I sell or publish.
>You think it should have been one of the design goals? Be my guest.
Considering the fact that there is apparently no documentation at all about
the protocols or APIs involved in Asterisk, I am forced to the conclusion
that indeed there were and are no formal "design goals" at all.
But indeed, I would think that basic coding standards would be the very
least, for a project like Asterisk. As I indicated above, apparently I was
expecting too much.
>You're
>welcome to your opinion. But since you didn't get involved in this project
>until this point, you don't have a right to come here and bash the hard work
>that's been put in so far.
It was not my intention to do so, anyway. I admit that I have harsh words
for the way it has been coded. But I'm sure there is a good 'plan'
somewhere behind it. Too bad that it is being made so difficult for others
to find out about that plan, and expand on the code.
>You want to improve IAXlib? Go right ahead -
>that's
>truly part of the OS ideals.
I may or may not do so, now. You see, I've been asked to develop a client
application for Windows (using Borland C++ Builder, because my customer
wants to make the GUI himself) that supports conference calls and transfer
of a call to another number. And I have limited time to produce such a
client library.
At the time, it seemed an easy enough proposition. But then I took a look
at the available sources. Soon enough, I had a copy of "iaxclient_lib.lib"
compiled. But running it, was another matter. So I tried all kinds of other
source files to get something running. So far, with no success at all.
I then decided it was perhaps best to write my own iax-lib, based on the
information I could get about protocol, and the ideas behind it. I started
out on that task (and I will continue it), but soon found out that with all
the cryptic information from the sources, it would take me ages to complete
that to the point where it would be useful for anyone.
Unable to find any more information about it, I asked one question on this
list, explaining a bit about what I found. With known results: I get flamed
for not respecting everyones' feelings (which is right), and still no help
or documentation of any of the features of Asterisk my customer wants to
promote...
At this moment, I'm looking at two options:
1) Indeed rewrite all of the code for an iax-client library, or
2) debugging some existing code, to the point that it (guaranteed) won't
GPF on me anymore, and then try to add fetures to that code somehow....
Both of these seem unwelcome ideas to me now, since they will both take too
much time. I myself do not care much about the time it takes, but everyday
that passes, diminishes the chances my customer has to convince the telco
to start using Asterisk...
I'll most likely go for option 2 for the demo, while working on 1 on the
longer term. An uneccessary waste of time.
>> Thanks for your lack of help, anyway.You've been a great advertisement
>> for the mentality of the open source community...
>
>No, thank *you* for your lack of humility. You've been a great
advertisement
>for the mentality of the self-important community.
My pleasure. ;-)
I do not have the pretence to know much about Asterisk or its clients, its
protocols, or anything related to it, though. That is why I asked questions
on this mailinglist.
I do indeed think I know some things about coding and portability.
Obviously, no-one has any obligation to listen to anything I say, or even
to react on my scriblings. But when I get a reaction that mainly ignores
the technical things I was asking, and in stead seems rather like a
mindless attack on "C++", that bothers me somewhat.
>Boudewijn, please not that I did not get into a pissing contest about which
>language is more appropriate for IAXlib. In *my* 20+ years of coding, I've
>found that there's usually more than 1 way to skin a cat, and a whole
bunch of
>ways to fillet one.
I agree with you fully. Any C-version of any iaxlib that will compile and
run properly will do. All my remarks about C++ were merely meant to
indicate the environment that my customer wants to use to build his gui. I
haven't been clear enough about that before.
For all I care, you guys might want to code in COBOL or BASIC. But whatever
you do, keep your code clean. Don't "hack", but "program". And use at least
a rudimentary form of design or documentation. If you don't, how the hell
would you expect (like some people do) large telco's to trust your
spaghetti-code?
I have written software for banks and telco's before. The larger they get,
the more they want to see actual "proof" about the reliability of your
product, before they will ever take it into production. And I'm talking
about mathematical proof that the software cannot go astray. Boeing and
NASA apply similar, though even harsher standards, for obvious reasons.
Now if -and I gather this is a dream of many on this mailinglist- Asterisk
is to become a real alternative for large telco's, some real work will have
to be done on documentation and code-cleaning.
> My point is that your arrogance is unwelcome.
I'm quite sure it is. I already said I was sorry about that. I'm obviously
not 'tactful' enough to spare people's feelings, when I report what I see,
as you indicated earlier.
>Your
>thoughts, ideas and though-provoking ideas are most welcome, but please
render
>them with kindness.
I am a very kind person, really. But I am also a geek (or a nerd, or
whatever you like to call people who refrain from almost any form of social
life in favor of living with a 'nest' of computers). I'm here to talk about
software quality, not about relationships, nor anyones personal preferences
in programming languages. If I would feel the need to make even more
friends, I would not utilize a mailinglist like this one to find them.
Sorry to have to disappoint you. ;-)
Groeten,
Boudewijn.
More information about the asterisk-dev
mailing list