Senior Project Ideas
Senior Project Ideas
- Deep Linking to support place in video, etc. Load related videos in same app, without traveling to a new page? Store tape head location etc.
- Player loads XML file. XML contains video location, plus all relevant object loading information. When editor modifies things this file gets modified. Easy to do a mock up?
- Do pop-ups with DHTML/AJAX instead of inside video player? Then they're not bounded by the small-ish confines of the player module. Drawbacks of this?
- Hierarchical categories. e.g. character is a part of word, word is part of clause. Bind drill-down to levels (e.g. left-click goes to object, shift-left-click goes to group, ctrl-left-click goes to family). This enforces design decisions at the lesson creation level. Objects need to be categorized correctly. Then regular click will always go to base level, shift always one level up, ctrl always two levels up. This creates consistent user experience.
- XML of the form:
HOW DOES I FORMATTED TEXT?!!
<family name="sentence"> <link>http://somelink.com</link> <group name="word"> <li nk>http://somelink.com/word</link> <ob ject name="a"> a </object> </group> </family>
- Problems with this:
- Reuse objects somehow? Like, does one need to create like a billion 'a' objects? Of course, this probably won't be a problem for the creator of an app, but it'll make the files ugly. Also, when reading the files in, can we make sure that the program knows they're instances of the same object? Do we need to tag the objects?
- Multiple grammar patterns in the same clause. e.g. sushi ga sukijanakute, sakana ga sukidesuyo. The first clause could be identified as an adjective grammar pattern, or a negative t-form pattern. Some clauses may contain many types of grammar patterns. One could leave it up to creators which pattern they want to exemplify, but that strays from the purpose of the software as an immersion system. You should be able to link to anything.
- THIS IS PROBABLY NOT A GOOD IDEA.
- From a user perspective, you kinda need overlapping grammar patterns. User could draw with selection tool? Or with cursor? How do you modify selection afterwards?
- Raskin multiple selection style?
- How does this work on the back end? Sentence as an array of character objects; each object can link to a single word; each object can link to multiple grammar patterns. Which is all well and good, but how does one choose and follow that link with a minimum amount of keystrokes? Like, a ctrl-click, etc. How to make that visible to the user?
- Okay, how about this: Ebi-patented "tagging" system. Abstract links into objects. So maybe we have an object called "tonkatsu." Then when tonkatsu appears in subtitle, the syllables to, n, ka, and tsu may all be "tagged" as linking to the "tonkatsu" object. They may also individually be linked to their own character objects. As well as any number of grammar objects. Meanwhile, a region that surrounds an actual onscreen tonkatsu might link to the "tonkatsu" object also. This tonkatsu object will have a predefined action associated with it - e.g. opening an explanation in a mini-transparent window inside the video player.
- So then each character has basically a linked list of object associations. It should have then a default object association, which we'll say is whatever is at the head of the list.
- How do we make this easy for the user? Maybe a "compile" command, which will break text apart and auto-link to objects with names == word.
- Make this like wiki, so objects with any name exist, they may just not have been created yet?
- Make any word selectable in content area, etc, followable to a page with its name? Kinda like what thefreedictionary.com does?
- Transformation layer? Like, relate a character or a sequence of characters to a sequence of characters in another string?
- This would make preservation of linked interactive content easier.
- This would allow transformations of kana into kanji, also. And translations from one language to another in general.
- Is it wise to have semi-transparent pop ups inside the video, where content will appear?
- Does video auto-pause when user interacts with interactive content? I don't like this idea for some reason, maybe because it combines two actions into one - opening a link and pausing the video. I find this distasteful, even though I can't really think of an instance in which you would click on a link and not want the video to pause while you examine the new content. Ebi seems to be of the opinion this would be wisest. What would Raskin do?
- Is it annoying to have pop-ups inside the video player? It will partially obscure video content. Plus, if all the content can't fit inside the pop-up, more clicks are required to bring it up in the content area below the video player. Or messing with scrollbars, which is a waste of life.
- For subtitles, possibly other objects, specify start and end time for their existence. Subtiltles can be set to scroll, in which case the start and end times will be the moment the first character hits the screen and the moment the last character leaves the screen, respectively. Calculate the scroll speed/text locations automatically, so the user doesn't have to.
- Need high precision, fast, useful time controls.
- What layout makes sense, for maximum usability given the task? Do I need to create new widgets to enhance control?
- Multiple speech rates. This would require multiple videos if done naturally. Or if the tech is good enough the media can be slowed down while maintaining pitch, etc. But that usually comes off as cheesy hackery.
- Keep status messages (clickable for further explication?) in a static location at top of interface, for consistency. I think firefox does this now, instead of opening windows which is horrible. Could do with AJAX maybe? Or keep statically at top of page?
- Hi-def video. How to get a good framerate?
- What encodings? Is H.264 free? Is it even a good idea?
- Flash
- JSFL "JSFL is for scripting the authoring environment; AS is for scripting the runtime objects"
- Adobe Flex?
- Adobe AIR?
- Store lesson information in XML?
- Is there a good way to work with objects here? A region may be created at one point in the timeline and moved later. XML seems linear, and my initial inclination would be to store things in it by time. But I guess if the file is read in and parsed before doing anything then it could be organized by object. Still, does the spec have good facilities for dealing with this?
- Or relational database?
- Not as portable.
- But may be more understandable.
- open a video at a certain point in the timeline, preserving current user options (subtitles on, etc).
- do subtitles need to be a fixed option, or can we abstract them into a generic concept? If so, is there an easy way to package these things so you don't have to design subtitles over and over again? Maybe a running scrawl is a generic enough concept for sequential video. Could be used for news ticker (!) == sell to CNN for $$$?
- Play video clip according to subtitles? Like, select a phrase and play as a subclip? lead-in time?
- It strikes me that subtitles are going to be very data-rich. They will also be locked to time. Some media players have subtitles files that give a start time for whole phrases to be displayed. But this will be insufficient if we want control at the word level. How would one lock each word to a time, without needing to specify every single word? And how to make them scroll at the bottom of the screen? The heavy lifting needs to be done automatically by the system here; it would be too tedious for users. Options:
- You could create a scrawl and give it a scrolling speed and a start time. Then specify different points where the text should speed up or slow down. Calculations of where to place the subs could then be done automatically. BUT how would you get control at the word level? Estimating where a word is in relation to those points seems terribly imprecise.
- User must specify every word. This is a pretty horrible idea. But it's precise. The only way it's justifiable is if only some words or phrases are singled out. Not every article or pronoun needs to link to a point in the timeframe. But vocab sure does. But then, users of different fluency will use the system. So we're back to specifying a lot of words and phrases.
- It could be done collaboratively, on a need-basis. I don't like that idea much. Like, a user clicks on a word and the system says "where is that?" Part of the idea is that the system is there to help you with that.
