This application claims the benefit of U.S. provisional patent application Ser. No. 61/509,440, filed Jul. 19, 2011.
Embodiments of the subject matter described herein relate generally to graphical user interfaces (GUIs). More particularly, embodiments of the subject matter relate to a drag-and-drop GUI element that accommodates selection of users and other data objects for performing various functions associated with the operation of an application, such as a social networking application.
Social network applications, systems, and services are becoming increasingly popular. An online consumer based social network application (such as the FACEBOOK social network application or the TWITTER social network application) can be customized for use by a private enterprise. Alternatively, a social network application can be specifically designed and configured for use in an enterprise environment. Social networks often handle large amounts of data for each user, because each user can contribute, collaborate, and share information with other social network users. In the enterprise environment, this information can include postings on the status of a deal or project, short summaries of what the posting user is doing, and/or public online conversations about a certain topic on a feed or “wall.”
A social network application may support a variety of communication, posting, and relationship management features and functions. For example, a social network application might allow users to communicate with one another using private messages, public postings, email, live chatting, or the like. As another example, a social network application might support the creation and maintenance of user groups. The creation and sending of communications, the creation of groups, and the addition of users to a group can be time consuming and cumbersome in many social network applications. For example, a conventional social network application may require a sender to perform multiple “send” operations to communicate a common message to a plurality of recipients. As another example, a conventional social network application may require a group coordinator to painstakingly search for users and then enter the user names to establish a group.
A more complete understanding of the subject matter may be derived by referring to the detailed description and claims when considered in conjunction with the following figures, wherein like reference numbers refer to similar elements throughout the figures.
The exemplary embodiments presented here relate to various graphical user interfaces (GUIs) suitable for use in a social network application provided by a computer-implemented system, such as a software-based system, a database system, a multi-tenant environment, or the like. The described subject matter could be implemented in connection with two or more separate and distinct computer-implemented systems that cooperate and communicate with one another. That said, in exemplary embodiments, the subject matter described herein is implemented in conjunction with a hosted virtual application in a multi-tenant environment.
More specifically, the subject matter presented here relates to various systems, techniques, and methods for managing, organizing, and processing data objects (such as users) in a social network. Disclosed herein is a system and method for organizing and connecting users in a social network. An exemplary implementation is the CHATTER application, a social network application offered by salesforce.com, inc.; however, a person having ordinary skill in the art will appreciate that other social networks may adopt one or more embodiments described herein, and that reference to the CHATTER application is not intended to limit this disclosure in any fashion.
In a social network setting, a first user can typically look up the profile of a second user and see who the second user is following, as well as who is following the second user. An enterprise social network may also offer this feature. However, it may also be useful to see where a particular user is within the organization's hierarchy. While that user may identify to whom he or she reports, and/or who his or her direct reports are, this is not often consistent, and relies upon a user's disclosure of this information. As such, there is no way to easily identify a user's role in an organization when using traditional social network services.
An exemplary embodiment is directed to using the social network service to build a full hierarchical organizational chart such that a user can navigate up and down through the organizational chart. In an embodiment, the social network organizational chart can be used to identify which users to follow and/or which users to not follow. In an embodiment, profile information for users can be displayed, either by directing to another profile page or providing a mouseover with profile information.
In an exemplary scenario, a first user can be following a second user and a third user. However, no connection exists between the second user and the third user. If the first user feels that the second user and third user would benefit by following each other, the first user can “connect” the second user and the third user, thereby functioning as a virtual social network matchmaker between to previously unconnected users. Moreover, an exemplary embodiment of a social network system enables objects, such as files, accounts, or groups to be followed. In an embodiment, a first user could cause previously unconnected objects to follow one another, such that users following the previously unconnected objects would then be able to receive social network posts from those objects. In an embodiment, the ability to create such connections may be limited to users having sufficient privileges.
In accordance with an exemplary embodiment, a first user may simultaneously connect to a plurality of users. For example, a GUI element may provide a box for quickly forming groups of users, whereby dragging user icons (or avatars) into the box automatically creates a group or causes a user to follow all users in the box. In certain implementations, the GUI element includes a box for performing multiple functions, including but not limited to: connecting users; adding users to a group; and posting comments or objects. In this regard, the individual social network users can be connected to each other via their respective profile pages or “feeds” on their respective profile pages. For example, an introduction may be sent from a first user to a plurality of users that will post to each of the plurality of users' feeds, thereby providing “one-click” connectivity to a plurality of users that may or may not have previously been following each other. The GUI element may also be used to add one or more users to a newly formed or previously existing group of users. Comments, files, or other data objects can be posted to one or more users simultaneously by dragging the respective avatars to the box and clicking a button to “post to wall” or to otherwise initiate the posting procedure.
The figures include schematic representations of screenshots to illustrate various embodiments of this disclosure. Neither these screenshots, nor the examples given herein are intended to limit this disclosure in any fashion.
Turning now to
A “tenant” or an “organization” generally refers to a group of users that shares access to common data within the database 130. Tenants may represent customers, customer departments, business or legal organizations, and/or any other entities that maintain data for particular sets of users within the system 100. Although multiple tenants may share access to the server 102 and the database 130, the particular data and services provided from the server 102 to each tenant can be securely isolated from those provided to other tenants. The multi-tenant architecture therefore allows different sets of users to share functionality without necessarily sharing any of the data 132.
The database 130 is any sort of repository or other data storage system capable of storing and managing the data 132 associated with any number of tenants. The database 130 may be implemented using any type of conventional database server hardware. In various embodiments, the database 130 shares processing hardware 104 with the server 102. In other embodiments, the database 130 is implemented using separate physical and/or virtual database server hardware that communicates with the server 102 to perform the various functions described herein.
The data 132 may be organized and formatted in any manner to support the application platform 110. In various embodiments, the data 132 is suitably organized into a relatively small number of large data tables to maintain a semi-amorphous “heap”-type format. The data 132 can then be organized as needed for a particular virtual application 128. In various embodiments, conventional data relationships are established using any number of pivot tables 134 that establish indexing, uniqueness, relationships between entities, and/or other aspects of conventional database organization as desired.
Further data manipulation and report formatting is generally performed at run-time using a variety of metadata constructs. Metadata within a universal data directory (UDD) 136, for example, can be used to describe any number of forms, reports, workflows, user access privileges, business logic and other constructs that are common to multiple tenants. Tenant-specific formatting, functions and other constructs may be maintained as tenant-specific metadata 138 for each tenant, as desired. Rather than forcing the data 132 into an inflexible global structure that is common to all tenants and applications, the database 130 is organized to be relatively amorphous, with the pivot tables 134 and the metadata 138 providing additional structure on an as-needed basis. To that end, the application platform 110 suitably uses the pivot tables 134 and/or the metadata 138 to generate “virtual” components of the virtual applications 128 to logically obtain, process, and present the relatively amorphous data 132 from the database 130.
The server 102 is implemented using one or more actual and/or virtual computing systems that collectively provide the dynamic application platform 110 for generating the virtual applications 128. The server 102 operates with any sort of conventional processing hardware 104, such as a processor 105, memory 106, input/output features 107 and the like. The processor 105 may be implemented using one or more of microprocessors, microcontrollers, processing cores and/or other computing resources spread across any number of distributed or integrated systems, including any number of “cloud-based” or other virtual systems. The memory 106 represents any non-transitory short or long term storage capable of storing programming instructions for execution on the processor 105, including any sort of random access memory (RAM), read only memory (ROM), flash memory, magnetic or optical mass storage, and/or the like. The server 102 typically includes or cooperates with some type of computer-readable media, where a tangible computer-readable medium has computer-executable instructions stored thereon. The computer-executable instructions, when read and executed by the server 102, cause the server 102 to perform certain tasks, operations, functions, and processes described in more detail herein. In this regard, the memory 106 may represent one suitable implementation of such computer-readable media. Alternatively or additionally, the server 102 could receive and cooperate with computer-readable media (not separately shown) that is realized as a portable or mobile component or platform, e.g., a portable hard drive, a USB flash drive, an optical disc, or the like.
The input/output features 107 represent conventional interfaces to networks (e.g., to the network 145, or any other local area, wide area or other network), mass storage, display devices, data entry devices and/or the like. In a typical embodiment, the application platform 110 gains access to processing resources, communications interfaces and other features of the processing hardware 104 using any sort of conventional or proprietary operating system 108. As noted above, the server 102 may be implemented using a cluster of actual and/or virtual servers operating in conjunction with each other, typically in association with conventional network communications, cluster management, load balancing and other features as appropriate.
The application platform 110 is any sort of software application or other data processing engine that generates the virtual applications 128 that provide data and/or services to the user devices 140. The virtual applications 128 are typically generated at run-time in response to queries received from the user devices 140. For the illustrated embodiment, the application platform 110 includes a bulk data processing engine 112, a query generator 114, a search engine 116 that provides text indexing and other search functionality, and a runtime application generator 120. Each of these features may be implemented as a separate process or other module, and many equivalent embodiments could include different and/or additional features, components or other modules as desired.
The runtime application generator 120 dynamically builds and executes the virtual applications 128 in response to specific requests received from the user devices 140. The virtual applications 128 created by tenants are typically constructed in accordance with the tenant-specific metadata 138, which describes the particular tables, reports, interfaces and/or other features of the particular application. In various embodiments, each virtual application 128 generates dynamic web content that can be served to a browser or other client program 142 associated with its user device 140, as appropriate.
The runtime application generator 120 suitably interacts with the query generator 114 to efficiently obtain multi-tenant data 132 from the database 130 as needed. In a typical embodiment, the query generator 114 considers the identity of the user requesting a particular function, and then builds and executes queries to the database 130 using system-wide metadata 136, tenant specific metadata 138, pivot tables 134, and/or any other available resources. The query generator 114 in this example therefore maintains security of the common database 130 by ensuring that queries are consistent with access privileges granted to the user that initiated the request.
The data processing engine 112 performs bulk processing operations on the data 132 such as uploads or downloads, updates, online transaction processing, and/or the like. In many embodiments, less urgent bulk processing of the data 132 can be scheduled to occur as processing resources become available, thereby giving priority to more urgent data processing by the query generator 114, the search engine 116, the virtual applications 128, etc. In certain embodiments, the data processing engine 112 and the processor 105 cooperate in an appropriate manner to perform and manage various techniques, processes, and methods associated with the generation, provision, manipulation and/or operation of GUIs and GUI elements, as described in more detail below with reference to
In operation, developers use the application platform 110 to create data-driven virtual applications 128 for the tenants that they support. Such virtual applications 128 may make use of interface features such as tenant-specific screens 124, universal screens 122 or the like. Any number of tenant-specific and/or universal objects 126 may also be available for integration into tenant-developed virtual applications 128. The data 132 associated with each virtual application 128 is provided to the database 130, as appropriate, and stored until it is requested or is otherwise needed, along with the metadata 138 that describes the particular features (e.g., reports, tables, functions, etc.) of that particular tenant-specific virtual application 128. For example, a virtual application 128 may include a number of objects 126 accessible to a tenant, wherein for each object 126 accessible to the tenant, information pertaining to its object type along with values for various fields associated with that respective object type are maintained as metadata 138 in the database 130. In this regard, the object type defines the structure (e.g., the formatting, functions and other constructs) of each respective object 126 and the various fields associated therewith. In an exemplary embodiment, each object type includes one or more fields for indicating the relationship of a respective object of that object type to one or more objects of a different object type (e.g., master-detail, lookup relationships, or the like).
As described in greater detail below in the context of
Still referring to
A computer-based system, such as the system 100 described above, can be configured to provide an interactive GUI for an application that handles a variety of data objects. Depending upon the particular embodiment, the application may be a hosted virtual application for one of a plurality of different tenants, such as a web-based customer relationship management application, a social network application intended for consumer use, a social network intended for enterprise use, an intranet portal application, or a combination thereof. One exemplary embodiment presented here relates to an enterprise social network application that can be deployed for use by employees of a company or any designated organization. Thus, although the following description refers to a series of exemplary screenshots associated with an interactive enterprise social networking application, the concepts, techniques, and features presented here can be equivalently applied in the context of other applications and systems that generate and display interactive GUIs.
The user devices 140 shown in
The images displayed in connection with the organization chart 204 may include, without limitation: pictures; avatars; icons; sketches; animations; cartoons; and/or anything intended to graphically represent the users. Ideally, photographs are used so that the user can quickly and easily recognize the members of the organization. For the state of the GUI 200a depicted in
The illustrated embodiment of the “About Me” field 208 also includes a control 212 that can be activated by the user to follow the selected user (or to stop following the selected user). Notably, the content of the “About Me” field 208, including the corresponding image, is updated and refreshed in a dynamic and responsive manner as the user navigates and “clicks through” the displayed organization chart 204. Moreover, dragging and dropping of user images does not change the image or content of the “About Me” field 208.
It should be appreciated that the images in the GUI 200 need not always be arranged in accordance with an organization chart structure. For example, the user images could instead be displayed as at least a portion of a personnel directory arranged in alphabetical order, arranged by department, arranged by office location, or the like. As another example, the user images could be displayed in designated or defined groups that are maintained by the system. As yet another example, the user images could be displayed in connection with a contacts list, a friend list, or the like.
The exemplary embodiment of the GUI 200a shown in
The overall shape, size, and arrangement of the drag-and-drop GUI element 220 may vary from that depicted in
The primary selection field 222 of the drag-and-drop GUI element 220 is a solitary field that accommodates the selection (dragging and dropping) of only one user image. The reason for this solitary field will become apparent from the following description. In alternate embodiments, the primary selection field 222 could be supplemented with one or more additional selection fields if so desired. The illustrated embodiment of the drag-and-drop GUI element 220 includes six secondary selection fields 224 to accommodate the selection of six different user images. Of course, more or less than six secondary selection fields 224 could be provided if so desired. In practice, the drag-and-drop GUI element 220 could accommodate a flexible number of selection fields by providing a suitable control element, such as a scroll bar, a “page” switching feature, a drop-down menu, or the like. Alternatively or additionally, the drag-and-drop GUI element 220 could employ multiple tabs to provide additional selection capabilities.
The “Add To Group” control 226 can be activated to initiate a procedure to add one or more selected users to a designated group. Accordingly, activation of the “Add To Group” control 226 causes certain backend processes to accommodate the addition of the selected users to one or more group. The “Post To Wall” control 228 can be activated to initiate a procedure to post a message intended for one or more selected users. Accordingly, activation of the “Post To Wall” control 228 causes certain backend processes related to the generation and rendering of message postings to the “walls” (or to any area or field) maintained by the social networking application on behalf of the selected users. The “Connect” control 230 can be activated to initiate a procedure to connect selected users to each other. Accordingly, activation of the “Connect” control 230 causes certain backend processes related to the generation and rendering of introduction or invitation messages, the creation of links, associations, or relationships between users, and the like. These functions are described in more detail below with reference to
It should be appreciated that an implementation of the drag-and-drop GUI element 220 could support different functions, additional functions, and/or alternative functions if so desired. Indeed, the drag-and-drop GUI element 220 could be utilized in connection with one or more of the following functions, operations, and features, without limitation: messaging via email, private messages, instant messages, voicemail messages, or text messages; live chatting; web-based videoconferencing; web-based remote meetings; screen sharing; and the like. Moreover, the drag-and-drop GUI element 220 could be utilized to transmit files of any desired format (e.g., video, audio, text, etc.). In addition, the drag-and-drop GUI element 220 could be utilized to request a status update from another user, schedule a meeting, schedule a telephone call, send a sentiment, feedback, provide “points” (such as value points, review ratings, or anything that can be tallied, collected, or accumulated for any purpose). Accordingly, additional control elements could be rendered in connection with the drag-and-drop GUI element 220. In practice, the drag-and-drop GUI element 220 could accommodate a larger number of control elements by providing a scrollable menu of options, a popup window with multiple control elements, a “page” switching feature, a drop-down menu, or the like.
User images can be dragged and dropped using any number of UI techniques and technologies. Such techniques and technologies include, without limitation: a mouse, trackball, joystick, or other pointing device; a stylus; a remote control; finger gestures using a touchscreen; or the like. Although the GUI 200 is described here in the context of one exemplary implementation that utilizes drag-and-drop technology, alternate embodiments could support other selection techniques and technologies. For example, user images could be selected via a “right click” menu option, via a keyboard button command, or the like. It should be appreciated that the drag-and-drop interface is merely one preferred implementation that is not intended to limit or otherwise restrict the scope or application of the subject matter described herein.
Certain characteristics of the drag-and-drop GUI element 220 change in response to the selection of one or more user images. For example, the various controls 226, 228, 230 are grayed out and configured to be inactive when no user images have been selected (see
The user images in the drag-and-drop GUI element 220 may have certain features and characteristics associated therewith. For example, a selected user image can be rendered with a “Remove” or “Delete” control (such as a small “X” icon displayed in a corner of the user image) to accommodate removal of the selected user image from the drag-and-drop GUI element 220. Alternatively or additionally, the drag-and-drop GUI element 220 could allow the user to remove a selected user image by clicking on the image and pressing a “Delete” button (graphically displayed in the GUI, graphically rendered with a GUI based keyboard, or physically implemented on a hardware keyboard). Alternatively or additionally, the drag-and-drop GUI element 220 could allow the user to remove a selected user image by dragging it out of the displayed boundary of the drag-and-drop GUI element 220. As another feature, a selected user image can be displayed with an icon, symbol, or mark (such as a small checkmark displayed in a corner of the user image) that indicates a “Following” status. Thus, the user of the GUI 200 can quickly and easily determine whether or not he or she is following the person represented by the selected user image. As yet another feature, a selected user image can be provided with hover-over information or content that temporarily appears when the user moves a cursor, a stylus, or finger near or over the selected user image. The hover-over content may include, for example, the name, contact information, profile information, and/or title of the person represented by the selected user image.
Each group field 252, 254 has a respective “Add To Group” control button 258, 260 that, when activated, causes the selected users to be added to the corresponding group. This example assumes that the user activates the “Add To Group” control button 258 located in the group field 252 for the “SF Giants” group, and that the system successfully carries out the corresponding procedure to add the three selected users to the “SF Giants” group. In this regard,
Activation of the “Send” control button 276 causes the entered message to be sent. In accordance with this particular social networking implementation, activation of the “Send” control button 276 posts the entered message on the wall of each recipient. This example assumes that the system successfully carries out the corresponding procedure to post the message. In this regard,
Although the above description focuses on the selection of data objects that represent people or users, the techniques, technologies, and concepts presented here can be extended for use with other types of data objects. In certain embodiments, therefore, a drag-and-drop GUI element and/or any suitably configured interactive selection element could be used to select images, icons, or avatars that represent data objects such as files, accounts, groups, documents, pictures, tenants, organizations, teams, processes, machines, equipment, database objects, or the like. Such functionality allows the user to add a document to a group such that members of the group can easily “follow” the document to keep track of changes, revisions, etc. As another example, the user could “introduce” or connect a file to one or more users and/or establish a relationship between two files, via the “Connect” feature.
The following description of certain processes may also refer to the various states of the GUI 200 shown in
Referring again to
The process 400 continues by detecting the selection (e.g., dragging and dropping) of one or more images that correspond to the selectable data objects (task 406), and by populating the interactive selection element with the selected images (task 408). After the selection element has been populated with at least one image, the process 400 may receive a command in response to activation of a control element that is rendered with the interactive selection element (the “Yes” branch of query task 410). In response to receiving this command, the process 400 initiates or performs one or more functions on the selected data objects (task 412). As mentioned previously, the particular functions available to the user of the system may vary from one embodiment to another, and the exemplary embodiment supports at least the “Add To Group” function, the “Post To Wall” function, and the “Connect” function. Referring again to query task 410, if no command is received, then the process 400 may exit, wait until receiving a command, or return to an appropriate point to continue as described above.
Referring now to
Referring now to
A process similar to the “Post To Wall” process 600 may also be supported to send a private message or an instant message to selected user(s), or to create a live chat “room” intended for the selected user(s). In this regard, tasks 602, 604, and 606 can be performed as described above to populate the drag-and-drop GUI element with the desired user images. Thereafter, an appropriate control element (such as the “Send Message” control 229 depicted in
Referring now to
The foregoing detailed description is merely illustrative in nature and is not intended to limit the embodiments of the subject matter or the application and uses of such embodiments. As used herein, the word “exemplary” means “serving as an example, instance, or illustration.” Any implementation described herein as exemplary is not necessarily to be construed as preferred or advantageous over other implementations. Furthermore, there is no intention to be bound by any expressed or implied theory presented in the preceding technical field, background, or detailed description.
Techniques and technologies may be described herein in terms of functional and/or logical block components, and with reference to symbolic representations of operations, processing tasks, and functions that may be performed by various computing components or devices. Such operations, tasks, and functions are sometimes referred to as being computer-executed, computerized, software-implemented, or computer-implemented. In this regard, it should be appreciated that the various block components shown in the figures may be realized by any number of hardware, software, and/or firmware components configured to perform the specified functions. For example, an embodiment of a system or a component may employ various integrated circuit components, e.g., memory elements, digital signal processing elements, logic elements, look-up tables, or the like, which may carry out a variety of functions under the control of one or more microprocessors or other control devices.
While at least one exemplary embodiment has been presented in the foregoing detailed description, it should be appreciated that a vast number of variations exist. It should also be appreciated that the exemplary embodiment or embodiments described herein are not intended to limit the scope, applicability, or configuration of the claimed subject matter in any way. Rather, the foregoing detailed description will provide those skilled in the art with a convenient road map for implementing the described embodiment or embodiments. It should be understood that various changes can be made in the function and arrangement of elements without departing from the scope defined by the claims, which includes known equivalents and foreseeable equivalents at the time of filing this patent application.
Number | Name | Date | Kind |
---|---|---|---|
5577188 | Zhu | Nov 1996 | A |
5608872 | Schwartz et al. | Mar 1997 | A |
5649104 | Carleton et al. | Jul 1997 | A |
5715450 | Ambrose et al. | Feb 1998 | A |
5761419 | Schwartz et al. | Jun 1998 | A |
5819038 | Carleton et al. | Oct 1998 | A |
5821937 | Tonelli et al. | Oct 1998 | A |
5831610 | Tonelli et al. | Nov 1998 | A |
5873096 | Lim et al. | Feb 1999 | A |
5918159 | Fomukong et al. | Jun 1999 | A |
5963953 | Cram et al. | Oct 1999 | A |
5983227 | Nazem et al. | Nov 1999 | A |
6092083 | Brodersen et al. | Jul 2000 | A |
6169534 | Raffel et al. | Jan 2001 | B1 |
6178425 | Brodersen et al. | Jan 2001 | B1 |
6189011 | Lim et al. | Feb 2001 | B1 |
6216133 | Masthoff | Apr 2001 | B1 |
6216135 | Brodersen et al. | Apr 2001 | B1 |
6233617 | Rothwein et al. | May 2001 | B1 |
6236978 | Tuzhilin | May 2001 | B1 |
6266669 | Brodersen et al. | Jul 2001 | B1 |
6288717 | Dunkle | Sep 2001 | B1 |
6295530 | Ritchie et al. | Sep 2001 | B1 |
6324568 | Diec et al. | Nov 2001 | B1 |
6324693 | Brodersen et al. | Nov 2001 | B1 |
6336137 | Lee et al. | Jan 2002 | B1 |
D454139 | Feldcamp et al. | Mar 2002 | S |
6367077 | Brodersen et al. | Apr 2002 | B1 |
6393605 | Loomans | May 2002 | B1 |
6405220 | Brodersen et al. | Jun 2002 | B1 |
6411949 | Schaffer | Jun 2002 | B1 |
6434550 | Warner et al. | Aug 2002 | B1 |
6446089 | Brodersen et al. | Sep 2002 | B1 |
6535909 | Rust | Mar 2003 | B1 |
6549908 | Loomans | Apr 2003 | B1 |
6553563 | Ambrose et al. | Apr 2003 | B2 |
6560461 | Fomukong et al. | May 2003 | B1 |
6574635 | Stauber et al. | Jun 2003 | B2 |
6577726 | Huang et al. | Jun 2003 | B1 |
6601087 | Zhu et al. | Jul 2003 | B1 |
6604117 | Lim et al. | Aug 2003 | B2 |
6604128 | Diec | Aug 2003 | B2 |
6609150 | Lee et al. | Aug 2003 | B2 |
6621834 | Scherpbier et al. | Sep 2003 | B1 |
6654032 | Zhu et al. | Nov 2003 | B1 |
6665648 | Brodersen et al. | Dec 2003 | B2 |
6665655 | Warner et al. | Dec 2003 | B1 |
6684438 | Brodersen et al. | Feb 2004 | B2 |
6711565 | Subramaniam et al. | Mar 2004 | B1 |
6724399 | Katchour et al. | Apr 2004 | B1 |
6728702 | Subramaniam et al. | Apr 2004 | B1 |
6728960 | Loomans et al. | Apr 2004 | B1 |
6732095 | Warshavsky et al. | May 2004 | B1 |
6732100 | Brodersen et al. | May 2004 | B1 |
6732111 | Brodersen et al. | May 2004 | B2 |
6754681 | Brodersen et al. | Jun 2004 | B2 |
6763351 | Subramaniam et al. | Jul 2004 | B1 |
6763501 | Zhu et al. | Jul 2004 | B1 |
6768904 | Kim | Jul 2004 | B2 |
6782383 | Subramaniam et al. | Aug 2004 | B2 |
6804330 | Jones et al. | Oct 2004 | B1 |
6826565 | Ritchie et al. | Nov 2004 | B2 |
6826582 | Chatterjee et al. | Nov 2004 | B1 |
6826745 | Coker | Nov 2004 | B2 |
6829655 | Huang et al. | Dec 2004 | B1 |
6842748 | Warner et al. | Jan 2005 | B1 |
6850895 | Brodersen et al. | Feb 2005 | B2 |
6850949 | Warner et al. | Feb 2005 | B2 |
6907566 | McElfresh et al. | Jun 2005 | B1 |
7100111 | McElfresh et al. | Aug 2006 | B2 |
7269590 | Hull et al. | Sep 2007 | B2 |
7281022 | Gruhl et al. | Oct 2007 | B2 |
7340411 | Cook | Mar 2008 | B2 |
7373599 | McElfresh et al. | May 2008 | B2 |
7406501 | Szeto et al. | Jul 2008 | B2 |
7426557 | Gruhl et al. | Sep 2008 | B2 |
7454509 | Boulter et al. | Nov 2008 | B2 |
7599935 | La Rotonda et al. | Oct 2009 | B2 |
7603331 | Tuzhilin et al. | Oct 2009 | B2 |
7620655 | Larsson et al. | Nov 2009 | B2 |
7644122 | Weyer et al. | Jan 2010 | B2 |
7668861 | Steven | Feb 2010 | B2 |
7685091 | Boone et al. | Mar 2010 | B2 |
7698160 | Beaven et al. | Apr 2010 | B2 |
7747648 | Kraft et al. | Jun 2010 | B1 |
7827208 | Bosworth et al. | Nov 2010 | B2 |
7853881 | Aly Assal et al. | Dec 2010 | B1 |
7856445 | Gross | Dec 2010 | B2 |
7933843 | von Groll et al. | Apr 2011 | B1 |
7945653 | Zuckerberg et al. | May 2011 | B2 |
7970895 | Gruhl et al. | Jun 2011 | B2 |
7974983 | Goeldi | Jul 2011 | B2 |
7991764 | Rathod | Aug 2011 | B2 |
8005896 | Cheah | Aug 2011 | B2 |
8010539 | Blair-Goldensohn et al. | Aug 2011 | B2 |
8073850 | Hubbard et al. | Dec 2011 | B1 |
8082301 | Ahlgren et al. | Dec 2011 | B2 |
8095413 | Beaven | Jan 2012 | B1 |
8095594 | Beaven et al. | Jan 2012 | B2 |
8103611 | Tuzhilin et al. | Jan 2012 | B2 |
8150913 | Cheah | Apr 2012 | B2 |
8166013 | Bandaru et al. | Apr 2012 | B2 |
8275836 | Beaven et al. | Sep 2012 | B2 |
20010044791 | Richter et al. | Nov 2001 | A1 |
20020072951 | Lee et al. | Jun 2002 | A1 |
20020082892 | Raffel | Jun 2002 | A1 |
20020129352 | Brodersen et al. | Sep 2002 | A1 |
20020140731 | Subramanian et al. | Oct 2002 | A1 |
20020143997 | Huang et al. | Oct 2002 | A1 |
20020162090 | Parnell et al. | Oct 2002 | A1 |
20020165742 | Robbins | Nov 2002 | A1 |
20030004971 | Gong | Jan 2003 | A1 |
20030018705 | Chen et al. | Jan 2003 | A1 |
20030018830 | Chen et al. | Jan 2003 | A1 |
20030066031 | Laane et al. | Apr 2003 | A1 |
20030066032 | Ramachandran et al. | Apr 2003 | A1 |
20030069936 | Warner et al. | Apr 2003 | A1 |
20030070000 | Coker et al. | Apr 2003 | A1 |
20030070004 | Mukundan et al. | Apr 2003 | A1 |
20030070005 | Mukundan et al. | Apr 2003 | A1 |
20030074418 | Coker et al. | Apr 2003 | A1 |
20030120675 | Stauber et al. | Jun 2003 | A1 |
20030151633 | George et al. | Aug 2003 | A1 |
20030159136 | Huang et al. | Aug 2003 | A1 |
20030187921 | Diec et al. | Oct 2003 | A1 |
20030189600 | Gune et al. | Oct 2003 | A1 |
20030204427 | Gune et al. | Oct 2003 | A1 |
20030206192 | Chen et al. | Nov 2003 | A1 |
20030225730 | Warner et al. | Dec 2003 | A1 |
20040001092 | Rothwein et al. | Jan 2004 | A1 |
20040010489 | Rio et al. | Jan 2004 | A1 |
20040015981 | Coker et al. | Jan 2004 | A1 |
20040027388 | Berg et al. | Feb 2004 | A1 |
20040128001 | Levin et al. | Jul 2004 | A1 |
20040186860 | Lee et al. | Sep 2004 | A1 |
20040193510 | Catahan et al. | Sep 2004 | A1 |
20040199489 | Barnes-Leon et al. | Oct 2004 | A1 |
20040199536 | Barnes Leon et al. | Oct 2004 | A1 |
20040199543 | Braud et al. | Oct 2004 | A1 |
20040249854 | Barnes-Leon et al. | Dec 2004 | A1 |
20040260534 | Pak et al. | Dec 2004 | A1 |
20040260659 | Chan et al. | Dec 2004 | A1 |
20040268299 | Lei et al. | Dec 2004 | A1 |
20050050555 | Exley et al. | Mar 2005 | A1 |
20050091098 | Brodersen et al. | Apr 2005 | A1 |
20050256905 | Gruhl et al. | Nov 2005 | A1 |
20050256949 | Gruhl et al. | Nov 2005 | A1 |
20060200444 | Bracho et al. | Sep 2006 | A1 |
20060284873 | Forrest et al. | Dec 2006 | A1 |
20070214097 | Parsons et al. | Sep 2007 | A1 |
20070233656 | Bunescu et al. | Oct 2007 | A1 |
20070239452 | Madhavan et al. | Oct 2007 | A1 |
20080010270 | Gross | Jan 2008 | A1 |
20080082399 | Noble et al. | Apr 2008 | A1 |
20080082586 | Jasik et al. | Apr 2008 | A1 |
20080147487 | Hirshberg | Jun 2008 | A1 |
20080154798 | Valz | Jun 2008 | A1 |
20080195961 | Bae et al. | Aug 2008 | A1 |
20080209320 | Mawhinney et al. | Aug 2008 | A1 |
20080228695 | Sifry et al. | Sep 2008 | A1 |
20080288516 | Hadfield | Nov 2008 | A1 |
20090018996 | Hunt et al. | Jan 2009 | A1 |
20090138427 | Kalavade | May 2009 | A1 |
20090204507 | Cockayne et al. | Aug 2009 | A1 |
20090222743 | Hadfield | Sep 2009 | A1 |
20090319518 | Koudas et al. | Dec 2009 | A1 |
20100057682 | Ramsay et al. | Mar 2010 | A1 |
20100063877 | Soroca et al. | Mar 2010 | A1 |
20100063959 | Doshi et al. | Mar 2010 | A1 |
20100070485 | Parsons et al. | Mar 2010 | A1 |
20100088234 | Moore et al. | Apr 2010 | A1 |
20100094878 | Soroca et al. | Apr 2010 | A1 |
20100125502 | Solomon et al. | May 2010 | A1 |
20100217757 | Fujioka | Aug 2010 | A1 |
20100241576 | Beeri | Sep 2010 | A1 |
20100274815 | Vanasco | Oct 2010 | A1 |
20110041153 | Simon et al. | Feb 2011 | A1 |
20110209067 | Bogess et al. | Aug 2011 | A1 |
20110246816 | Hsieh et al. | Oct 2011 | A1 |
20110256907 | Lee et al. | Oct 2011 | A1 |
20110258204 | Hubbard et al. | Oct 2011 | A1 |
20110270923 | Jones et al. | Nov 2011 | A1 |
20120023455 | Chen et al. | Jan 2012 | A1 |
20120296920 | Sahni et al. | Nov 2012 | A1 |
Entry |
---|
USPTO, Final Office Action, for U.S. Appl. No. 13/074,809, mailed Feb. 14, 2013. |
USPTO, Notice of Allowance, for U.S. Appl. No. 13/526,246, mailed Feb. 14, 2013. |
USPTO, Notice of Allowance, for U.S. Appl. No. 12/356,429, mailed Feb. 15, 2013. |
Linear Combination—Wikipedia (http://en.wikipedia.org/wiki/Linear—Combination (accessed Jul. 16, 2012). |
Final Office Action for U.S. Appl. No. 12/437,418, mailed Apr. 16, 2012. |
Final Office Action for U.S. Appl. No. 12/356,429, mailed May 2, 2012. |
Notice of Allowance for U.S. Appl. No. 12/819,402, mailed May 14, 2012. |
Non-Final Office Action for U.S. Appl. No. 13/453,802, mailed Jun. 8, 2012. |
United States Patent Office, U.S. Non-Final Office Action for U.S. Appl. No. 12/278,277 dated Sep. 14, 2012. |
United States Patent Office, U.S. Non-Final Office Action for U.S. Appl. No. 13/074,809 dated Oct. 3, 2012. |
U.S. Appl. No. 13/478,002, filed May 22, 2012. |
Number | Date | Country | |
---|---|---|---|
20130024795 A1 | Jan 2013 | US |
Number | Date | Country | |
---|---|---|---|
61509440 | Jul 2011 | US |