1. A computer-implemented method for dynamically configuring a user interface for interacting with an application, the method being executed using one or more processors and comprising:
receiving, by the one or more processors, user input, the user input having been provided through the user interface;
in response to receiving the user input, determining, by the one or more processors, one or more expected user-actions based on a graph and the user input, the graph modeling user interactions with the application;
obtaining, by the one or more processors, one or more modifications based on the one or more expected user-actions; and
transmitting, by the one or more processors, instructions to modify the user interface based on the one or more modifications.
2. The method of claim 1, wherein determining one or more expected user-actions comprises generating the graph based on the user input.
3. The method of claim 1, wherein the one or more modifications comprise at least one of:
combining two or more elements of the user interface;
rearranging two or more elements of the user interface; and
constructing one or more new user-interface elements.
4. The method of claim 1, wherein the graph comprises a node graph comprising:
a plurality of nodes, each of the nodes representing a respective element of the user interface; and
a plurality of edges, each of the edges connecting a respective pair of nodes and representing a sequential interaction by one or more users with the pair of nodes.
5. The method of claim 4, wherein the edges of the graph comprise directed edges.
6. The method of claim 4, wherein the edges of the graph comprises time-weighted edges.
7. The method of claim 4, wherein determining one or more expected user-actions comprises implementing a clustering technique on the node graph.
8. The method of claim 1, wherein the graph corresponds to previous interactions with the application by a user that provided the user input through the user interface.
9. The method of claim 1, wherein the graph corresponds to previous interactions with the application by a class of multiple users.
10. The method of claim 9, wherein a user that provided the user interface is outside the class of multiple users.
11. The method of claim 1, wherein the user input was provided during a previous user session, and wherein transmitting instructions to modify the user interface occurs between user sessions.
12. The method of claim 1, wherein the user input was provided during a current user session, and wherein transmitting instructions to modify the user interface occurs in real time during the current user session as a user interacts with the application.
13. The method of claim 1, wherein the user interface comprises a default user interface.
14. The method of claim 1, wherein the user interface comprises a previously modified user interface.
15. The method of claim 1, wherein the application comprises a stock trading application facilitating buying and selling of securities by the user via the user interface.
16. The method of claim 1, wherein determining one or more expected user-actions based on the graph comprises accessing the graph via an in-memory database.
17. The method of claim 1, wherein the one or more modifications comprise a first set of modifications, and wherein the method further comprises:
providing a first modified user interface based on the first set of modifications;
providing a second modified user interface based on a second set of modifications; and
selecting, from the first and second modified user interfaces, a preferred user interface by implementing an AB testing technique.
18. The method of claim 17, wherein the second set of modifications is obtained based on the one or more expected user-actions.
19. A non-transitory computer-readable storage medium coupled to one or more processors and having instructions stored thereon which, when executed by the one or more processors, cause the one or more processors to perform operations for dynamically configuring a user interface for interacting with an application, the operations comprising:
receiving, by the one or more processors, user input, the user input having been provided through the user interface;
in response to receiving the user input, determining, by the one or more processors, one or more expected user-actions based on a graph and the user input, the graph modeling user interactions with the application;
obtaining, by the one or more processors, one or more modifications based on the one or more expected user-actions; and
transmitting, by the one or more processors, instructions to modify the user interface based on the one or more modifications.
20. A system, comprising:
a client-side computing device; and
a computer-readable storage device coupled to the client-side computing device and having instructions stored thereon which, when executed by the client-side computing device, cause the client-side computing device to perform operations for dynamically configuring a user interface for interacting with an application, the operations comprising:
receiving, by the one or more processors, user input, the user input having been provided through the user interface;
in response to receiving the user input, determining, by the one or more processors, one or more expected user-actions based on a graph and the user input, the graph modeling user interactions with the application;
obtaining, by the one or more processors, one or more modifications based on the one or more expected user-actions; and
transmitting, by the one or more processors, instructions to modify the user interface based on the one or more modifications.
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 depicting one or more objects by an electronic device comprising a display, the method comprising:
determining, by the electronic device, a geolocation of the one or more objects;
determining, by the electronic device, a location of a light source relative to the geolocation according to a date and time;
determining, by the electronic device, a vector from the objects to the light source;
applying shading to the objects according to the vector;
determining, by the electronic device, shadows cast by the objects according to the vector; and
depicting the objects in the geolocation with one or more of the applied shading and the cast shadows according to the geolocation, date, time, and a faced direction,
wherein the geolocation, date, time, and faced direction of the depicting are determined independently of a current location, date, time, and faced direction of the electronic device.
2. The method of claim 1, wherein the light source comprises the sun or moon.
3. The method of claim 2, wherein the determining of the vector comprises determining a position in the sky of the light source according to the geolocation and a local date and time at the geolocation.
4. The method of claim 1, wherein the objects comprise at least one object known to be at the geolocation.
5. The method of claim 4, wherein the object comprises an immobile object.
6. The method of claim 1, wherein the determining of the geolocation is based on signals received by a Global Positioning System (GPS) receiver.
7. The method of claim 1, wherein the determining of the geolocation is based on information entered by a user.
8. The method of claim 1, wherein the determining of the vector comprises identifying a primary light source in at least one image obtained with at least one camera.
9. The method of claim 1, wherein the faced direction is determined based on at least one of a sensing of a magnetic field, a gyroscope, and a visual horizon.
10. The method according to claim 1, further comprising:
obtaining current environmental information of the geolocation; and
depicting the objects in the geolocation according to the current environmental information.
11. The method of claim 10, wherein the environmental information comprises at least one of a temperature, a wind direction, a wind speed, a date, a time, a current cloud cover, currently falling precipitation, recent precipitation, information of flora common to the geolocation, and information of road maintenance or closures.
12. The method of claim 11, wherein at least one object is depicted moving according to the wind direction and wind speed.
13. The method of claim 1, wherein one or more of the geolocation, date, time, and faced direction may be entered by a user.
14. The method of claim 13, wherein if any of the geolocation, date, time, and faced direction are not entered by the user, then the light source, shading, and shadows are determined according to the respective current location, date, time, or faced direction of the electronic device instead.
15. The method of claim 1, wherein the objects comprise at least one virtual object not known to be physically present at the geolocation, date, and time.
16. The method of claim 1, wherein at least one of the one or more objects is depicted highlighted according to criteria entered by a user.
17. An apparatus for depicting one or more objects, the apparatus comprising:
a display; and
at least one controller for determining a geolocation of one or more objects, for determining a location of a light source relative to the geolocation, for determining a vector from the objects to the light source, for applying shading to the objects according to the vector, for determining shadows cast by the objects according to the vector, and for controlling to depict the objects on the display in the geolocation with one or more of the applied shading and the cast shadows according to the geolocation, date, time, and a faced direction,
wherein the geolocation, date, time, and faced direction of the depicting are determined independently of a current location, date, time, and faced direction of the apparatus.
18. The apparatus of claim 17, wherein the light source comprises the sun or moon.
19. The apparatus of claim 18, wherein the controller determines a position in the sky of the light source according to the geolocation and a local date and time at the geolocation.
20. The method of claim 17, wherein the objects comprise at least one object known to be at the geolocation.
21. The apparatus of claim 20, wherein the object comprises an immobile object.
22. The apparatus of claim 17, wherein the controller determines the geolocation based on signals received by a Global Positioning System (GPS) receiver.
23. The method of claim 17, wherein the controller determines the geolocation based on information entered by a user.
24. The apparatus of claim 17, wherein the controller determines the vector by identifying a primary light source in at least one image obtained with at least one camera.
25. The method of claim 17, wherein the faced direction is determined based on at least one of a sensing of a magnetic field, a gyroscope, and a visual horizon.
26. The apparatus according to claim 17,
wherein the at least one controller further obtains current environmental information of the geolocation, and controls to depict the objects on the display in the geolocation according to the current environmental information.
27. The apparatus of claim 26, wherein the environmental information comprises at least one of a temperature, a wind direction, a wind speed, a date, a time, a current cloud cover, currently falling precipitation, recent precipitation, information of flora common to the geolocation, and information of road maintenance or closures.
28. The apparatus of claim 27, wherein at least one object is depicted moving according to the wind direction and wind speed.
29. The apparatus of claim 17, wherein one or more of the geolocation, date, time, and faced direction may be entered by a user.
30. The apparatus of claim 29, wherein if any of the geolocation, date, time, and faced direction are not entered by the user, then the light source, shading, and shadows are determined according to the respective current location, date, time, or faced direction of the apparatus instead.
31. The apparatus of claim 17, wherein the objects comprise at least one virtual object not known to be physically present at the geolocation, date, and time.
32. The apparatus of claim 17, wherein at least one of the one or more objects is depicted highlighted according to criteria entered by a user.