Skip to main content

Fall 2007

Go Search
Fall 2007
Customer Resource Site
  
Fall 2007 > M06 10-31-07  

M06 10-31-07

Modify settings and columns
  
View: 

1. Name

 Sohum Misra
 (8%) 
 
 Derek Sessions
 (8%) 
 
 Brad Dodson
 (8%) 
 
 Rae Alty
 (8%) 
 
 Jeeyun Lim
 (8%) 
 
 Yuan Gao
 (8%) 
 
 Corey Shaw
 (8%) 
 
 Aaron Cottle
 (8%) 
 
 Kevin Le
 (8%) 
 
 Hubert Lee
 (8%) 
 
 Dave Eng
 (8%) 
 
 Matt Freeburg
 (8%) 
 
 Felipe Serrano
 (8%) 
 

Total: 13

2. Percentage complete

 70%
 (23%) 
 
 40%
 (8%) 
 
 65%
 (15%) 
 
 90%
 (15%) 
 
 85%
 (8%) 
 
 80%
 (15%) 
 
 55%
 (8%) 
 
 75%
 (8%) 
 

Total: 13

3. What milestone objectives were actually attained?  Be specific!

 
My milestones for this week can be found here. In addition, our team was asked to get advanced search working and to have the trust-system interface defined.

Of these objectives, I delegated the Advanced Search to Jeeyun and she seemed to be comfortable with it and looking like she would get it finished. I started creating the interface for the trust network from a user's profile page. Unfortunately, I found a lot of interfaces were actually not working and hence was not able to develop as much as I wished to.

In addition, I implemented an AJAX interface for comments that can only be tested once comments are implemented by the backend.

I have began working on converting our mockups for search results into reality. The first step is getting thumbnails in. However, I will need to work on this when more search results are being fetched.
 (8%) 
 
 
My milestones are here.

I've started work on figuring out relations between objects and how that will function, but it needs to be implemented and tested to ensure it has the right balance (i.e. the correct content is pulled up.) Hopefully I can get a ContentRelator done by next week before launch.

Sort is proving to be a bigger problem than expected. We have a basic structure set up that allows sorting by a particular field (although this is not really supported yet.) However, it seems that we are going to have to change to sorting by a calculated value, which was,at first, put off for being too computationally expensive in the database. However, it seems that we will indeed need this, so we need to work on finding a solution that still retains a sufficient amount of performance. I'll be working with the relationship team on this.
It's good to worry about performance, but keep in mind that premature optimization is the root of all evil. Get an algorithm sketched out (perhaps keeping bottlenecks in the back of your mind for now), implement it, and then focus on making it faster. --Chelsea
 (8%) 
 
 
You can find my concrete milestones here
 
Of these I completed the detailed specification for the Content Payment System, particularly the first half of the system relating to access control. The second half needs some more work, but it's getting there.
I've also written interfaces for these systems, and Hubert is coding the access control stuff.
 
Also, just tonight I've essentially written up what will be required of the Notification System. It's gloriously intricate, but should be very flexible, and I think not too complicated to understand.
I haven't been able to write the interfaces for this yet (that'll be about 4-5am tonight - or is it tomorrow morning - probably).
 
In addition to the concrete milestones, I've been working to delegate managment responsibility better. It feels scary, but I think it's good (I noticed today that like 3 group leaders met to fix a bug without my input). I'm worried that too hands off (as noted by Aaron's journal observation that he doesn't know what I'm doing) may have problems, but I'm trying to find the right balance. It has certainly given me more time to work on design issues (although not that much more free time in general) which I think will help the team get better performance in the next couple of weeks as I hope to move us into hyperspeed, as we can do lots of coding without as many hiccups waiting for someone else to do a design.
 (8%) 
 
 
Milestones listed at the bottom.
G1: This is the milestone that was actually my job. I have implemented string parsing of queries into search trees pretty much completely. It parses each word as a separate query in the tree (unless combined in quotes, in which case the interior of the quotes is one search query). Preceding a word with '+' makes it required (results must include it), preceding a word with "-" removes any results containing the word. Word separated by spaces are assumed to be combined with "or" (unions).
Derek did some work with uploading information into the system so that we can work on sorting algorithms.
 (8%) 
 
 
My milestone for this week can be found here.

- I have created the advanced search UI in which the user can search by author, content name, tag, creation date (from date1 to date2), trust level (i.e. with trust level of at least 8)
- The user can, when logged in, also restrict the search to be performed only within the user's trust network.
- Currently, the search query will generate correct search tree for searching by content name, tag, and searching within the user's trust network.
 (8%) 
 
 
My milestones can be found [Here]
- I fixed the bug that in TagContent page it displays a black background instead of the text.
- Enable the user to align embedded Image content, and increase/decrease the size of the Image Content. User can also change the space and border of the image.
- Remove all other images that are not in our site
- Fix several bugs in WYSIWYG editor
- Check the html tags after user submitted the text content.
- I've added a WYSIWYG editor to registration page for blurb editing.
 (8%) 
 
 
  • The standard relationship model's interface, and methods, are complete and published. These won't be called often outside the backend, but are there for someone who wants full control of what relationship information he is getting.
  • We also provided a more object-oriented interface, that allows the caller to access or modify the relationship information through the class that is affected. For instance, you can get a list containing a user's Trust network from the Entity object for that user. You can also set values through here. This makes more sense than calling into the relationship model directly, although these methods, forward the call on and then format the return values appropriately.
  • We provided a good amount of documentation in the User Guides and Specifications section on Sharepoint. Link The documentation contains the published interface and how to use it, in addition to some more information about how the model is setup.

    The above handles the accessing of author, tag, comment, rating, and trust relationships, and also the creation of author, rating, and trust relationships. See below for the issues on creating tags and comments.

    In addition to this, we:
  • Set up the abstract tree parser to handle a reasonable amount of the specification for search trees
  • Settled the interface for adding new relationships
  •  (8%) 
     
     
    My full milestones are in the usual location but as a summary:

    - I was to decide on/implement indices.
    - I was to move our queries to stored procedures.
    - I was to fix the querying system. Be sure to assign these to yourself; otherwise, there's no way to tell you own them until milestone reports are due. The class and the staff should all be able to look that information up at any point.

    Something has been done for all of these, but not enough to consider any "complete."

    I know what indices need to be added, and know that it will be very easy to add them once we clean up the database a little.

    We settled the issue of "one table/many tables" this week, which is the prerequisite to doing this.

    I am very close to fixing the query system (upgrading, really, to allow things that aren't stored in the Relation table to be retrieved via querying), and if the deadline for this milestone were in another hour as opposed to right now, I think it'd be done.
     (8%) 
     
     Milestones (under Relationships Group)
    • This weekend we refactored the relationships project into the backend.
    • I exposed methods in the Entity class that call on the relationship model to provide a list of comments that entity has authored, a list of contents that entity has authored, rating that an entity has given a piece of content, trust that an entity has assigned to a user. There are also now methods that allow you call on an entity to set his trust for another entity, and one that calls on an entity to set his rating for a piece of content.
    • Relationships team exposed methods in the Content class that call on the RelationshipModel to provide list of comments and list of authors of a content. There are also methods to add/remove authors, retrieve the rating, and get/set personal rating.
    • There are method stubs for creating comments and tags in the backend, although these do not actually create any concrete data structures in the backend.
    • There is now an abstract tree parser for use in integrating with the search trees the search team creates.
    • There is an query engine for use in easily creating searches for relationships based on predicates. One can pull up all relationships with a given subject, object, and predicate.
     (8%) 
     
     
    • Milestone can be found here This link points back to this page. --Chelsea
    • Implemented interface for determining if a user has a specific permission on an object in the backend
    • Wrote stubs for accessing permissions from database
     (8%) 
     
     
    • Personally assigned to do the implementation of tagging - Interfaces and stub code are in. Actual implementation is not yet completed as some implementations are yet missing on the relationship side. Also, instead of ITag only, IImageTag, ITextTag, and IVideoTag just popped up....um...I need to talk to backend. That's really worrisome...
    • Personally assigned to perform testing. - A test project is being worked on locally on my version, but this is going to be rather large, so it is not completed yet.

    • Teamwise - All of the requisite interfaces exist. Documentation can be found on sharepoint here
    • Teamwise - The relationship model is now part of the backend huzzah! This means better interfaces for everybody.
    • Teamwise - we have a query engine that actually queries the backend! Yay!
     (8%) 
     
     
    Milestones were communicated verbally this week. My assigned tasks were:

    - update the ITag interface and implement it in the Tag class
    - add update and remove functionality to BackendRelation
    - get rid of all lazy property assignment in backend objects
    - fix all backend objects to properly set and use relationships
    Even if they were communicated verbally, they *must* be posted in the milestone list. Otherwise, no one but you knows them until reports are due, and then the information gets lost here. --Chelsea

    For these tasks, the following was completed:

    - updated ITag interface to bring it in line with our current definition of "tag: a text description about a backend object"
    - created a Tag class that implements ITag; properly sets relationships to author and tagged object in Tag constructor
    - added CreateTag and GetTag methods to IBackend & Backend
    - marked some older tag functions to be removed (will be deleted following customer meeting, just in case anyone is still using them)
    - created a new TagObject table in the database which conforms to ITag and Tag; old Tag table to be deleted after customer meeting
    - found that the relationship team had created some tag creation methods, so held off on adding AddTag and RemoveTag to BackendObject
    - checked into BackendRelation, and found that update capability for the Value field already exists via a set method; other fields of BackendRelation should not be updated, but instead a new relation created
    - went through BackendObject, Content, Entity, User, Group, and Tag, and removed all incidences of "lazy" properties; all properties are now populated from the database in the constructor, and the object only returns to the database when calling a set method on a property; to update the fields from the database later, the object must be recreated; this solves an error we were seeing last week
    - went through the above classes and changed them all to use the relationship table (for authorship, tagged object, etc.) via the IRelationshipModel functionality; relationships are set in constructors and queried for lists of content authors or content authored by an entity, etc.
    - uncovered during testing that some relations in the database were being stored in the opposite order (probably during the transition period before this latest backend update)
     (8%) 
     
     
    I completed image tagging on both sides: both creating image tags and displaying image tags, but I can't actually connect them yet because the backend is far from offering support for them.

    I created a document describing exactly what will go in a profile page and have begun working with Yuan on it.

    I researched the TinyMCE license to discover that there are some issues with the LGPL agreement. Nothing too siginificant but still enough to bring up to Luke.
     (8%) 
     

    Total: 13

    4. What milestone items were left uncompleted?  Be specific!

     
    I am still reluctant to test with real users because the product is highly dysfunctional. I'm hoping this will be rectified sometime soon so that I can finally get started on this milestone. I don't think it would be valuable to have a user test the interface on a site that essentially had two pieces of content that could be found. Is the issue that the backend is missing functionality, or that no content is available? Make sure that the real issue makes it into someone's milestone this week. --Chelsea

    I had also set milestones for myself to get some sort of Editing interface in so that user's can edit things that are in the system (be they their profile or pieces of content). Unfortunately, I was not able to get this in either.
     (8%) 
     
     
    Sort is the big problem right now. A lot of work needs to be done on it, especially in terms of collaboration with the Relationship team to create a working calculated value sorting system. I've sort of fallen behind on this, not expecting it to be a large problem (since I had formerly assumed that sorting by a field should be sufficient, when mixed with a merge of values from a local search.) Hopefully we can get it together quickly.
     (8%) 
     
     
    On other fronts, I've thought a lot about the message store, but I haven't gottten a chance to write it down yet. Needless to say, that will be happening very soon (and on a positive note, I think we'll be able to have a messaging system in about a weeks work or less for one person by reusing what we've got already!).
     
    The overview of interfaces for the entire system has barely begun. I've got a (now slightly dated) class diagram in Visual Studio I've been working on, which is a far cry from what I think Matt expected from this milestone. I actually kind of think that this milestone was rather unrealistic for one week's work, but I hope to make some progress during the coming weekend on it (after I take my GRE that is).
     (8%) 
     
     
    G2: Derek was supposed to look into it, but there was a bit of miscommunication and he didn't work on it before today. I haven't gotten a preogress report from him since it was clarified.
     (8%) 
     
     
    - I haven't implemented searching by creation date other than the UI but I will most likely have it working before customer meeting tomorrow.
    - The way regex is used in search right now, I cannot take in two or more words for the author name and so currently it only passes the first word as the argument to create the search tree (for example, if I search for author "Jeeyun Lim" the search tree contains "Jeeyun" instead). This was merely not fixed due to running out of time and will be fixed shortly.
     (8%) 
     
     
    - Haven't changed the theme of the text editor
    - Haven't checked html attributes for all valid html tags

    - I can't find properties in IEntity class, so now I can't store the information user entered for blurb.
     (8%) 
     
     
  • I assigned the testing environment to Dave, but I understand that it's a complicated system and will take time. I think it's reasonable that we shoot for a week or two from now. First priority is being able to test the functionality of the relationship model, and next is scalability testing.
  • There's still a bit of ways to go with supporting abstract search trees, including OR and NOT statements.
  • Our definition of the CreateTag and CreateComment interfaces are currently up in the air. This is because it is a joint effort between my team and the backend team, and there hasn't been much communication. I put Kevin on it, but today he has been having difficulties reaching Matt. At least the code is there that implements the method, we just need to agree on a standard interface. This needs to happen as soon as possible.
  • We don't have a way to traverse relationships in a valuation sense, but as with the testing environment, this was a lower priority and will come in time. At least right now, anyone who needed this information would have all the tools necessary to get what they needed, but it would be somewhat of an ugly process.

    There are also a few bugs (that I reported in Trac) in the backend code that we are currently calling. The best we can do is hope these get resolved soon. (Or maybe make sure those bugs make their way into the code owners' milestones this week? --Chelsea)
  •  (8%) 
     
     
    The indices weren't actually added.

    The code isn't yet in a stored procedure.

    The system doesn't quite work yet, but again, it's very close. This is where I spent most of my time, and it turned out to be far more difficult than I anticipated.
     (8%) 
     
     
    • Did not perform any scalability tests which can be an issue when perform the amount of queries required to pull up relevant relationships.
    • The methods we exposed for creating comments and tags conflicts with the backend's view of creating these. The parameters are the primary difference.
    • There is currently no algorithms, besides the simple calculation of aggregated value of all relationships of a certain predicate, implemented to prove we can crawl relationships to calculate values.
     (8%) 
     
     
    I still need to implement methods for adding/removing and querying permissions on an object. I also need to implement methods for updating and retrieving permissions from the database.
     (8%) 
     
     
    • Testing will take a bit of time to fully perform.
    • Abstract search trees are not FULLY implemented. There's still bits left here and there.
    • Traversing relationships and more advance features like grabbing all things within n degrees are not completed.
     (8%) 
     
     
    - still need to add a remove capability for BackendRelation
     (8%) 
     
     
    I haven't done much work on video tagging as I'd like to make sure that I get image tagging done so I have a better idea as to what to do with video tagging.

    We need more work on the profile page.
     (8%) 
     

    Total: 13

    5. Additional Comments

     
    I have been overwhelmed with non-class related this work and was not able to get as much as I wanted done.

    The link you've given might be bad, but the dates on those milestones are for previous weeks. If they've been pushed to this week, be sure to change the deadlines; posting milestones is a requirement.
     (8%) 
     
     
    I'm dropping 2 classes tomorrow and I blame 410!! ;-)

    I think posting your milestone is a big step forward for you, and it's opened up a new avenue for self-inspection. In particular, you should compare your milestones to everyone else's. If you wouldn't expect someone else in the class to tackle that much in one week, you're being too ambitious. Closing the gap between what you do and what everyone else does will help raise expectations on how seriously to take deadlines, and it will help you distribute milestones realistically. --Chelsea
     (8%) 
     
     
    Actual milestone:
    G1: Implement the end-user search string parsing. In particular, decide how the user's search will be broken into the various meta-data on content that it can match, and how those matches will be implemented. Further implement various desired predicates like OR, AND, or NOT. Look at how various in place systems do this, such as google.
    G2: Study and make recommendations about how data relatedness will be computed. I know that Dave has been working on this, but we're going to need to see it working in some form relatively soon.
     (8%) 
     
     
    I expect things to pick up since I feel more comfortable with UI stuff but I haven't really looked into silverlight, which is what I need to do asap in case we need to add more silverlight component in the future.

    The relation between your milestone and what you have written here isn't clear. As your milestone evolves, feel free to update what's posted on the milestone list with the details. This will keep not only the staff, but the rest of the class, in the loop. --Chelsea
     (8%) 
     
     
    What about the milestones involving commenting and error handling? --Chelsea
     (8%) 
     
     
    My team got a lot more work done this week.

    I think that installing Trac on Monday particularly helped my work contributions, and my team's communication. I hope that others are quick to embrace it, because we certainly need bug tracking, and it only works if everyone uses it.

    You haven't provided a link to your milestones for this week, and I couldn't find them on the page where everyone else's is posted. Having milestones posted is a requirement; be sure the staff and the rest of the class can find them.
     (8%) 
     
     
    I'm sorry that the backend again didn't finish some of it's tasks as early as others may have liked. I'm working as fast as I can, and I'm being bombarded by not only this class but all of my others right now.
     (8%) 
     
     
    Please assign the milestones you're personally responsible for to yourself. It's extremely difficult to tell if your report covers all the bases when we don't know what the bases are. --Chelsea
     (8%) 
     
     
    Being out of town Thursday and Friday set me back a bit since I wasn't informed of the newest developments until the weekend.

    Late; -5 pts
     (8%) 
     
     
    That was a lot of naked people...

    Make sure to link to the actual milestones. Late; -5 pts. --Chelsea
     (8%) 
     
     
    Late; -5 pts
     (8%) 
     
     
    Remember to include a link to your posted milestones. Late; -10 pts. --Chelsea
     (8%) 
     

    Total: 12