1. A computer-implemented method for modifying a graphical program, the method comprising:
accessing the graphical program over a network, wherein the graphical program comprises a plurality of nodes and connections between the nodes, and wherein the plurality of interconnected nodes visually indicate functionality of the program, wherein the graphical program is stored on a memory medium coupled to the network;
automatically analyzing the graphical program via the network, wherein said automatically analyzing the graphical program comprises automatically analyzing the plurality of nodes and the connections between the nodes; and
automatically modifying the graphical program via the network based on said automatically analyzing, wherein said automatically modifying the graphical program comprises performing one or more modifications selected from the following set:
adding a new node;
removing a node;
adding a new connection;
modifying a connection; and
removing a connection.
2. The method of claim 1,
wherein the memory medium on which the graphical program is stored is at a first location;
wherein said automatically analyzing and modifying the graphical program comprises remotely automatically analyzing and modifying the graphical program from a single second location via the network;
wherein said automatically analyzing and modifying the graphical program comprises a software program on a computer system at the single second location executing to automatically analyze and modify the graphical program via the network.
3. The method of claim 1,
wherein the memory medium is comprised in a first computer system;
wherein the first computer system is coupled to a second computer system via the network; and
wherein the method further comprises:
the first computer system requesting modification of the graphical program;
wherein the second computer performs said automatically analyzing and said automatically modifying in response to said requesting modification of the graphical program.
4. The method of claim 1,
wherein the memory medium is comprised in a first computer system;
wherein the first computer system is coupled to a second computer system via the network; and
wherein the method further comprises:
the second computer system performing said automatically analyzing and specifying one or more modifications of the graphical program in response to said automatically analyzing; and
the first computer system performing the specified modifications to the graphical program.
5. The method of claim 1,
wherein the memory medium is comprised in a first computer system;
wherein the first computer system is coupled to a second computer system via the network; and
wherein the method further comprises:
the first computer system transmitting the graphical program to the second computer system via the network;
wherein said automatically analyzing and modifying the graphical program comprises the second computer system automatically analyzing and modifying the graphical program on the second computer system;
the second computer system transmitting a modified version of the graphical program to the first computer system via the network; and
the first computer system storing the modified version of the graphical program on the memory medium.
6. The method of claim 1,
wherein said accessing the graphical program over the network comprises accessing one or more data structures representing the graphical program on the memory medium; and
wherein said automatically modifying the graphical program comprises changing the one or more data structures.
7. The method of claim 1,
wherein the memory medium is comprised in a first device;
wherein the first device is coupled to a computer system via the network; and
wherein said automatically analyzing and modifying the graphical program via the network comprises the computer system communicating with the first device via the network to automatically analyze and modify the graphical program.
8. The method of claim 7,
wherein the graphical program is deployed on the first device for execution.
9. The method of claim 8,
wherein before said automatically analyzing and modifying the graphical program, the graphical program is executable by the first device to perform first functionality; and
wherein after said automatically analyzing and modifying the graphical program, the graphical program is executable by the first device to perform second functionality, wherein the second functionality is different than the first functionality.
10. The method of claim 1, further comprising:
displaying results of said automatically analyzing the graphical program.
11. The method of claim 10,
wherein said displaying results of said automatically analyzing the graphical program comprises displaying one or more suggested modifications to the graphical program;
wherein the method further comprises receiving user input specifying one or more of the displayed modifications; and
wherein said automatically modifying the graphical program comprises automatically modifying the graphical program according to the one or more specified modifications.
12. The method of claim 1,
wherein said automatically analyzing the graphical program comprises automatically determining one or more errors in the graphical program; and
wherein said automatically modifying the graphical program comprises automatically modifying the graphical program to correct the one or more errors.
13. The method of claim 1,
wherein said automatically analyzing the graphical program comprises automatically analyzing performance of the graphical program;
wherein said automatically modifying the graphical program comprises automatically modifying the graphical program to improve the performance of the graphical program.
14. The method of claim 1,
wherein said automatically analyzing the graphical program comprises automatically analyzing functionality of the graphical program; and
wherein said automatically modifying the graphical program comprises automatically modifying the graphical program to change the functionality of the graphical program.
15. The method of claim 1, further comprising:
receiving user input specifying one or more desired modifications to make to the graphical program;
wherein said automatically analyzing the graphical program comprises automatically analyzing the graphical program to determine how to make the one or more specified modifications; and
wherein said automatically modifying the graphical program comprises automatically making the one or more specified modifications to the graphical program.
16. The method of claim 1, further comprising:
receiving user input specifying desired functionality for the graphical program;
wherein said automatically analyzing the graphical program comprises automatically analyzing the graphical program to determine how to modify the graphical program to implement the specified functionality; and
wherein said automatically modifying the graphical program comprises automatically modifying the graphical program to implement the specified functionality.
17. The method of claim 1,
wherein the graphical program includes a graphical user interface;
wherein said automatically analyzing the graphical program comprises automatically analyzing the graphical user interface; and
wherein said automatically modifying the graphical program comprises automatically modifying the graphical user interface.
18. The method of claim 1,
wherein said automatically modifying the graphical program includes automatically replacing the node in the graphical program with the new node.
19. The method of claim 1,
wherein said automatically modifying the graphical program includes automatically changing a configuration of one or more nodes in the graphical program.
20. The method of claim 1,
wherein said automatically modifying the graphical program comprises automatically modifying the graphical program with no user input received during said modifying.
21. The method of claim 1,
wherein said automatically analyzing and modifying the graphical program via the network comprises automatically analyzing and modifying the graphical program via the Internet.
22. The method of claim 1,
wherein the memory medium comprises one or more of:
a disk drive;
a file system;
random access memory (RAM);
a magnetic medium; or
an optical medium.
23. The method of claim 1,
wherein the graphical program comprises a graphical data flow program.
24. A computer-implemented method for modifying a graphical program, the method comprising:
accessing the graphical program on a first computer system, wherein the graphical program comprises a plurality nodes and connections between the nodes, wherein the plurality of interconnected nodes visually indicate functionality of the program;
a second computer system communicating with the first computer system to automatically analyze the graphical program, wherein said automatically analyzing the graphical program comprises automatically analyzing the plurality of nodes and the connections between the nodes; and
the second computer system communicating with the first computer system to automatically modify the graphical program based on said analyzing, wherein said automatically modifying the graphical program comprises performing one or more modifications selected from the following set:
adding a new node;
removing a node;
adding a new connection;
modifying a connection; and
removing a connection.
25. The method of claim 24,
wherein the second computer system is coupled to the first computer system via a network; and
wherein said second computer system communicating with the first computer system comprises the second computer system communicating with the first computer system over the network.
26. A computer-implemented method for automatically analyzing a graphical program, the method comprising:
accessing the graphical program on a memory medium, wherein the graphical program comprises a plurality of nodes and connections between the nodes, wherein the plurality of interconnected nodes visually indicate functionality of the program;
automatically analyzing the graphical program via a network, wherein said automatically analyzing the graphical program comprises automatically analyzing the plurality of nodes and the connections between the nodes; and
storing one or more suggested modifications to the graphical program based on said automatically analyzing, wherein the one or more suggested modifications are selected from the following set:
adding a new node;
removing a node;
adding a new connection;
modifying a connection; or and removing a connection.
27. The method of claim 26,
wherein the memory medium on which the graphical program is accessed is at a first location; and
wherein said automatically analyzing the graphical program comprises remotely automatically analyzing the graphical program from a second single location via the network.
28. The method of claim 26,
wherein said accessing the graphical program on the memory medium comprises accessing the graphical program on a memory medium of a first computer system;
wherein the first computer system is coupled to a second computer system via the network; and
wherein said automatically analyzing the graphical program via the network comprises the second computer system communicating with the first computer system via the network to automatically analyze the graphical program.
29. The method of claim 28, further comprising:
the first computer system requesting analysis of the graphical program;
wherein the second computer performs the automatic analysis in response to said requesting analysis of the graphical program.
30. The method of claim 28,
wherein the first computer system includes a display, the method further comprising:
displaying the one or more suggested modifications to the graphical program on the display of the first computer system.
31. The method of claim 28,
wherein the second computer system includes a display, the method further comprising:
displaying the one or more suggested modifications to the graphical program on the display of the second computer system.
32. The method of claim 26,
wherein the memory medium is comprised on a first device;
wherein the first device is coupled to a computer system via the network; and
wherein said automatically analyzing the graphical program via the network comprises the computer system communicating with the first device via the network to automatically analyze the graphical program.
33. The method of claim 26,
wherein said automatically analyzing the graphical program comprises automatically analyzing performance of the graphical program; and
wherein the one or more suggested modifications to the graphical program are usable to improve the performance of the graphical program.
34. The method of claim 26,
wherein said automatically analyzing the graphical program comprises automatically analyzing functionality of the graphical program; and
wherein the one or more suggested modifications to the graphical program are usable to change the functionality of the graphical program.
35. The method of claim 26,
wherein said automatically analyzing the graphical program comprises automatically determining one or more errors in the graphical program; and
wherein the one or more suggested modifications to the graphical program are usable to correct the one or more errors.
36. The method of claim 26,
wherein said storing the one or more suggested modifications to the graphical program comprises storing text information indicating the one or more suggested modifications.
37. A computer readable memory medium that stores program instructions for automatically analyzing and modifying a graphical program, wherein the memory medium is comprised in a first computer system, wherein the program instructions are executable to implement:
accessing a second memory medium over a network, wherein the second memory medium stores the graphical program, wherein the graphical program comprises a plurality of nodes and connections between the nodes, and wherein the plurality of interconnected nodes visually indicate functionality of the program;
automatically analyzing the graphical program stored on the second memory medium, wherein said automatically analyzing comprises automatically analyzing the plurality of nodes and the connections between the nodes; and
automatically modifying the graphical program stored on the second memory medium via the network based on results of said automatically analyzing the graphical program, wherein said automatically modifying the graphical program comprises performing one or more modifications selected from the following set:
adding a new node;
removing a node;
adding a new connection;
modifying a connection; and
removing a connection.
38. The memory medium of claim 37, wherein the program instructions are further executable to implement:
displaying one or more suggested modifications to the graphical program based on said automatically analyzing the graphical program;
wherein said automatically modifying comprises automatically modifying the graphical program to implement at least a subset of the one or more suggested modifications.
39. A computer-implemented method for modifying a graphical program, the method comprising:
storing the graphical program on a memory medium, wherein the graphical program comprises a plurality of nodes and connections between the nodes, and wherein the plurality of interconnected nodes visually indicate functionality of the program;
automatically analyzing the graphical program via a network, wherein said automatically analyzing the graphical program comprises automatically analyzing the plurality of nodes and the connections between the nodes; and
automatically modifying the graphical program via the network based on said automatically analyzing, wherein said automatically modifying the graphical program comprises performing one or more modifications selected from the following set:
adding a new node;
removing a node;
adding a new connection;
modifying a connection; and
removing a connection.
The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.
1. A method for managing a plurality of video data stored on a storage device, the method comprising:
(a) determining whether sufficient storage space remains on the storage device to store a desired video content;
(b) if sufficient storage space does not exist on the storage device to store the desired video content, determining whether any video content of the plurality of video data stored on the storage device has been partially viewed; and
(c) if video content stored on the storage device has been partially viewed, deleting the partially viewed video content to make room for storage of the desired video content on the storage device.
2. The method of claim 1, wherein if it is determined that no video content stored on the storage device has been partially viewed, the method further comprises deleting video content of the plurality of video data which was first stored on the storage device until there is sufficient space on the storage device to store the desired video content.
3. The method of claim 1, further comprising storing the desired video content after deleting of the partially viewed video content.
4. The method of claim 1, further comprising repeating steps (b) and (c) until there is sufficient space on the storage device to store the desired video content.
5. The method of claim 1, further comprising tagging video content which has been partially viewed with an indication identifying the video content as partially viewed.
6. The method of claim 5, wherein the determining of whether any video content of the plurality of video data stored on the storage device has been partially viewed comprises searching the plurality of video data for the tagged video content.
7. The method of claim 5, wherein the partially viewed video content is further date tagged indicating a date on which the video content was partially viewed, wherein the deleting comprises:
ordering the partially viewed video content in sequential order according to their corresponding date tag; and
deleting the partially viewed video content having the oldest date tag.
8. The method of claim 7, further comprising repeating the deleting of the partially viewed particular video content having the oldest date tag until there is sufficient space on the storage device to store the desired video content.
9. The method of claim 5, wherein the partially viewed video content is further recommender tagged indicating a likelihood that a viewer would enjoy viewing the partially viewed video content, wherein the deleting comprises:
determining whether the partially viewed video content has a positive recommendation from the recommender tag; and
deleting the partially viewed video content having a recommender tag indicating the viewer would be unlikely to enjoy viewing thereof.
10. The method of claim 9, wherein the recommender tag indicates a recommender score and wherein the determining of whether the partially viewed video content has a positive recommendation comprises determining whether the recommender score is greater than a predetermined threshold score.
11. The method of claim 5, further comprising prompting a viewer after termination of the partially viewed video content if the partially viewed video content should be tagged not to be deleted.
12. The method of claim 11, wherein the deleting of the partially viewed video content to make room for storage of the desired video content on the storage device comprises:
determining whether the partially viewed video content has been tagged not to be deleted; and
deleting partially viewed video content to make room for storage of the desired video content on the storage device only if the partially viewed video content has not been tagged not to be deleted.
13. A personal video recorder comprising:
a storage device for storing video data, the video data comprising a plurality of video content; and
a processor for retrieving one of the plurality of video content from the storage device for viewing, determining whether the viewed video content is partially viewed, and tagging the viewed video content as being partially viewed.
14. The personal video recorder of claim 13, further comprising means for indicating storage of a desired video content, wherein the processor further determines whether there is sufficient storage space on the storage device to store the desired video content and if there is not enough storage space to store the desired video content, deletes the partially viewed video content.
15. The personal video recorder of claim 14, wherein the processor further tags the partially viewed video content with a tag indicating a date on which the video content was partially viewed, orders the partially viewed video content in sequential order according to their corresponding date tag, and if there is not enough storage space to store the desired video content, deletes the partially viewed video content having the oldest date tag.
16. The method of claim 14, wherein the processor further tags the partially viewed video content with a recommendation indicating a likelihood that a viewer would enjoy viewing the partially viewed video content, determines whether the partially viewed video content has a positive recommendation from the recommender tag, and deletes the partially viewed video content having a recommendation tag indicating the viewer would be unlikely to enjoy viewing thereof.
17. The personal video recorder of claim 14, wherein the processor further prompts a viewer after termination of the partially viewed video content if the partially viewed video content should be tagged not to be deleted and the personal video recorder further comprises means for indicating whether the partially viewed video content should be tagged not to be deleted.
18. The personal video recorder of claim 17, wherein the processor further determines whether the partially viewed video content has been tagged not to be deleted, and deletes partially viewed video content to make room for storage of the desired video content on the storage device only if the partially viewed video content has not been tagged not to be deleted.
19. A program storage device readable by machine, tangibly embodying a program of instructions executable by the machine to perform method steps for managing a plurality of video data stored on a storage device, the method comprising:
determining whether sufficient storage space remains on the storage device to store a desired video content;
if sufficient storage space does not exist on the storage device to store the desired video content, determining whether any video content of the plurality of video data stored on the storage device has been partially viewed; and
if video content stored on the storage device has been partially viewed, deleting the partially viewed video content to make room for storage of the desired video content on the storage device.
20. A computer program product embodied in a computer-readable medium for managing a plurality of video data stored on a storage device, the computer program product comprising:
computer readable program code means for determining whether sufficient storage space remains on the storage device to store a desired video content;
computer readable program code means for determining whether any video content of the plurality of video data stored on the storage device has been partially viewed if sufficient storage space does not exist on the storage device to store the desired video content; and
computer readable program code means for deleting the partially viewed video content to make room for storage of the desired video content on the storage device if video content stored on the storage device has been partially viewed.