Title: RE: Witango-Talk: Tread Safety in Witango 5 !? [partially OT]

 

Phil,

The subject here is the quality of documentation and manufacturer's responsibility toward customers.

If I have a program that works in version 1 and the manufacturer makes product changes in version 2 that affects the running of my program, then the manufacturer is responsible for providing detailed, precise and specific information on why the code must be modified, and how. Would you agree with this statement?

Of course this does not mean that the manufacturer is responsible for providing tools to make the conversion or to verify that the code is no longer compatible with the new release. But if the new product is not backward compatible, at least ONE coding example should be provided (how code in version 1 should be modified in version 2).

In terms of documentation, WT 5 comes with mostly a rerun of  the Tango documentation, which was not good enough to start with. And good documentation from the manufacturer is a must, since there are not a lot of choices for us, Witango users. I believe there is only one other source of information on this subject: a book available on Tango 2000 (old and beginner's level).

Some of the more exciting features of WT are poorly documented ( for ex. how to use Javabeans classes in the workspace ) or not documented at all (for ex. Java Class/Bean as externals). In this regard, complete code examples are just like pictures, more valuable than thousands of words. Code examples are probably already available to you, the manufacturer ( for ex. the very test programs you used would be sufficient).

So, the question is: what good does it make to have a RAD tool if the programmer has to spend long hours to figure out the documentation?

Of course tech help can be bought. But if this is the reason for lacks in the documentation, then I have to totally disagree with the means used.

Finally, what concerns me most is that you do not see anything wrong with what is offered to support the application. Good documentation & tutorials are difficult to produce and the best is not always easy to achieve in the first try. But I believe that what I detect in your answer is that there is nothing wrong with what is available and there is no reason to improve it. I hope I am wrong.

I still hope to see substantial improvements in documentation quality. After all, documentation is part of the product, and it can only attract more customers and help with better reviews ( http://www.serverwatch.com/stypes/servers/index.php/17109 ).

 
I have attached my answer to specifics issues below.

Regards,
Mihai Olariu

PS: Sorry for the late response, I was off-site for a couple of days.

[EMAIL PROTECTED]
San Jose, CA
408-887-5223


-----Original Message-----
From: Phil Wade [mailto:[EMAIL PROTECTED]]
Sent: Friday, May 14, 2004 18:07
To: [EMAIL PROTECTED]
Subject: Re: Witango-Talk: Tread Safety in Witango 5 !?

Mihai,

In response to the statement below:

>>  I also wrote to Mr. Phil Wade, but so far (in the last 24 hours) I
>> did not get a response.
>> I find this experience to be both unpleasant and worrisome.


Below is the email that I sent you yesterday.  Neither customer support or myself have received any response from you since.  I believe that your representation of the facts should be clarified as you have brought this into a public forum.

I agree. Let's clarify it.
I do not believe customer support expected me to call back for any other reason than to buy tech support. This is why I did not call (yet).

In regards to contacting you, it was nothing more than I would have liked. That is still true, since I need to get a better understanding of what I should expect from Witango in planning for the future. But what I stated then it is still true. Your message just did not get to me at the time of my posting and in fact it never made it; the only copy of your response is what you made public in this message. A message lost on the Internet is unfortunate but nobody's fault. Thank you for your response.

Please see  below.

My email to you is copied below.

Regards
Phil

------ Begin Copied Message

From: Phil Wade <[EMAIL PROTECTED]>
Date: Fri, 14 May 2004 09:23:56 +1000
To: <[EMAIL PROTECTED]>
Subject: Re: Writing code for Witango 5 ( Witango-Talk: Multi Request Safety
)

Mihai,
> I have also addressed this issue to customer support, which suggested
> me to pay for tech support. This is clearly a misunderstanding since I
> am not looking for help with coding or debugging but proper
> documentation. I strongly feel that there are legitimate questions
> regarding inadequate and erroneous documentation; and this should be addressed free of charge.

I have spoken to the customer support team and read your original email and they are correct in their response.  Your request was not for configuration and installation support.  It is debateable whether you are asking for programming support or not.

No, this is not debatable. I am not asking for programming support. In other words, what you would offer would not serve my purposes alone, and I would not use it as such in my programs. I would only use it to understand the concept. It is no different than reading the code example of a metatag, or the tutorial.

In regards to the erroneous documentation please let me know the page and section and I will have it corrected and we will correct it free of charge.
I have noticed a few, while reading the documentation, but I did not marked them down. The one I remember though is in the introduction of Request Scope, where "local variable" appears without explanation.

In regards to inadequate documentation, our documentation is about the meta language and witango configuration and installation.

Well, does using the Java classes/beans as externals fall under this this category of documentation that you provide? Because there is no information on what are the parameters 1, 2, …, and how to write the Java code in order to talk to WT server, that I could find. Can you please confirm this?

The choice of how to build a critical section in an application is up to the the programmer and is dictated by the type of functionality that is being implemented and is an architectural and design

issue.   It seems that you should be reading about the coding theory on the
many ways to create a critical section which is not relevant in our documentation.  Most requests about critical sections we have looked at have been resolved by a better design in the code and has removed the need for a critical section in the code

Here you seem to state that there are no needs to provide some type of synchronization between threads that can access each other's resources, randomly;  just good programming would prevent races or deadlocks. I believe there is a reason to have means to lock critical sections, and competing applications do offer this feature ( for ex. http://www.macromedia.com/devnet/server_archive/articles/locking_in_cf.html ). As long as you cannot execute atomic operations ( compare and assign in one operation free of interrupts ), I do not see how you can implement critical sections. But maybe I am wrong; so, why not offer an example? Let's have the code do the talking.

> 1- can you provide an example of code (solving a similar problem as
> the one
> addressed) in which competing requests to the same resource exclude
> each other without crashing or hanging?

What you are asking for is a peer review of your code and then for a matching example to be provided.  Without the purchase of a support request

or a support contract this is not possible.    Programming support is
charged at AU$300 per incident.
Again I totally disagree. I am not asking for peer review. The code I sent was intended as support to what I was stating. What I am asking for is an example that would prove what you claim.
The reason for including the code is double-fold: in a previous call to customer support I have been asked to provide code (with the promise that it will be destroyed when the case is closed). So I thought it would have made sense to include the code from the beginning.


> 2- can you provide documentation on how to implement such a mechanism?

Looking at your code quickly you have your critical sections in the wrong place.  It should be in the tcf as this is where the writing to the file is which is the critical section.  You also have calls to the writetextfile method that are not even checking to see if the file has been locked by another request and hence do not even understand that a critical section has been created. 

Again, as long as no locking mechanism is available, an interrupt can always change the context and affect the unfinished procedure of another competing thread. I do not think it does matter where you have your critical section. But without a concrete example, this are just opinions, not facts.

I would actually suggest writing to separate files with names associated to the ID and writing an index file that contains the names of the files.  Then you know that each file has only the information you need in the order you need it and you do not need any critical section at all.

Maybe so, but that would solve a different problem, not the intended purpose of this task ( a single log file ).

Regards

Phil

------ End Copied Message


>
>
> Begin forwarded message:
>
>> From: <[EMAIL PROTECTED]>
>> Date: 15 May 2004 5:21:28 AM
>> To: <[EMAIL PROTECTED]>
>> Subject: Witango-Talk: Tread Safety in Witango 5 !?
>> Reply-To: [EMAIL PROTECTED]
>>
>> Hi all,
>>  
>> Six weeks ago I purchased the upgrade from Tango 2000 (which I
>> happily used for four years) to Witango.
>>   
>> After reading everything that was posted in terms of thread safety,
>> multitasking, locking, etc. in the talk group, I decided to let the
>> code "speak". I have written a test which I attached ( along with
>> explanations, source code, and results as played on my PC). It is as
>> simple as it gets and I believe it makes the point that Witango 5 is
>> not thread -safe. All I want is to have somebody show me where I go 
>> wrong. Is there a working alternative?
>>  
>> This test works fine on the same computer under Tango 2000, but does
>> not do so under Witango 5.
>>  
>> Apart from the change Tango2000 to Witango 5, everything is the same
>> (hardware, operating system, and code). The obvious conclusion is
>> that the W5 made the difference. This is why I would have expected to
>> get some explanations on how to handle the new server either in the
>> documentation or on the website.
>>  
>> I could not find any such information anywhere, so I wrote to
>> Witango, asking for the missing information and a working example.
>> Their response was to pay for tech support.
>>  I also wrote to Mr. Phil Wade, but so far (in the last 24 hours) I
>> did not get a response.
>> I find this experience to be both unpleasant and worrisome.
>>   
>> I am now stuck between Tango 2000, which is obviously outdated, and
>> Witango 5, which does not seem to work.
>>  I would greatly appreciate any help I can get from any of you.
>>  
>> Many thanks,
>> Mihai Olariu
>>  
>> [EMAIL PROTECTED]
>> San Jose, CA
>> 408-887-5223
>>  
>>  
>>  
>>  
>>  
>
>> _____________________________________________________________________
>> __
>> _
>> TO UNSUBSCRIBE: Go to http://www.witango.com/developer/maillist.taf
>

________________________________________________________________________
TO UNSUBSCRIBE: Go to http://www.witango.com/developer/maillist.taf

________________________________________________________________________
TO UNSUBSCRIBE: Go to http://www.witango.com/developer/maillist.taf

Reply via email to