Cindy Carney

Ranch Hand
+ Follow
since Jan 12, 2010
Merit badge: grant badges
For More
Cows and Likes
Cows
Total received
In last 30 days
0
Forums and Threads

Recent posts by Cindy Carney

Hey Peter, did you pass? And how big did your choices.txt end up being?

Mine's very concise as well. I didn't describe the system design in it, I just made entries when I ran into difficult design or implementation choices.
Ooh - is there a 'minimum size' on choices.txt that I'm unaware of? I just have like 2 sentences describing what I did (implement both RMI and sockets), and why I chose what I did (RMI).

My whole 'choices.txt' file is like 4 pages, printed. Do you think that perhaps that area of my submission is underpowered?
A perfect score! That's great, congrats!

Yeah, a year is plenty of time- that's enough time to finish it even for people that have full time jobs on the side, so that's good. It took me about 6 weeks to get it done, working at it full time. And I have 25 years experience in computer programming, most of it not in Java tho.

In some areas, I did more than the bare minimum required by the assignment - my GUI is prettier than most, I incorporated online help instead of a text file, I allow searching on all database fields (not just name and location), I allow regex searches in addition to simple 'starts with' searches, I allow for intuitive 'or' statements - enter multiple search criteria on a single line separated with commas will look for 'any' of those phrases (do an 'or' search), entering search criteria for multiple fields does an 'and' search (records must match all the criteria). I even implemented a multithreaded TCP server - that took a week or two, but I ended up discarding it in favor of the simpler RMI code.

But in some areas, I did the bare minimum. I didn't implement any method to add new rooms, or delete rooms - just update existing rooms. User feedback said they wanted dropdowns for the yes/no choices, and a lot of the other search fields on the screen, but I didn't implement that. Though the low-level 'DB' implementation has the required the 'create' and 'delete' methods, my higher level 'Database' interface implementation provides the bare minimum to provide the needed program functionality, which means it doesn't have a create or delete function.

I did implement extensive multithreading tests to ensure my DB portion satisfied the requirements, and wouldn't lock. I wouldn't call that overkill, because you don't know if you've really nailed it, until you've tested it.

Anyways. A lotta work, to earn this $600 certification. And now I'm leaving my Java job soon, and wish I had put in the effort into the Microsoft certifications, instead! But you never know what life is going to send your way. On the new job, I will pursue the Microsoft certifications - hopefully all those certifications, standing pretty in a row, will impress SOMEone SOMEday, and help me out somehow.
Don't you wish we could show off to other programmers here? All this talking with no example, can be frustrating, but we can't break the rules by collaborating. :-/

It's a shame to work on something for 6 weeks, just to have to throw it away at the end.
Neat to hear all your answers, thanks!
I like the additional info bits it fills in - it's easy to get in a rut and not use the whole toolset, and getting a certification forces you to examine every drill bit.
May I express jealousy over your 'self-employed' statement? :-D I miss that... programming for a boss is not nearly as fun as being independent.

I should have gone back to work as a contractor, in the first place, but instead, I took a job. Now with this bad economy, it's probably not a good idea for me to be contemplating being a contractor again... but when times pick up, I'll revisit that decision.

Good luck with your contracts! I hope the money is plentiful, and the blank spots between jobs are few.
Yeah, I know that, and use that in my professional development work. But in a strongly-typed language such as VB.NET or Java, that comes at a price - the cost is making a new class for every file layout you want to update. But, when you need things flexible, you have to give up the 'separate class for every file layout you might encounter' scenario.

If I were to beef this up to include updating all the fields, not just the owner, I would use the generic 'retrieve the column index for this string' method on ALL the columns.

Flexibility won out for me over business objects, for this small app. But business objects win out for larger, more complex apps, certainly.
Well, here's why I did it.
Let's say you have a database with 3 fields - hotel name, location, and owner....
and a database with these four fields: owner, hotel name, location, number of pets.

If you hard code '2' as the field to update, you will mess up your database when you go to update the second database. By saying 'get me the index of column owner', and using that dynamically-retrieved index as the column number to update, the same program will update both databases correctly.

For me, it is to beef up on my Java knowledge, and earn the respect of my Java peers. The second part didn't work out so good, but it DID beef up my Java knowledge.

I'm hoping to get back to doing VB.NET work soon, so I think I'll start pursuing those Microsoft certifications, next. I have only a two year computer programming degree - I hope that having certifications in multiple languages will help to offset that.
I agree. I used to do stuff like that earlier in my career, but have since stopped. Though it seems to save time during development, those early gains are erased when it comes time to perform maintenance - you'll find yourself cursing those fields that have more than one use, like 'a combo delete-flag and status flag' or 'a combo delete-flag and last update date flag'. They make things confusing, fragile, and resistant to change.
Truthfully, I'm not even using a class for the data. The String[] array suffices to describe a record, since all data is treated as a String. However, I DO use a class for everything else, including the database. Instead, I've implemented a flexible record loading procedure, that reads the fields from the header, and sends that field list and data to the GUI. The GUI has no prior knowledge of the data it's receiving - it simply updates the column headers with the field list, and binds the array of records to the JTable.

The only field updated in my GUI is the owner record - to make it flexible, I look up what column the 'owner' is, before updating the record. That way you can update the record even if the owner column shifts around between datasets. If it can't find the owner column, it throws an Exception. This has the benefit of flexibility - this is now a generic reader, that can read and update any data file that has the same file header as my database, and an owner column.

My project has not been graded yet - I'm going to submit it tomorrow though, and start my 6-week countdown timer.

OK, thanks for the clarification, Roels. I appreciate it!
But in a message you posted here, you stated:

Roel De Nijs wrote:Of course I am sure! And to prove it, here is a (snippet of the) listing of my submission jar created with the jar tool:[code]
C:\Java> jar tf submission.jar
META-INF/
META-INF/MANIFEST.MF
code/
docs/
db-1x1.db
runme.jar
version.txt



That shows the db-1x1.db file inside the submission jar file. Don't forget, we're talking about two jar files here - the 'runme.jar' file, and the submission jar file containing everything. My question is if they extract the contents of the outer jar file first, which would expose the runme.jar and the database at the same level.
Hi there. I'm preparing my submission for the SCJD, and have stumbled across what so many of you already have, the whole 'must load the resource from the jar' bit.

I got that working for images in a folder, but I couldn't get that working for the database file at the top level of the jar, located outside any package. I finally broke down and used



and managed to locate it, but it felt wrong. I don't know why I couldn't load that file like I did the images - the only difference was, it wasn't in a package.

That brought to light a different error - now it can locate the file, but when it tries to create a new RandomAccessFile from it like this, it fails.



Which makes sense, since I also read you can't modify files in the JAR. But that does leave me with one pressing question: Will the reviewer be extracting the files from the JAR, before testing it? If not, I don't see how I can possibly modify this file.

Any suggestions?