Skip to main content

Fall 2007

Go Search
Fall 2007
Customer Resource Site
  
Fall 2007 > M02 10-02  

M02 10-02

Modify settings and columns
Milestone report for October 2, 2007.
  
View: 

1. Name

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

Total: 13

2. Percentage complete

 85%
 (23%) 
 
 67%
 (8%) 
 
 99%
 (8%) 
 
 80%
 (31%) 
 
 95%
 (15%) 
 
 75%
 (8%) 
 
 90%
 (8%) 
 

Total: 13

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

 
Silverlight Video Player (basic edition, plays video, allows seeking, pausing, stopping, and volume changing) is "complete," i.e. functioning. We can server text, image, and video into content pages for display.

Also, we have the beginnings of a spec, which will be improved over time.
 (8%) 
 
 
- We are able to query the backend and given the proper guid, display a silverlight video player with the video file; our video player can play/pause, stop, and has a volume control and a seek bar.
- We have implemented the same for text files, but there are minor issues with encoding and we will figure this out soon.
(The test text file I added is incoded with the Unicode encoder System.Text.ASCIIEncoding.Unicode. You can confer with the authoring team how that this should be handled in the long run, but personally I think Unicode-16 is probably what you should use -brad).
- Theoretically image files should be output to the browser. Currently there are no image files in our database so we haven't been able to test this.
- Started on a detailed spec for our code.
 (8%) 
 
 
  • We set up a framework, using a visitor, for selecting the proper layout and user control based on the type of content
  • We created a video player in Silverlight, with controls for play, pause, stop, seek, and volume
  • We can display video content from the database in our player
  • Text and image content are supported as well, but were lower priority and less functional
  • Most of our code is documented
  • We have an in-progress spec on Sharepoint for the video player's design and implementation, and our plans for the next few weeks
  •  (8%) 
     
     
    Once again, I apoligize for not posting my milestones for you (this will be corrected this week).
    So to start, I'll fill you in on what my goals were this week:
    1. Ensure that the teams were able to integrate and move data into and out of the backend data store.
    2. Decide on coding standard for the class.
    3. Get everyone in the class moving as far as writing code, producing functionality, and feeling good about what they'll do for the rest of the semester.
    4. See a functional first version of the system, enabling us to upload content, view it, and search for it.
    5. Settle important design issues.
    6. Improve our process of setting up milestones, measuring success, and delegating managment to team leaders.

    I believe of these, I've accomplished each of these to some degree. Here are my thoughts:

    1. As evidenced by the working demo: http://www.skynet3.cs.rice.edu/comp410f07/atelier/WebApp/Content.aspx?id=72db7eb8-3078-41dd-be02-98c3e20a398d, at least one team has been able to move data from the back-end to watch video. Additionally, by watching the database tonight, I believe the upload team is now successfully creating content.
    2. I presented a draft of a coding standards document and we dicussed some points, but I'm not terribly optimistic about really enforcing these without some more work.
    3. It appears almost everyone is writing some code, and although we have some issues in our distribution of work, we are making real progress towards full production I believe.
    4. It appears we're well on our way to accomplish this goal.
    5. With some extremely important caveats, we are moving toward defining the architecture design, and have continued to raise important issues and are moving toward addressing them.
    6. The results seem to indicate that the milestones were clear enough this week to get everyone to actually do them. Team leaders are doing a better job of getting their team working, with some exceptions, and the outcomes are extremely promising.

     

     (8%) 
     
     
    We have a webpage that can let user select and upload file. Uploading is done by create a new content in the backend and pass the input stream of the file.
    After uploading the file, the page can redirect to another page to add tags for the content.
    Web.config file is configurated to enable large file uploading.
     (8%) 
     
     
    Create a page where user can type text to be added as content, and give that content a name. See the milestone here.

    Redirect this page (along with the file upload page) to a page where the user can tag the content just uploaded. See the milestone here.

    Create a summary page that is displayed after the user is done uploading and tagging their new content that shows exactly what has been added to the backend. See the milestone here.
     (8%) 
     
     
    I patched in javascript into Yuan's code to have it overlay a progress bar whenever a user uploads a file so that the page does not look static while the web application uploads the file to the backend.
     (8%) 
     
     
    • Figure out design for search once and for all. We decided this and put up a UML. I believe it is here.
    • Wrote stub code for indexing classes. These classes will allow search to go through indices first to see if the results are already cached.
    • Wrote a temporary backend solution to get search by tags work from the database. Searching only does full string matches so far, would probably want to increase that to substring matching.
     (8%) 
     
     
    Personal milestones:
    P1. Went to the Google presentation and took notes on the three algorithms presented there. Also looked up a paper on MapReduce, and am begining to go through it some.
     
    P2. Looked at Aaron's team's back-end code and tried to see how we fit in.
     
    P3./G1.a I wrote and commented on the stub code for the RelationshipModel classes.
     
    P4./G3. I wrote up a spec for the back-end team on what we need in regards to trust and indexers and models and such. That is, asside from the actualy "search", what we need. this includes an explaination of what we need, an example of what a table might look like that includes it, and how we will need to access it.
     
     
    Group milestones:
    G1. We added stub code for all of the classes/interfaces that we (currently) feel are going to be necessary. All methods and classes have been commented. This was a group effort, as each of us took a part of the whole and wrote the stub code.
     
    G2. We have created a "Search" class, which will be ther "interface" for other groups. We have connected with the back-end and receive tag-search results (though currently the backend only returns full-text search, not sub-string match). We "process" that into a LinkedList of Guids of the results, which is returned from the SearchForContent method in the Search class. The pieces of this have been tested, but as of this second, the complete package has not (I'm working on trying to get it now, but it's approaching midnight).
     
    G3. The specification for the backend, which is found at http://www.bandgap.cs.rice.edu/sites/comp410f07/Search%20and%20Navigation%20Team/Forms/AllItems.aspx (Search and navigation documents library -> Requirements for backend.docx)
     (8%) 
     
     
    - I published the DB schema and backend architecture documents.
    - I created the tables on Skynet3 and developed a way to quickly set them up on additional servers.
    - I found out (but did not yet publish) how to create stored procedures and call them with C#
    - I created scripts to connect to store the database connection values in the registry.
     (8%) 
     
     
    Created
    - Entity class
    - User class
    - Group class
    in the Backend project which implement the IEntity interface and read entity information from the appropriate database tables, according to milestone assigned here.
    Testing of these classes is not yet complete.
     (8%) 
     
     
    -Wrote a wrapper class for the SqlConnection object
    -Looked into the ADO.NET object hierarchy for accessing a SQL database from C#
     (8%) 
     
     
    I attended the Google presentation on searching with Rae. Jotted down notes, and will be taking a look at the papers on relativity, as well as searching methods.
    I wrote and commented stub code for the Search method, AbstractSearch, Keyword, and Tag search methods.
    I worked with Sohum and got the search project to be able to interface with the backend and retrieve data.
    I wrote a sorting algorithm for the returned data, to sort it by relativity. It is currently being tested, and should be completely functional within the hour.
     (8%) 
     

    Total: 13

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

     
    We don't have a way to preview information, but this should be relatively simple to implement. Also, no tests yet. And documentation on the Javascript for the Silverlight app is lacking, to say the least.

    Also, we cannot display category tags quite yet.
     (8%) 
     
     
    - We haven't implemented the part where our web app calls the backend to get the tags relevant to the content to be displayed on the page.
    - We also haven't implemented user control preview.
     (8%) 
     
     
  • We did not do the user control for a preview for a content, because we weren't sure what was needed or what to do (communication issue), but more importantly, it was less important than the video player since it's not part of our demo for the week
  • We didn't add tags to the video since that's a complicated feature that will take about a week to implement
  •  (8%) 
     
     
    1. We haven't settled a tremendous number of issues about how the search team will interface with the backend, and I think they're having some trouble integrating.
    2. We still have a long way to go as far as enforcing coding standards, setting up code review process, and a number of other related issues (like code standards for javascript).
    3. It's hard to say whether people really feel good, but I think they're producing.
    4. I think this will be achieved within a day or so.
    5. As referenced in 1, this is far from done. While I'm happy that we're coding, we've got a lot of design decisions to make. I'm fairly sure that we'll need a transaction system in the backend which will require changing the interface as its been defined so far. Additionally we haven't really decided how the Search will interact with the backend yet, and I still need to look into using RDF and SPARQL as an interface.
    6. I think we've improved here. The things I'm unsatisfied by are: I needed to get the team milestones out sooner. We need to deal with a couple of teams as far as setting better milestones and working together better I think. But we'll see how this goes.
     (8%) 
     
     
    Some code comments
     (8%) 
     
     
    COMMENTING, COMMENTING, COMMENTING! I've been more concerned with testing and fixing bugs than commenting.

    Figure out a way to test our framework automatically. This may be impossible, since it requires user interaction with the page.

    Add support for no tagging of content. If the user wants to simply upload let them skip the tagging part and modify the summary displayed to them.

    Modify the summary page to display the content itself instead of simply the name and tags. This would require integration with the view team.
     (8%) 
     
     
    Originally the progress bar was to show the current percentage of uploaded bytes, but as I researched ways to implement this, I realized it required a fair amount of AJAX, which I am not well versed in. Our current implementation of uploading files is incompatible with the AJAX model, and would require a web service that does not have the state restrictions that a web application has (currently the file is passed directly from the web application to the backend). As an interim solution, the faux progress bar I implemented indicates activity, but cannot provide information as to actual progress.
     (8%) 
     
     
    • Defining the structure. This is still a problem and his heavily affecting the functionality of the search team. The current solution is for the backend to write all the SQL and for the search classes to call it. The problem with this is all the algorithmic logic will be in the backend rather than in the search classes. Perhaps the search class can represent this is in some sort of intermediate language that can be translated into SQL?
    • A minor problem is we still haven't decided the range for certain numbers--for example trust and ratings. We need to decide this before we understand the semantics behind our data. For example, it seems explicit trust is a number in the range 1-10, but this somehow gets converted into a float. We need to explicitly decide these conversions soon.
     (8%) 
     
     
    G1. We currently return just a linked list of results, but need to look into returning an iterator of results.
     (8%) 
     
     
    I did not look into source control enough, and did not create a document detailing how to use branches. This is important now that we have working code and don't want to break things.
     (8%) 
     
     
    All items are complete aside from testing.
     (8%) 
     
     
    Currently, the wrapper class I wrote allows direct access to the SqlConnection class (just so we can have things working). In the future, we may want to remove direct access to that object and instead have methods to manipulate the SqlConnection indirectly.
     (8%) 
     
     
    We were supposed to add the ability to return an iterator from the search method to whatever calls it. This has not been performed yet.
    We were supposed to interface with the content team to be able to search for and deliver content to a page. After speaking with Corey, this is not able to be accomplished due to too much work for the content team as is.
     (8%) 
     

    Total: 13

    5. Additional Comments

     
    Go content view team! =D
     (20%) 
     
     
    The team is working well, and unlike last week, I think we're in a position to keep a large portion of our code. If we keep working at this rate the video player should be done in 2-3 weeks.
     (20%) 
     
     
    Yuan and I will be meeting to revamp our current model of file uploading.
     (20%) 
     
     
    My biggest failure on this milestone was managing my team. Everything critical that we needed to do for this milestone got completed, but only because of a generous deus ex machina (Brad) who swooped in and wrote the Content class. I'm trying to delegate and steer clear of being a "hero coder," especially since there are lots of other things for me to do besides code, but I evidently didn't follow up closely enough with my team. Getting the rest of my team working is always an implicit milestone goal for me, and one which I failed this week.
     (20%) 
     
     
    Ran into some snags in testing and just general confusion on how to go about it that I will work on with my team leader in class tomorrow.
     (20%) 
     

    Total: 5