Svetlana Koshkina

Ranch Hand
+ Follow
since Jul 08, 2003
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 Svetlana Koshkina

try to change your jar with jstl tags. What happening (judging by exc-ns you are getting) is most likely not your fault.
I've got my jstl tags from jakarta web site. They are doing very well.
20 years ago
ActionForm is presentation layer, so we used to say, you tie it to some framework that really make your life MUCH easier. In every book advertising struts or some other framework you find that it was clearly stated that it's very important to keep presentation separate from persistency and buisness layers. So it's up to you
Shortly, it's not bad design at all: just an opposite - it shows how you are up to date AND AWARE.
i have book on how to make custom tags, in project i am working on currently, i did not have a single minute to use my previous experience fully and be comfortable: always new quirks and stuff, but i never had an urge to make custom tags (is it not a blessing in itself?). Who cares? It is just matter of dropping a few jars in your lib.

Regards
20 years ago
Thank you.
Everything understood.
Only i don't like providing for editing of two or more protocols ...
20 years ago
Dear Philippe, i don't believe you are still here sorting out for everybody's sake. Now, you are just perfectionist. Never mind...
Just to make my small contribution.
I've got full points for locking:
1.used LockManager that orchestrated locking of records as a whole in BitSet data structure
2. could add records dynamically because LockManager made sure that everybody waited until new rec. was added (otherwise you easily get deadlock);
3. used notifyAll, it's simply stated that notify is too risky;
4. used Semaphore style locking management for individual records,
meaning that individual rec.s checked the thread's identity on their own and coordinated their lock-wait states, LockManager was satisfied with knowing their state such as unlocked(0) locked(1) in its collection to decide what to do next.
5. Used two LockManagers - one for client side locking (if they wanted) and another was performed automatically by the database's wrapper - abs. same mechanism but methods were private.
like method modify for ex.

lock(int i) -> called by client but can be omitted (still cant corrupt my rec)
internalLock(int i) -> called by db
----
modify
blah-blah
----
internalUnlock
unlock

5. tested extensively and in docs rather boldly mentioned that it impossible to get deadlocked in the setup and moreover clients can't workaround db's internal locking since all methods are padded, but if it wanted to be protected from other client (dirty reads or whatever) it is advised to use public lock-unlock methods provided for the purpose.
Probably it's possible to deadlock, but i bombarded the db with requests at random intervals from 0-4 millisecs overnight - everything was clear.
Hope i was more or less clear - in a hurry

[ February 11, 2004: Message edited by: Svetlana Koshkina ]
I'll explain why i'm asking. Actually, i read in the internet that it's recommended that wizard-style multiple-paged form (in struts anyway) was represented by single ActionForm bean. It's clear that developer should coordinate validation across pages but it's ok.
I had the following problem ...
I am writing scientific protocol. There are distinct parts: title, author(s), keywords, references... so far so good.
Main part of protocol is body - detailed description of procedure. You can ask user to put it in one chunk (here you will get very poor formatting afterwards) or you might want to be able to format the protocol and actually this is very important. The problem is that the body can contain unlimited amount of absolutely uniform from developer's point of view parts, say: subtitle-subbody parts. One part - one page in wizard's world.
There: if you have one form bean to hold onto all those parts, you have to put limits on how many subbodies (roughly speaking) you can have in one protocol. It's very, well...
So, i had only choice to create two kinds of forms for wizard style protocol's filling out: first the stuff i mentioned first, and separetly ProtocolSubbodyForm (roughly speaking) and then, glued it up together behind the scenes with gigantic ProtocolBean. Everything is enormously bulky code-wise (i omitted xml-dealing part).
So, my question is:
1. how to handle multiple paged forms best in general - one form bean or several form beans?

Another very important question is:

I am editing protocol. Scenario: I have one object as ProtocolBean for display,
press edit and i spawn 2 other objects - EditedBean (to write all changes step by step) and BackupProtocol (identical to ProtocolBean), because if the user while editing changed the view to another protocol I'll loose track of what i'm editing plus some other problems. It's ok so far, but
IF THE USER want to edit two protocols in parallel??
She will replace my cherished EditedBean for something else and i end up with complete mess. I had to curb attempts of doing so by throwing warning to the user, but still... So another my question is:

2. how the problem is solved routinely in web development?
And small suggetion, that web dev. books should mention about necessity to be able of deep cloning of some objects for back up (by providing 'copy' constructors perhaps).
3. GARBAGE COLLECTION TECHNIQUES - how to consistently get rid of all the junk in session scope ??
Best regards, Svetlana :roll:
20 years ago

Originally posted by Neal Ford:
Good suggestions all. Another, simpler UI might be a Wizard-style interface, where the user builds the heirarchy by stepping through multiple steps. It's more work on the user, but much easier on the developer (and that's what's important, right? )


Absolutely!
I am almost done to make it easier on myself. Now i need strategic places to hang my principal carrots for lazy scientists to come back to nibble at.
Software is all about users!!!
Thank you all. I really appretiate it
20 years ago
Thank you Dinesh!
I actually was thinking about something along the lines...
You are right that some mechanism is needed to render the potentially very big tree more comprehensible and easy to use.
If you've noticed, LabMemberID is added as a field to locations table.
There are two categories of items naturally: lab-wide and private.
Lab-wide categories I could track down by type of form the user is filling (i wanted to add linking table locationID-Categories that should be automatically updated upon addition of new forms and locations), in addition, if LabMemberID is not null, i will be able to pull all private reagents stashes for a particular user...
By using the linking table i could figure out tree representation for a particular situation and for particular user. For ex. if i'm working with cell lines places where i can store them are limited to thermostats, -70 freezers and luquid nitrogen containers. Also, i was thinking about grading nodes by their position's depth as you just noted. I even wanted to include isLeaf field into the table. I hope that i can make it clear for user, whoever is creating new location, that room 206 is among the top and 4X5 cell in a pink box is a leaf. It will allow me cutting off some parts of the tree selectively i.e. not to represent obvious leaves as candidate parents later.
Overall, today i still see it like rather complex and daunting project . I'm glad i asked the question.
If you guys have some more to say, i'll be glad to hear...
Regards, Svetlana
20 years ago

Originally posted by Chris Mathews:
I have designed something similar and I think you are looking right past the answer... use a simple expandable tree with selectable links. Actually, it ended up being fairly easy to implement. For an example see: DHTML Tree.



Mmmmm, yes, it could be it!
Thank you for the pointer, Chris, i am definitely going to look into it.
It would be very interesting to do something like this.
I envision very big tree.
20 years ago
I have a question which i hesitated to ask, but since currently we have expert on duty , i'd like to use such an opportunity.
Dear Mr. Ford:

Well, i'm implementing sort of inventory database. One of main features in it should be easy tracking of locations of different items.
The problem here is that it's not a warehouse's inventory where all aisles and shelves have numbers; this is much more chaotic environment - regular scientific lab with a lot of refrigerators, cabinets and stuff like that.
The initial idea was to build tree structure - each location is either parent or leaf with top locations having null parent (i have similar relationships in another part that implements protocol management but there situation is much easier).
For example:
null -> room 203->Brian's place->small freezer -20C->top shelf->Brian's box
Table looks something like this (in MySQL, need some refinements, never mind):
CREATE TABLE Locations (
LocationID INT NOT NULL AUTO_INCREMENT,
LocName CHAR(80) NOT NULL,
LocDescription TEXT,
LabMemberID INT DEFAULT NULL,
ParentLocID INT DEFAULT NULL,
INDEX(LocationID),
CONSTRAINT pk PRIMARY KEY(LocationID),
)TYPE=InnoDB;
It should work ok when i am presenting the item's details because the chain is not difficult to pull from db, but i have very vague idea about how to build convenient user interface for easy creation of new locations, and also the user should be able to create location on the fly: while filling out another form and at the same time he/she should have easy access to already defined locations.
I cannot build mental picture of all those combo boxes and text fields. It means that there should be more then one, say combo boxes and every next combo's display depends on what the user've chosen in preceding combo box...

My question is:
1. should i commit and try harder to figure out how to do it in practice or
2. it is too complicated and such an interface is impossible to make easy to use and it will be better and more practical to resort to simpler solution such as make user just to type location description and it will be an end of it?
3. did you ever had such a problem and how you solved it?
Best regards,
Svetlana
20 years ago
I have several buttons for user to choose from. I implemented some of them. I configured last two and already saw light in the tunnel, but unfortunately, I even can't test them because I'm having the following exc.:
request sent by the client was syntactically incorrect (Request[/modifyNewSubProt] does not contain handler parameter named action).
I had such exc. before, i do not underst. its origin because i'm sure that everything correct. Previous times i managed to get rid of it by simply renaming buttons, but this time it did not help. I am at my wits end: what to do? Where it's coming from?!!!
Please help
20 years ago

Originally posted by Yashnoo lyo:
Any idea? How to paging if I get a List in my jsp?


I tried the pager once and it did not paint at all. There were no time for me to sort it out and i did very simple pager from some book.
So, i am simply stating that not only you had that problem.
20 years ago
Sure, it is not a problem, although it cannot be done in a form bean.
I looked at some suggestions on the web. It is said that it's better to have single form bean on multiple pages, but then i have to make fixed quantity of subtitle-subbody, and in order it is being sufficient most of the times it have to be fairly big, say 15-20. DynaForms are better, but still, you have to declare them in struts-config.
I decided to split form on general part and sub-part. Sub-part will be indexed in backing bean. I see that i will be able to traverse the bean easily back and forth by keeping track of the views.
:-)
20 years ago
Hi, guys!
For last two days I am trying to figure out how to implement one functionallity in struts. It would be great if you could help me out just a little bit.
I need to fill out protocol form. There are some easy fields such as title, version, authors etc. Those fit in a single page.
What troubles me is the protocol's body.
To support at least minimal formatting I decided to divide the body into
'subtitle' and 'subbody' pairs. There are theoretically should be no limits to how many of those will be in a protocol. This part can go on multiple pages.
The idea is that the user fills first page (title, authors etc), press 'continue' button and 'subtitle-subbody' textarea appears. After filling those out the user has two possibilities: by pressing 'continue' button he/she is getting next 'subtitle-subbody' page, by pressing 'Save', he/she submits this form and it goes to db in xml format so that when i want to present the protocol, i have hooks for necessary formatting.
I can't formulate the design clearly. I understand that I need one underlying bean that will be filled from the form and sent to the db. But how many forms should i have:
1. Should 'subtitle-subbody' section be as a separate form? So that I do not have limits on how many times the user pressess 'continue' button.
2. Or should i have one big form, but how i can implement unboundness of 'subtitle-subbody' part?
3. Probably in lights of having at least two diff. buttons i need LookupDispatchAction?
Any advice will be greatly appreciated.
The thing is that i have no experience and nobody to ask to. I was thinking that maybe there is just more or less tested and routine way of doing such things. I'm afraid that anything i come up with may be clumsy and amateurish.
:roll:
20 years ago
It's ok, before going to sleep i plowed all logs and everything with my nose and found missing quotes!!! I could not find this entry in my log file until i lowered output from trace to debug - it simply was lost in all this huge output!!!
Looks like it's going to work now
[ January 14, 2004: Message edited by: Svetlana Koshkina ]
20 years ago
Hi, friends!
I'm using Tomcat 5 (last version).
It may sound like a stupid question but I could not trace the answer by myself.
I am developing rather big application and learning at the same time.
I incorporated log4j through servlet into the application. It's properties like following:
log4j.rootLogger= ERROR, A0
log4j.logger.login =DEBUG, A0, A1

log4j.appender.A0 = org.apache.log4j.ConsoleAppender
log4j.appender.A0.layout = org.apache.log4j.PatternLayout
log4j.appender.A0.layout.ConversionPattern=%p %t %c - %m%n
log4j.appender.A1 = org.apache.log4j.FileAppender
log4j.appender.A1.File = C:/EMIR/logs/db_log.txt
log4j.appender.A1.Append = true
log4j.appender.A1.layout = org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern= %d{HH:mm:ss} %-5p [%c{1}] %m%n
Honestly. i don't think that log4j is resposible for what is happening because i played with the properties and it did not have any effect.
When I deploy the app. (it still under development so i use 'ant context' 'ant undeploy' 'ant reload' etc) I am getting stunning volume of DEBUG output from somewhere, something like this:
DEBUG - start PrefixMapping(..)
...
...
DEBUG - pushing body Text (,...)
...
Just a lot of lines. Deployment takes about 1 min. just to pull all this rubbish.
My question is: do you, guys have any ideas?
Where it coming from and how fix it, i never had it before.
:roll:
20 years ago