Inuka Vincit

Ranch Hand
+ Follow
since Aug 10, 2004
Merit badge: grant badges
For More
Cows and Likes
Cows
Total received
0
In last 30 days
0
Total given
0
Likes
Total received
1
Received in last 30 days
0
Total given
0
Given in last 30 days
0
Forums and Threads
Scavenger Hunt
expand Ranch Hand Scavenger Hunt
expand Greenhorn Scavenger Hunt

Recent posts by Inuka Vincit

I am in the process of developing some tools in c# (.NET) for my own personal use(curiosity really), and was thinking to release it into the public domain. What are some good places to publsize/post this stuff other than my personal webpage.
I was thinking of codeproject.com which is .NET specific.
Are there any other places our there that are any good. I was thiking of sourceforge as well but what I am doing isnt significant for a opensource project.

thanks for any helpful info.
18 years ago

Originally posted by Sonny Gill:
Also, there is a difference in expectations when comparing an arranged marriage vs. love marriage.

Probabely, in an arranged marriage, the most important thing you are looking for in your spouse is that she be a good parent for your kids, get along well with your family, and be a suitable companion in your personal and social life. Whereas, in case of a love marriage, the expectations could be a totally different kind.

As someone said, arranged marriages are successful, because you start from 0, and so can only go up , where as in a love marriage, there is as much chance of the (existing) love withering away as of its growing.



baah dont belive in the cultural BS the fellow countrymen feed you .

IMHO when you meet your soul mate arranged or otherwise you just know it. No ammount of questions or interviews will prepare you for it. I fell in love because my wife had all the qualities I have ever wanted in a women(including being a great mother). I assure you that most people( many of my friends) who marry for love think about parenting, getting along with the family etc.

I am not an Indinan but from the subcontinent. Personally (for me) I didnt want to have an arranged marrage because simply most people I know who got an arrangemarrage(90%) were in a pretty much loveless but successful relationship. To me Love is the binding factor in a marrage, it will keep two people together no matter what, and and most important of all happy as well. If two people get married(arragned or otherwise), and have no love for each other(not carring, not friendship, but pure and simple love) then it will be just an unhappy union of two people getting to gether to procreate.

As long as both people are happy it all good.
19 years ago
I got between 70-75 on whizlab exams. They are tough. I made it.
I also used the same book you used.

good luck, if you feel confident go for it. You shouldnt have a problem getting through.
IMHO the idea of a pattern is to help you to solve the problem (and hopefully simplify it) and not to confine what your doing. The reason I say this is because you seem to be worried about violating the MVC pattern rather than using it as a solution.

THe Model should be the interface to the database like what peter said. I took the approach and then modified it to suit the assignment. Since the only model we were dealing with was data, I created my model using AbstrctTableModel, and then proceeded to build the controller on to it as well. Of course this approach will make it hard to change the type of view in the future, but I documented that. I just allowed for changes in fields and such.

As for configuration, and other features that were not part of the main database GUI I didn�t consider them to be part of the MVC pattern. But I did include them as parts of the MVC classes I had.

Not the cleanest of approaches, but I didn�t see the point of breaking it up some more. I did document the shortcomings. I suggest you do the same depending on the approach you take. I wouldnt worry too much about violating the MVC pattern a bit(configuration, help etc.. ) as long as you have divided up the responsibilities of the objects properly.
[ February 07, 2005: Message edited by: Inuka Vincit ]
There is a link in the FAQ to some sample questions and answers, go over them and then your design(class names etc). Thats it. If you realy did the program it should be a problem if you didnt your going to fail with a big F .

Good luck.
[ January 19, 2005: Message edited by: Inuka Vincit ]
Honestly SCJD is not a hard assignment int terms of coding complexity. You have a pretty simple problem to solve. There is no complex algorithm to solve. The hardpart about the whole thing is prodcuing a clean simple design to meet the specifications and then documenting all the details. Most of the time will be spent refining the design and the rest coding, debuging, and testing. So I would say total time spent for a person with a descent knowledge of Java is about 50-100hours with nore than half it design time. If you spend a good ammount of time producing a clean design and doing the ground work you will spend less time debuging.

In my case I have no real world Java experiance(although my MS uses a Java based network simulator), just C++ experiance combined with a bunch of hardware based OO language experiance thats it. Morten you should be able to do this without too much trouble. The best way to understand the scope and difficulty of the problem is to read past threads.

I started off by going over a couple of software engineering design books(desing patterns, UP, testing etc). Then as I started figuring out the design. Whenver I came upon an important design issue(locking, RMI etc) I looped up past threads and read through them to find out the problems others have encountered. In this way I was able to produce a pretty clean design and was able to code the assignment relatively quickly. I found that the infomration from this forum far more useful than any SCJD specific book.
[ January 15, 2005: Message edited by: Inuka Vincit ]

Originally posted by Frans Janssen:
I am doing something very similar. I schedule a new TimerTask for every locked record, that will automatically unlock the record if it is not unlocked by the client within an reasonable amount of time. I still have to decide what "a reasonable amount of time is", but I'll probably take something around 60 seconds.

The Unreferenced solution cannot solve clients that fail to unlock for reasons other than a lost connection.

As an extra, the timer solution also provides a way out of deadlock situations, although I must confess it is not a very elegant one

For the assignment though I am assuming that it will be good enough.

Frans.




I am going with what peter said as well. The Unreferenced is the best sollution, as well as the simplest. The thing is frans there should not be any case other than lost connections to cause orphan locks( crash, power faliure etc should also cause lost connection). IMHO with the timer sollution unless you attempt to notify the client of a timeout your going to leave the client hanging.
When I did my program I thought about 1 but never directly addressed it. The read either read the old records or the new records it wasnt guaranteed.

#2 should not happen. If you designed it right it cannot happen. A record needs to be locked inorder to be modified, and the same user(or object) then has to unlock the record for it to be modified again.
I used cacheing with individual record locks.
I did the same thing.

My read method read from the cache, just make sure that your write and delete methods update the cache consistently with the file.
No each field of the array corresponds to a column in the table. So that way it wont display all the fields

for example

to search java hilton
this is an example from my head carnt remeber what the specs said

search[0] = null //corresponding to rooms
search[1] = null //corresponding to date
....
search[4]= "java" //correspons to location column

...
search[5]="hilton" //correspons to name column

I think your thinking its search[0] or search [1] or .... search[5] type of thing. Rather its name== search[5] and location ==search[4] and ... search[0]== rooms type of thing(conceptually). Hope I dont sound confusing.... thats how I did the implementation and interpreted the requirements. Otherwise yes the search would be meaningless
[ January 08, 2005: Message edited by: Inuka Vincit ]
I had a drop boxes with the all option , and options for selecting the different choices in the database. I also had clear buttons so that user could clear the fields, and the blank fields did an all search as well, as the requirements stated. In this way the user could either chose the different options or type in the search and the program would perform and exact match. I thought the exact match requirement screamed for a drop box so I put one in. I got full marks for the GUI with my approach, you should add what ever feature you think will help the user, just dont over complicate it.
[ January 07, 2005: Message edited by: Inuka Vincit ]
Its great that you did the assignment in 40hours.

In all honesty I spent most of the time on design and trying to figure out the best way to solve the problem and trying to learn as much as I can about design patterns and testing for the purpose of learning. This is definitely not the most complicated program I have done(and this is probably true for many others as well), I have done way more complex stuff in way less time when I was in school(two or three days ).

The point about the SCJD is not about coding its about making a clean, clear design with documentation. The point is not to code in record time or to have complicated chunks of code. Just looking at the time you have spent on design I can say you have done the typical hack and code approach that most students take when they code, and from my work experiance can lead to pretty bad designs(unless your a very talented software engineer).

So anyways I realy hope for your sake that you are as good a designer as your a coder(either that or you have lots of work experiance), because more than half the grade is on the design. I am not doubting your ability just trying to say that you seemed to have missed the point of the assignment as a mini design excersise.

Good Luck.
thanks Dieskun for showing me where the details were at.... lol I couldnt figure out my score for a while there .
19 years ago
So here is the score. I banged my way through SCJD in a hurry, submited it about a month ago, and was finally able to see the results after a hectic week of moving. I am surprised at the score(in a good way), I guess the I lost marks for the general considerations because I did the test a week after submitting the assignments. Oh well I am happy either way.


This report shows the total number of points awarded for each section. The maximum number of points is 400, to pass you need a score of 320. Section Summary: Section Maximum Actual Points Points
General Con: 100 78
Documentation: 70 70
OOD: 30 30
GUI: 40 40
Locking: 80 80
Data Store: 40 40
Network Server: 40 40
Total: 400 378

My approach was a simple clean design with clear detailed documentation. This allowed me to complete the assignment in about three weeks and get a descent score

My program is the equavelnt of a diet cola. The bare minimum with the only optional requirements of unbooking and an html help file display thingy. I used RMI. For persistance I used simple files, and only opted to persist the location of the database file(for the server) and the location of the database server(for the client).

GUI:
My gui was very simple. Nothing special. Since the search called for an exact match I had a drop boxes for location and name with all possible options.

Locks:
I used individual record locks, with cacheing. In my case this simplified everything quite a bit. I read in the whole database into record data structures that held both the record state(delete/lock) as well as the values and then stuck them into a vector(yeah I know its old I just used the first list type container I found ).

Design:
The server side had three parts. Data, Business logic and the server. Each client talks to the server through a buisness logic interface instance(each client has one). When the server gets a connection it returns a buisness logic instance to the client. All the business logic instance then talk to a singleton Data class. The reason I have multiple business logic class instances is so that I can deal with orphan locks(yes buiness logic implements remote).

THe client side uses a simplified form of the MVC pattern.

Other stuff:
I had an extra class that defined the whole database(kind of like an abstract factory but not quite). I used this apprach instead of a property file because it was much simpler but at the same time allowed the same type of extensibility.

I documented every single little detailed assumption I made. I think this helped me getaway with some things.

I did implement the 48hour rule. I assumed that all the clients were located in the same timezone and I documented this as well.


Thanks:
Thanks to everybody, I had fun doing this assignment and particpating in discussions. I did buy the popular SCJD book, but by the time I got it I found this forum to be far more usefull so it became paper weight. Special thanks to Mr Monkhouse whos detailed answers to past threads help me get a good idea of the design and the design problems.

anyways good luck to all you guys taking SCJD.... I will check this place out as time permits
for now I am a very happy camper...
[ January 06, 2005: Message edited by: Inuka Vincit ]
19 years ago
thanks man found it
19 years ago