Author: Cinly OOI (---.medschl.cam.ac.uk)
Date: 04-24-09 06:37
[Reader Note: There is an email from Sean McBride who is in the same establishment as the original poster, Mathieu Coursolle. According to the recipient list he did intend to post to this miling list. However, after 24 hours the email had not appeared on this message list. I am not sure what happened, but do not think it will be right for me to repost it on his behalf. However, I can give a digest of what he said.
The case he has in mind where automatic upper to lower case change is "human error" case quoted by Rick, and quoted the example that the search of "jpg" on Google will also return results for ".JPG", that users accustomed to case-insensitivity can rename files in uppercase should they wish to, there are file systems, such as FAT16, that only uses uppercase. In his opinion, we should write nifti library to users' expectation and software should be written to meet human needs]
Dear Sean, Rick, Mathieu et al,
I fully agree that software should be written to meet human needs and users' expectation. I will refine this to say it must meet _its_ users' need. In the case of google, it is end users. They, including me, mostly expects case insensitivity when performing searches.
For NifTI libraries, its users are developers, not end users. I am sure Rick will accommodate end users need if he can, but I think that is the mainly the developers' job. And if there is a conflict between catering for end users' need and ensuring consistency for developers, I will urge Rick to go for consistency for developers.
I cannot agree that all end users expect uppercase to be changed to lowercase. My end users, working on unix-based systems, do not, and I think people like us constitute at least 20% of nifti library user. We discourage using case to differentiate between different files, but that is another matter.
IMHO, users' expectation in this case depends on their operating systems. Most end users are also "trained" to know that they should use lower case extensions. ;-)
I fully appreciate your users might want case insensitivity, in that case, simply use a wrapper around the appropriate functions to achieve what you want. I do it with my_nifti_image_read(..., int datatype) where I wrapped the original nifti_image_read() to automatically convert from the datatype on file to the datatype I want.
Eventually the decision on whether to add case insensitivity lies with Rick. I will say it will be a bad idea to put case insensitivity into the nifti library without option (compiler switch or other means) to opt in or opt out. My view is nifti library is simply basic building block and should therefore offer the basic service only. I do not think case-switching constitute basic service.
Seeing my_nifti_image_read() as not a basic service is the reason why I haven't ask Rick whether I can work that into the nifti library [Rick, if you want, I can do it, but we have to discuss some caveats I discovered first.]
FAT16 usage is possible in embedded system, but thankfully, the operating system usually convert lowercase to uppercase automatically so I do not see a problem here, i.e., just issue lowercase filename.
HTH
Cinly
|
|