• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Bear Bibeault
  • Ron McLeod
  • Jeanne Boyarsky
  • Paul Clapham
Sheriffs:
  • Tim Cooke
  • Liutauras Vilda
  • Junilu Lacar
Saloon Keepers:
  • Tim Moores
  • Stephan van Hulst
  • Tim Holloway
  • fred rosenberger
  • salvin francis
Bartenders:
  • Piet Souris
  • Frits Walraven
  • Carey Brown

NX: Will they think my GUI is too simple?

 
Ranch Hand
Posts: 619
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi Ulrich,

Originally posted by Ulrich Heeger:
1. Comments?
2. I'm just asking myself if the findByCriteria-method of the Data-Class should proceed a case sensitive search. Because I have implemented this method in the way that it makes a case insensitive search.
If the user asks for "fred" he will find "Freddy", but now I'm unsure if I violate the requirements. Can you help me?


1. Looks OK to me.
2. I would implement a case sensitive search since I interpret the "exact match" language in the assignment instructions to include case.
I think you can make the population of the combo boxes a little easier. Nothing in the application allows records to be added or deleted from the database (yes, those operations are available on the server, but no one is making them available on the client). So, the only database operation implemented on the client that changes the database is update which only effect the owner field (which is not one of the search criteria fields). My point is that there is currently no way to modify the database other than by booking. So it is possible, in my opinion, to populate the name and location drop-down lists the first time records are obtained from the database (when all the records are retrieved) and then you don't have to worry about them anymore because that information can't really change given the way the application is currently designed.
Hope this helps,
George
 
Ranch Hand
Posts: 266
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi George,
thanks for your help.

2. I would implement a case sensitive search since I interpret the "exact match" language in the assignment instructions to include case.


I think you re right. I will change my implementation.

I think you can make the population of the combo boxes a little easier. Nothing in the application allows records to be added or deleted from the database (yes, those operations are available on the server, but no one is making them available on the client). So, the only database operation implemented on the client that changes the database is update which only effect the owner field (which is not one of the search criteria fields). My point is that there is currently no way to modify the database other than by booking. So it is possible, in my opinion, to populate the name and location drop-down lists the first time records are obtained from the database (when all the records are retrieved) and then you don't have to worry about them anymore because that information can't really change given the way the application is currently designed.


Here, you re right again. I was just asking myself if we can really argueing that the update method won^t be extended to other fields. But your argumentation sounds so reasonnable that I will adapt it, if I don^t violate your copyrights
Thanks
Ulrich
 
Ranch Hand
Posts: 156
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi George:

I think you can make the population of the combo boxes a little easier. Nothing in the application allows records to be added or deleted from the database (yes, those operations are available on the server, but no one is making them available on the client). So, the only database operation implemented on the client that changes the database is update which only effect the owner field (which is not one of the search criteria fields). My point is that there is currently no way to modify the database other than by booking. So it is possible, in my opinion, to populate the name and location drop-down lists the first time records are obtained from the database (when all the records are retrieved) and then you don't have to worry about them anymore because that information can't really change given the way the application is currently designed.


Yes, in our application, there isn't any operation to modify name/location field, and sun doesn't require you must reflect the db file when it modified, in other words, to support a 'refresh' button in the GUI.
Look over in the assignment, there is this statement:

The company's IT department has a data file that contains the essential information for the company, but because the data must continue to be manipulated for reports using another custom-written application, the new system must reimplement the database code from scratch without altering the data file format.


Although our application haven't these operation, but the other application have, and this must happen when you do search use your application.
So ensure we don't make any risk, I suggest to use 'refresh' mechanism.
Make sense?
 
George Marinkovich
Ranch Hand
Posts: 619
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi Leo,

Originally posted by Leo Tien:
Although our application haven't these operation, but the other application have, and this must happen when you do search use your application.
So ensure we don't make any risk, I suggest to use 'refresh' mechanism.
Make sense?


I would agree with your point if I thought it was possible for our application and any other application to run at the same time. But, I don't find that requirement in the assignment instructions. Instead I find the following:

Locking
Your server must be capable of handling multiple concurrent requests, and as part of this capability, must provide locking functionality as specified in the interface provided above. You may assume that at any moment, at most one program is accessing the database file; therefore your locking system only needs to be concerned with multiple concurrent clients of your server. Any attempt to lock a resource that is already locked should cause the current thread to give up the CPU, consuming no CPU cycles until the desired resource becomes available.


I do make that assumption and it frees me from having any concern about something modifying the database file while my application is running. Yes, something else (legacy programs) may run and modify the database file between runs of my application, but not while my application is running. Since the refresh is useful only while my application is running I didn't feel the need to provide such a capability to cover a situation that the assignment instructions explicitly say we can assume won't happen.
So, it's not wrong to provide to provide a refresh capability, it's just beyond project scope (that is, it doesn't satisfy a requirement). Assuming it's implemented correctly (and I'm sure your's is), then it will have neither a positive nor negative effect on your grade. If you're happy with your implementation, then you should leave it in.
Hope this helps,
George
[ February 14, 2004: Message edited by: George Marinkovich ]
 
Leo Tien
Ranch Hand
Posts: 156
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi George:
May be you are right. I don't want to negate your standpoint, but let's see this statement carefully.

You may assume that at any moment, at most one program is accessing the database file; therefore your locking system only needs to be concerned with multiple concurrent clients of your server.


First, it explain that 'single server single database' schema. In fact, the "one program" statement is "one your program", it means that at any moment, only one your program is running, not two or more your program running, and not two or more databases is accessed. So, in our program's locking mechanism, we only have one locked container, all client share it and because of this, your don't worry about the entire database level safety. I remember that someone had asked Andrew one question, but I don't find the thread. The question is like this: "When one user get the Data instence like this 'new Data("C:\db.db")' and another 'new Data("D:\db.db")', how to deal with it?" in other words, he asked how to solve the multiple his program and multiple db file running condition. Andrew then show he the statement above and told he don't need worry about this, because only one your program and so only one database is running.
Second, "is accessing" is not "is running". This means that it permits more than two program is running at the same time(in real word, this must happen), but when your program is accessing db file, others must be waiting, convert it, your program must be waiting. When your program waiting, other program will do the operation like create/delete, then when your program get the access permission, yor'd better to do 'refresh'.
Make sense?
 
George Marinkovich
Ranch Hand
Posts: 619
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi Leo,
Thanks for your comments. Your reasoning makes sense to me. Allow me to suggest that although are positions are different they are both reasonable. I think if one makes a reasonable decision and implements it well, then one is in a pretty good position regarding the project. My decision (which I believe is reasonable and has some support in the assignment instructions) allowed me to simplify my design, and that is probably why it appealled to me. I've come to believe that parsimony is a cardinal virtue in this assignment. Do the simplest thing that satisfies the requirements and do that thing well. Of course in practice that's harder to do than it sounds.
Regards,
George
 
Don't MAKE me come back there with this tiny ad:
Thread Boost feature
https://coderanch.com/t/674455/Thread-Boost-feature
    Bookmark Topic Watch Topic
  • New Topic