The users and conferences tables should each have a
field, "presentation", used to point to a text
containing the object's own short presentation.
This should then be added to a special conference for
each category, where users can read new presentations
as they are written.
Ideally, the create conference command should land in
the text editor after all parameters have been
established, where the creator can write a presentation
directly. If the creator chooses to abort the text, no
presentation will be stored. This can later be remedied
with the command "change (or add) presentation".
When creating a user, however, no presentation should
be asked for initially. But the user should be
reminded, for example during his first five logins or
so, to write a presentation using the "change (or add)
presentation" command, unless he or she already have
done so.
The "change (or add) presentation" command should
assume that by default user means his or her own
presentation. An argument indicating another object
(own by user) should of course be accepted. This
command will land user in text editor, either with a
new text (if no previous presentation exists) or with
old presentation loaded into the editor for revision.
Logged In: YES
user_id=658926
The presentation nag is a good idea, but what would be
gained by rewriting the current presentation solution?
Logged In: YES
user_id=1058572
(So how the fuck do you submit a followup?! Oh well, I'll
try this nifty "Attach A Comment" field, that might do the
trick...)
Well, it seems I didn't do my homework properly. I didn't
notice that there already were presentation functionality
implemented. My apologies! However, it would be nicer if it
would actually work. ;-)
First attempt; very abbreviated object name given. (Could
this be a (drumroll...) PARSER bug?!)
----8<--------8<--------8<--------8<---- (cut)
(Se) tiden - pre
Ange anvndare eller mte: b l
java.lang.ArrayIndexOutOfBoundsException: 1
at
nu.rydin.kom.backend.NameUtils.match(NameUtils.java:172)
at
nu.rydin.kom.frontend.text.NamePicker.innerResolveName(NamePicker.jav
a:43)
at
nu.rydin.kom.frontend.text.NamePicker.resolveName(NamePicker.java:86)
at
nu.rydin.kom.frontend.text.parser.NamedObjectParameter.resolveFoundOb
ject(NamedObjectParameter.java:63)
at
nu.rydin.kom.frontend.text.parser.Parser.parse(Parser.java:326)
at
nu.rydin.kom.frontend.text.ClientSession.mainloop(ClientSession.java:
526)
at
nu.rydin.kom.frontend.text.ClientSession.run(ClientSession.java:364)
at java.lang.Thread.run(Unknown Source)
----8<--------8<--------8<--------8<---- (cut)
Second attempt. Definitiely OK object name given.
----8<--------8<--------8<--------8<---- (cut)
(Se) tiden - pre ben l
Skriven av Benny Lfgren /nisse
Mottagare:
rende: Presentation Benny
--------------------------
1:Tjoho!
2:nu.rydin.kom.exceptions.UnexpectedException:
java.sql.SQLException: Illegal
operation on empty result set
at
nu.rydin.kom.backend.ServerSessionImpl.getMagicConference(ServerSessi
onImpl.java:2598)
at
nu.rydin.kom.backend.ServerSessionImpl.getMagicConferenceForObject(Se
rverSessionImpl.java:2605)
at
nu.rydin.kom.backend.ServerSessionImpl.storeMagicMessage(ServerSessio
nImpl.java:667)
at
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at
nu.rydin.kom.backend.TransactionalInvocationHandler.invoke(Transactio
nalInvocationHandler.java:41)
at $Proxy0.storeMagicMessage(Unknown Source)
at
nu.rydin.kom.frontend.text.commands.PresentObject.execute(PresentObje
ct.java:38)
at
nu.rydin.kom.frontend.text.parser.Parser$ExecutableCommand.execute(Pa
rser.java:63)
at
nu.rydin.kom.frontend.text.ClientSession.mainloop(ClientSession.java:
527)
at
nu.rydin.kom.frontend.text.ClientSession.run(ClientSession.java:364)
at java.lang.Thread.run(Unknown Source)
Caused by: java.sql.SQLException: Illegal operation on empty
result set
at
com.mysql.jdbc.ResultSet.checkRowPos(ResultSet.java:3619)
at com.mysql.jdbc.ResultSet.getLong(ResultSet.java:1337)
at
nu.rydin.kom.backend.data.ConferenceManager.getMagicConference(Confer
enceManager.java:249)
at
nu.rydin.kom.backend.ServerSessionImpl.getMagicConference(ServerSessi
onImpl.java:2594)
... 13 more
(Se) tiden -
----8<--------8<--------8<--------8<---- (cut)
And, as icing on the cake:
----8<--------8<--------8<--------8<---- (cut)
(Se) tiden - pres
Ange anvndare eller mte: be l
Connection to host lost.
C:\Documents and Settings\bl>
----8<--------8<--------8<--------8<---- (cut)
(The last one resulted in this in the java console window:)
----8<--------8<--------8<--------8<---- (cut)
java.util.MissingResourceException: Can't find resource for
bundle java.util.PropertyResourceBundle, key
nu.rydin.kom.exceptions.KOMUserException.format
at java.util.ResourceBundle.getObject(Unknown Source)
at java.util.ResourceBundle.getString(Unknown Source)
at
nu.rydin.kom.i18n.MessageFormatter.getFormat(MessageFormatter.java:83)
at
nu.rydin.kom.i18n.MessageFormatter.format(MessageFormatter.java:66)
at
nu.rydin.kom.i18n.MessageFormatter.format(MessageFormatter.java:41)
at
nu.rydin.kom.exceptions.KOMException.formatMessage(KOMException.java:47)
at
nu.rydin.kom.frontend.text.ClientSession.mainloop(ClientSession.java:547)
at
nu.rydin.kom.frontend.text.ClientSession.run(ClientSession.java:364)
at java.lang.Thread.run(Unknown Source)
2004-08-27 01:59:08,934
nu.rydin.kom.frontend.text.TelnetServer$SessionReaper -
INFO: Disconnected from 127.0.0.1
2004-08-27 01:59:08,954
nu.rydin.kom.frontend.text.LineEditor$EventPoller - DEBUG:
Exiting event poller
2004-08-27 01:59:09,004
nu.rydin.kom.frontend.text.LineEditor$KeystrokePoller -
INFO: Exiting keystroke poller
----8<--------8<--------8<--------8<---- (cut)
Logged In: YES
user_id=658926
Did you remember to first create a suitable magic
conference? :-) "Skapa specialmte (j/n)?"
(My idea behind this design: The user should never have to
actively search for new users or conferences. Instead,
presentations should be stored in a special conference, which
users interested in new users or conferences could become a
member of. For the same reason, Notes is a special magic
conference, as the need for such a conference has become
obvious by the creation and use of Whereabouts)