?

Log in

oopdocbook
 
[Most Recent Entries] [Calendar View] [Friends]

Below are the 11 most recent journal entries recorded in oopdocbook's LiveJournal:

Saturday, July 17th, 2004
6:17 pm
[typerecorder]
Leaving lj... come to wiki!
We now have a wiki integrated with oopdocbook, so we no longer need an external web service to provide a messageboard.

Feel free to create an account there. Stay tuned, as we will be making lots of customizations to it.

There have been many changes and enhancements to the book this summer - too many to mention.
Thursday, April 22nd, 2004
1:54 am
[typerecorder]
jedit
By the way, just wondering, which of you are using
jedit?

I have to say, it's the best damned editor I've ever used. I keep trying to use more integrated or c++-centric development environments and switching back to jedit.
Now that I have a macro for toggling between header/source, it becomes so much nicer to use it with C++!!

http://cartan.cas.suffolk.edu/~sae/local/jedit/macros/Toggle_Header_Source.bsh

Don't forget to download the latest version of ctags, code-browser and project-viewer... Those are essential.
Wednesday, April 21st, 2004
10:50 pm
[typerecorder]
This is another chapter that was written after the book was printed in january:

http://cartan.cas.suffolk.edu/~ezust/oopdocbook/html/sigslot.html

I'm recording these so I remember which to put together for an addendum..
12:55 am
[typerecorder]
Sunday, April 18th, 2004
11:00 pm
[typerecorder]
FileTagger and Mp3File
FileTagger is an object which holds on to a tag.
It's a "heavyweight" object.

You might want to create only one FileTagger object for reading all your data,
and copy the properties from the FileTagger into an Mp3File or a PropsMap,
for when you add it to the PlayList. Having large collections of FileTaggers may cause a drain on the system, and you don't need FileTaggers for each object unless you are actually editing the id3 tags.

So for example, the Id3 Edit Form should hold onto one FileTagger object, and
that's the one that's connected to the OK, Cancel and Reload buttons.

[I'll add a diagram here soon ]
Monday, April 19th, 2004
1:48 pm
[typerecorder]
filetagger.tar.gz added to dist
Just added the "filetagger.tar.gz" library to the dist directory.
Feel free to reuse that for future assignments.
3:04 pm
[typerecorder]
How to use Constraints and ConstraintMgrs
You don't want to use DataObject's singleton ConstraintManager for this exercise - your program should do something like this.

1. Read the command Line arguments.
2. Create some Constraint objects representing the command line arguments.
3. Create a ConstraintMgr object, and add those Constraint objects to it.
4, Start processing files.

PlayGen is a VFileVisitor, so it has a constructor, and a processFile()
method. Its constructor should initialize a ConstraintMgr, PlayList and a
FileTagger.

Then, in the PlayGen::ProcessFile(QString filename)
You send a message to mFileTagger to load in the id3 tag information.
You check the mConstraintMgr
fileTagger to see if it satisfies the constraints. If it does, create
a copy of that object and add it to the PlayList.

Coming soon : a diagram that will specify this better.
Sunday, April 18th, 2004
11:15 pm
[typerecorder]
password-protected development version
Just to let you know, I am in the process of implementing some JSP pages on top of the "dev" version of oopdocbook: http://cartan.cas.suffolk.edu/~sae/oopdocbook.
Soon it will be possible to request access via a web form.

Until then, I've imposed some security measures - anyone from outside suffolk will need a password to access it. If you want access to the page, just ask and I'll create an account for you.

Let me know if you have any problems . thanks ..

You can access the regular version (for presentation on the projector)
at http://cartan.cas.suffolk.edu/~ezust/oopdocbook
11:00 pm
[typerecorder]
FileTagger and Mp3File
FileTagger is an object which holds on to a tag.
It's a "heavyweight" object.

You might want to create only one FileTagger object for reading all your data,
and copy the properties from the FileTagger into an Mp3File or a PropsMap,
for when you add it to the PlayList. Having large collections of FileTaggers may cause a drain on the system, and you don't need FileTaggers for each object unless you are actually editing the id3 tags.

So for example, the Id3 Edit Form should hold onto one FileTagger object, and
that's the one that's connected to the OK, Cancel and Reload buttons.

[I'll add a diagram here soon ]
10:43 pm
[typerecorder]
Discussion about Hw6
For doing the constraint queries, here are some thoughts:

There is a singleton ConstraintMgr returned by "getConstraintMgr()" method on DataObject. This particular ConstraintMgr instance is in charge of handling input constraints on DataObjects.

This means if, at the start of the program, you create a couple of Constraint Objects and add them to the DataObject ConstraintMgr, then from that point on, attempts to set the properties to values violating the constraints (through the method setProperty(propertyname)) will fail, and a result of false will be returned from the setProperty method.

So in effect, you are prevented from setting the DataObject's properties if it violates constraints set in that constraintMgr.

However, Constraints and ConstraintMgr are reusable classes. You don't need to use the ConstraintMgr returned by DataObject.

You can create another ConstraintMgr object which contains a set of the constraints you wish to impose, and then check if a particular object satisfies it with the "satisfies" method on ConstraintMgr.

For this assignment, I imagined that you would read in each object, then check whether it satisfied a set of constraints that you created for that class, before adding it to the playlist. This way, the result playlist would only have a subset of the MP3 files that are in your filesystem, only those which satisfied the constraints.

In effect, you are querying the file system for a set of songs which satisfy the constraints.

But if you design this well, you will be able to use the same mechanism for querying the playlists in memory, or in a database, whatever.
Thursday, February 19th, 2004
3:39 pm
[typerecorder]
Intro
Oopdocbook is a set of slides, as well as a textbook.
The slides are currently being used in CS331/CS608 at Suffolk University. You can see the slides here.

You can request access to the version under development after joining the community.

Feel free to post your questions or comments about the book here. The current release is version 1.4. Most recently modified sections are:

Multiple Inheritance
Constraints Example
Homework 3,6 (filetagger assignments)

If you do not yet have an account, you can create one
here.
C++ OO/Framework Development with QT   About LiveJournal.com