Techniques for generating electronic menu graphical user interface layouts for use in connection with electronic devices

Information

  • Patent Grant
  • 11714528
  • Patent Number
    11,714,528
  • Date Filed
    Thursday, June 30, 2022
    2 years ago
  • Date Issued
    Tuesday, August 1, 2023
    a year ago
Abstract
Certain exemplary embodiments relate to techniques for generating electronic menu (eMenu) graphical user interface layouts for use in connection with electronic devices (e.g., tablets, phablets, smart phones, etc.). A virtual grid-based layout including rows and columns that together constitute regularly sized and shaped grid cells is defined. Input identifying items to be included in the eMenu is received. Each item has associated length and width dimensions corresponding to a number of grid cells. At least some of the items are flagged for inclusion in the eMenu. Those items marked for inclusion are automatically and programmatically arranged in the eMenu in the grid cells of the grid-based layout in a manner that minimizes the number of unused grid cells. A tag-based representation of the layout corresponding to the formatted eMenu is stored. The file is made available to the electronic device in enabling the formatted eMenu to be displayed thereon.
Description
TECHNICAL FIELD

Certain exemplary embodiments relate to techniques for generating electronic menu (eMenu) graphical user interface (GUI) layouts for use in connection with electronic devices such as, for example, tablets, phablets, smart phones, and/or other electronic devices.


BACKGROUND AND SUMMARY

Electronic menus (eMenus) are becoming more and more popular, especially as prices for electronic devices such as tablets, phablets, smart phones, and the like, continue to drop. Some restaurants thus have made moves to make their current physical menus available via custom applications (apps) that run on such electronic devices.


Unfortunately, however, the process of turning a physical “paper” or other menu into an electronic version can be complicated. For instance, although patrons typically tolerate a large amount of so-called “negative space” (e.g., large areas of unused or “wasted” space where a simple white or other oftentimes neutral color background appears behind text and/or images) when it comes to physical “paper” or other menus, electronic device users typically want to have more visually interesting “worlds” in which they can navigate and explore. Thus, a simple conversion from a paper menu to an electronic version, without more, can result in a graphical user interface (GUI) that is generally unsuitable for an electronic device because of the presence of too much “boring” negative space. As another example, although it is relatively easy to flip through a multi-page physical menu, navigating through a simple electronic analog (e.g., via scrolling or the like) could be quite tedious. Even where “electronic pages” can be “turned” by a user operating an electronic device, simply listing menu items through a series of text entries still leaves a large amount of wasted negative space and can create a fairly boring user experience. Thus, although the content may remain the same as between a conventional physical menu and an eMenu, it may be desirable to change the form of the information, e.g., to make it more appropriate for the device being used.


The process of generating an eMenu may also require special programming expertise that a restaurateur may not possess. Menu creation therefore may be difficult from a technical standpoint. Even in situations where restaurateurs are able to create eMenus, the process of laying out an eMenu for electronic device can be quite different from laying out a paper menu, and may involve a different skill set, e.g., as digital creation is different from paper layout presentation. It is fairly rare to find a person who has both technical programming skills and “an eye” for how graphics and/or other layout approaches can enhance how menus and/or menu items are presented. It thus will be appreciated that it would be desirable to help merge the content creation and formatting processes, e.g., to create an accessible, cohesive, and visually interesting eMenu.


Hardcoded eMenu solutions tend to be costly and promote stagnation of menus, e.g., as the customizations and updates generally carry further costs. In such cases, it oftentimes is difficult to highlight “featured” menu items that change on a daily, weekly, monthly, or other basis. It also can be difficult to remove entries that are no longer offered. Considering that a restaurateur could easily provide a “menu insert” to highlight featured menu items or “line through” or otherwise delete and reprint no longer offered items when working in the physical (e.g., paper) world, current eMenuing systems in some senses actually create new challenges. This is an interesting trend, as most people view technology as an expedient for pushing out new content quickly and easily. It thus will be appreciated that it would be desirable to provide approaches that help keep menus fresh and up to date, both in terms of their content and their look-and-feel.


Certain exemplary embodiments address these and/or other issues, e.g., by providing techniques for more automated eMenu generation and/or management. In certain example embodiments, a method of formatting an electronic menu to be output to a display of an electronic device is provided. There is defined a virtual grid-based layout including rows and columns that together define a plurality of regularly sized and shaped grid cells. Input identifying a plurality of items to be included in the electronic menu is received, with each said item having associated length and width dimensions corresponding to a number of grid cells, and with at least some of said items being flagged for inclusion in the electronic menu. Those items marked for inclusion in the electronic menu are automatically and programmatically arranged in the grid cells of the grid-based layout in a manner that minimizes the number of unused grid cells. A tag-based representation of the layout is stored to a file on a non-transitory computer readable storage medium, following said arranging, with the tag-based representation of the layout corresponding to the formatted electronic menu. The file is made available to the electronic device in enabling the formatted electronic menu to be displayed on the display of the electronic device.


In certain example embodiments, a method of formatting an electronic menu to be output to a display of an electronic device is provided. There is defined a virtual grid-based layout including rows and columns that together define a plurality of regularly sized and shaped grid cells. Input from a predefined file corresponding to a physical menu is received, with the received input identifying a plurality of items to be included in the electronic menu, with each said item having associated length and width dimensions corresponding to a number of grid cells, and with at least some of said items being flagged for inclusion in the electronic menu.


Using at least one processor of a computing system, those items marked for inclusion in the electronic menu are automatically and programmatically virtually arranged in the grid cells of the grid-based layout in a manner that minimizes the number of unused grid cells. A representation of the layout is stored to a file on a non-transitory computer readable storage medium of the computing system following said arranging, with the representation of the layout corresponding to the formatted electronic menu. The file is published so that the file is made available over a network interface of the computing device to the electronic device in enabling the formatted electronic menu to be displayed on the display of the electronic device.


In certain example embodiments, a computing device is provided. The computing device includes processing resources including at least one processor and a memory; a non-transitory computer readable storage medium; and an input channel configured to receive input identifying a plurality of items to be included in an electronic menu, each said item having associated length and width dimensions corresponding to a number of grid cells, at least some of said items being flagged for inclusion in the electronic menu. The processing resources are controllable to format the electronic menu using received input by executing instructions for at least: defining a virtual grid-based layout including rows and columns that together define a plurality of regularly sized and shaped grid cells; automatically and programmatically arranging those items marked for inclusion in the electronic menu in the grid cells of the grid-based layout in a manner that minimizes the number of unused grid cells; storing, to a file on the non-transitory computer readable storage medium, a tag-based representation of the layout, following said arranging, the tag-based representation of the layout corresponding to the formatted electronic menu; and making the file available to electronic devices in order to in turn enable the electronic devices to display and enable user interaction with the formatted electronic menu.


Similarly, in certain example embodiments, there is provided a program and/or a non-transitory computer readable storage medium tangibly storing instructions that, when executed, perform the above-described and/or other methods.


Similarly, in certain example embodiments, there is provided a system for use at a venue, with the system comprising a plurality of electronic devices distributed to patrons on behalf of the venue, and with each said electronic device being configured to display an electronic menu formatted in accordance with the method of claim 1.


According to certain example embodiments, the arranging comprises: adding to a source set a representation of each of the items identified by the received input; defining a state object having a predetermined number of rows and a number of columns equal to the number of columns in the grid-based layout that together define a plurality of state object cells, the state object cells having the same size and shape as the grid cells; (a) determining how many state object cells are unused in the first row of the state object; (b) removing elements from the source set and adding the removed elements to an insertion set while the total width of the elements added to the insertion set, as measured in cells, is less than the number of unused cells in the first row of the state object; (c) attempting to reorder the elements in the insertion set to fill the unused cells in the first row of the state object; (d) in response to a valid order being determined in (c), placing the reordered elements in the state object in this reordered order until all unused cells are filled and returning to the source set in their initial order any unused elements remaining in the insertion set; (e) in response to no valid order being determined in (c), searching for an appropriately-sized element from among the first predetermined number of elements in the source set; (f) in response to an appropriately-sized element being found in (e), removing the appropriately-sized element from the source set and adding it to the insertion set, reordering the elements in the insertion set to fill the unused cells in the first row of the state object, and placing the reordered elements in the state object in this reordered order until all unused cells are filled and returning to the source set in their initial order any unused elements remaining in the insertion set; and (g) if the source set is not empty, designating the row following the first row of the state object as the new first row of the state object and repeating (a)-(f), but otherwise defining the grid-based layout in accordance with the state object.


According to certain example embodiments, the arranging comprises: adding to a source set a representation of each of the items identified by the received input, the elements in the source set being ordered in accordance with a desired display order for the corresponding items; dividing the grid-based layout into a plurality of segments, each said segment including at least two rows and all columns in these rows that together define segment cells; (a) starting with the first segment, and starting at the beginning of the source set, identifying elements in the source set whose total cell space is less than or equal to the number of cells in the segment, and removing those identified elements from the source set; (b) selecting a segment layout from a pre-generated set of possible segment layouts for the identified elements, based on the combination of dimensions of the items associated with identified elements, as represented in cells; (c) laying out the items in the first segment in accordance with the selected segment layout; and (d) if the source set is not empty, designating the segment following the first segment as the new first segment and repeating (a)-(c), but otherwise defining the grid-based layout in accordance with the laid-out segments.


According to certain example embodiments, the arranging comprises: adding to a source set a representation of each of the items identified by the received input, the elements in the source set being ordered in accordance with a desired display order for the corresponding items; dividing the grid-based layout into a plurality of segments, each said segment including a number of rows that is at least one row greater than a maximum size of the elements, as expressed in cells, and all columns in these rows, so that the segment rows and segment columns collectively define segment cells; (a) starting with a first segment, determining how many segment cells are unused in its last row and, in response to a determination that there are no unused segment cells in its last row, adding the first segment to the grid-based layout and making the next segment the first segment; (b) starting with the first segment, and starting at the beginning of the source set, identifying elements in the source set whose total cell space is less than or equal to the number of unused cells in the first row of the first segment, and removing those identified elements from the source set; (c) attempting to first reorder and if necessary then rotate at least some of the identified elements to fill the unused cells in the first row of the first segment; (d) in response to a successful attempt in (c), placing the reordered and/or rotated elements in the first segment in this reordered and/or rotated order and returning to the source set in their initial order any unplaced identified elements; (e) in response to an unsuccessful attempt in (c), searching the source set for an element from among the first predetermined number of elements in the source set that is appropriately-sized and/or re-orientatable to be appropriately-sized to fill unused cells in the first row of the first segment; (f) in response to an appropriately-sized and/or re-orientatable element being found in (e), removing the appropriately-sized element from the source set and considering it one of the identified elements, attempting to first reorder and if necessary then rotate at least some of the identified elements to fill the unused cells in the first row of the first segment, placing the reordered and/or rotated elements in the first segment in this reordered and/or rotated order and returning to the source set in their initial order any unplaced identified elements; and (g) if the source set is not empty, designating the row following the first row of the first segment as the new first row of the first segment and repeating (a)-(f), but otherwise defining the grid-based layout in accordance with the first segment.


The exemplary embodiments, aspects, and advantages disclosed herein may be provided in any suitable combination or sub-combination to achieve yet further exemplary embodiments.





BRIEF DESCRIPTION OF THE DRAWINGS

These and other features, aspects, and advantages of the instant invention will be further understood by review of the following detailed description of the exemplary embodiments when read in conjunction with the appended drawings, in which:



FIG. 1 is a block diagram showing elements that may exist in a restaurant in which an eMenu made in accordance with certain exemplary embodiments may be used;



FIGS. 2a-2i help demonstrate an example technique for creating an eMenu in accordance with certain exemplary embodiments;



FIG. 3 is an illustrative timeline that helps demonstrate the example approach shown in and described in connection with FIGS. 2a-2i;



FIGS. 4a-4g help demonstrate another example technique for creating an eMenu in accordance with certain exemplary embodiments;



FIG. 5 is another illustrative timeline that helps demonstrate the example approach shown in and described in connection with FIGS. 4a-4g;



FIG. 6 is an example category table that may be used in certain exemplary embodiments;



FIG. 7 is an example products table that may be used in certain exemplary embodiments;



FIGS. 8a-8b schematically show how a schema file may be used to organize elements in accordance with certain exemplary embodiments; and



FIG. 9 is an example eMenu made in accordance with certain exemplary embodiments.





DETAILED DESCRIPTION

Certain exemplary embodiments relate to techniques for generating electronic menu (eMenu) graphical user interface (GUI) layouts for use in connection with electronic devices such as, for example, tablets, phablets, smart phones, and/or other electronic devices.


Referring now more particularly to the drawings, FIG. 1 is a block diagram showing elements that may exist in a restaurant in which an eMenu made in accordance with certain exemplary embodiments may be used. Many patron-operable devices 102a-102j are shown in FIG. 1. In the FIG. 1 example, the patron-operable devices 102a-102j are grouped such that each member in a party has his or her own patron-operable device 102. As indicated above, the individual devices may be tablets, phablets, smart phones, and/or other electronic devices.


The devices may be the same or different device types in different implementations, and they may be the patrons' own devices (e.g., onto which a suitable eMenu application has been downloaded and installed), devices provided by the restaurant and loaned to the patrons (e.g., onto which the same or similar suitable eMenu application has been downloaded and installed), or a mixture of the two. The patrons may use the patron-operable devices 102a-102j to browse an eMenu made in accordance with certain exemplary embodiments, place orders, call a staff member (e.g., with a predefined message such as, fore example, “ready to order,” “please bring refills,” “napkins needed”, “check please”, etc.; a custom message; and/or as a general matter without a specific message), play single or multi-player games (e.g., table-wide, restaurant-wide, and/or broader-scale games such as trivia), control a television or other display provided at table or elsewhere, interact with a jukebox, and/or interact with other entertainment offerings. Patron-operable devices may be distributed to patrons prior to their being seated for use in the location, e.g., for ordering drinks from a bar, playing games, receiving notifications when a table is ready, checking on estimated wait times and/or location in a queue, etc.


Wait staff who serve the patrons may have their own wait staff devices 104a-104c. Wait staff operable devices 104a-104c may be used to place orders on behalf of patrons, confirm patrons' orders, etc. A host-operable device 106, which may run the same or similar application as the wait staff operable devices 104a-104c, also may be provided. These devices may also provide waitlist information, generate estimated wait times, etc.


In certain exemplary embodiments, the wait staff operable devices 104a-104c and/or the host-operable device 106 may be phablets or smaller tablets, e.g., to facilitate mobility, whereas the patron-operable devices 102a-102j may be larger tablets or the like.


A local server 108 is provided in the location, e.g., to provide content caching (e.g., useful in the administration of local games such as trivia), coordination of media output to the displays 110a-110c, distribution of newly downloaded music to the jukebox 112, generate backups of orders and/or other onsite information, etc. The local server 108 thus may have a connection to the Internet and/or another outside network.


In addition to or in place of the local server 108, certain exemplary embodiments may incorporate a management computer 114. The management computer 114 and/or the local server 108 may receive orders from the wait staff operable devices 104a-104c and/or the patron-operable devices 102a-102j (e.g., depending on the implementation in terms of who is allowed to place orders). It also may relay orders to kitchen staff, manage notifications to wait staff when orders are ready, generate bills, etc. The management computer 114 may also administer the waitlist, potentially keeping track of when parties are seated, how long parties remain seated on average and/or in accordance with a general rule defined by the location and/or an outside party, etc. The host-operable device 106, the wait staff operable devices 104a-104c, and/or the patron-operable devices 102a-102j may be able to access this waitlist information, e.g., as indicated above. The local server 108 may backup this and/or other related information in certain exemplary embodiments.


The displays 110a-110c may be televisions or other professional displays and, as such, may receive video feeds from cable boxes, satellite receivers, streaming network sources over IP, and/or the like. As alluded to above, the displays 110a-110c may be managed by the local server 108 and/or the management computer 114.


The jukebox 112 may be a digital downloading jukebox or the like. See, for example, U.S. Publication No. 2013/0070093, the entire contents of which are hereby incorporated herein by reference. As alluded to above, the jukebox 112 may be interacted with and/or at least partially controlled by host-operable device 106, the wait staff operable devices 104a-104c, and/or the patron-operable devices 102a-102j.


In terms of generating an eMenu, the inventors of the instant application have realized that a grid-based approach to locating items can be beneficial when it comes to laying out items in a cohesive and visually interesting manner. The grid-based approach also advantageously facilitates automation when it comes to eMenu generation, thereby reducing the need for custom programming and enabling more dynamic menu generation that, in turn, can be helpful when a restaurant wishes to change which items are featured, add items to and/or remove items from a menu, etc. In the examples that follow, the display on each tablet is divided into a grid with four columns and three rows when horizontally oriented. This provides 12 cells total, and menu items may take up one or more cells, depending on a variety of factors. For instance, a menu item that includes text and an image may be a 2×1 or 1×2 entry on the eMenu. A highlighted or otherwise featured menu item may be a 2×2 entry on the eMenu. Other items (e.g., basic graphics and/or items with text but lacking images) may be 1×1 entries on the eMenu. Navigational components also may be provided, e.g., to browse between breakfast, dinner, lunch, and/or other “sub-menus”, to move between the eMenu itself and other entertainment-related and/or other features provided on the device (such as, for example, jukebox control, game play, etc.).


Several specific approaches for automatically generating eMenus are set forth below. In general, these approaches receive input that includes structural information about the main sections of a menu and, optionally, one or more hierarchically arranged sub-sections, of that menu. In addition to this structural information, content information is provided. The content information may include, for example, an identifier of the items (e.g., an appetizer's name), whether there is an associated image (and if so, a filename and/or pathname indicating where the image is located), a flag for whether the item is featured (optionally with information concerning how long it is to be featured), pricing information, etc. These pieces are fit together in the grid to, among other things, main structural information and reduce the “lost space” in the menu. Certain exemplary embodiments may attempt to follow the order of the layout as closely as possible, e.g., to preserve the layout of the prior menu. However, adjustments may be made to reduce wasted space, etc., in certain exemplary embodiments, and this may adjust the ordering of certain elements. It also is noted that items may be shuffled, potentially at random, e.g., to expose users to different items.


Once the layout is determined, it may be stored to a file in a format readable by applications running on the patron-operable devices, e.g., so that they can display the eMenu. In certain exemplary embodiments, a tag-based and/or other format may be used. For instance, an XML file, JSON file, and/or the like, that conforms to a predefined schema may be read by applications running on the patron-operable devices and used to generate the displays accordingly. The devices may store the layout file locally or retrieve it from a network location (e.g., from a local server, management computer, and/or other location). Central storage and/or distribution may help promote changeability over time. The devices similarly may access the content referenced in the layout file from a local or more centralized location (e.g., from a local server, management computer, and/or other location). It is noted that layout files may be generated for different orientations (horizontal vs. vertical), different device types (e.g., such that more cells are provided for devices with larger displays as compared to devices with smaller displays, etc.). The application running on the devices may determine orientation (e.g., using accelerometers, gyroscopes, and/or the like), device type and/or hardware components, etc., and access the appropriate layout file(s).


A more detailed description of three example approaches for laying out menu items will now be provided. It will, of course, be appreciated that these and/or other approaches may be used in connection with different exemplary embodiments. It is noted that the approaches may be implemented as instructions stored on a non-transitory computer readable storage medium. Such instructions may read a source menu file and produce an output file in a specified format, e.g., after the instructions have been performed by at least one processor of a suitably configured computer system.


First Example Layout Approach

The first example layout approach assumes that items are to be placed on a device's display, with as little empty space as reasonably possible while still maintaining the general order of the menu items. More particularly, assumptions are made that menu items are organized in categories and sub-categories, and that menu items within sub-categories should be displayed in the order that is provided. This also approach assumes a four column layout, implying that each row on a display contains four cells. As indicated above, elements can be 1×1 (e.g., for items without pictures and/or for items that are only pictures), 1×2 and 2×1 elements (e.g., for items with pictures, respectively organized side-by-side and stacked vertically), and 2×2 items (e.g., for items associated with a promotion, that are featured, etc.).


The approach also maintains a state object, which describes the current state of the layout. The state object in this example contains information about which cells are available in the “first row.”


The first example layout approach is iterative. For each iteration, the approach:

    • Obtains information about available cells from state object, including determining how many cells are available in the “first row.”
    • Adds to a set elements from a source menu item list while the total width of the elements added is less than the number of available cells.
    • Attempts to reorder the elements in the set to fill available (or “empty”) cells. If such an order exists, the elements are placed into the layout using this order. All unused items in the set are returned to the beginning of the source list according to their initial order.
    • Searches for an appropriately-sized element with the first predetermined number of elements (e.g., the first 3, 5, or other number of elements) in the source list, if such an order was not found to exist in the prior point. If such an element exists, it is added to the set and an order for the new set is selected. The elements are placed into the layout using this order. All unused items in the set are returned to the beginning of the source list according to their initial order.
    • If there are no suitable elements, an empty space is left. Filler material (e.g., a stock image, background, and/or the like) optionally may be inserted into the area.



FIGS. 2a-2i help demonstrate an example technique for creating an eMenu in accordance with certain exemplary embodiments, and FIG. 3 is an illustrative timeline that helps demonstrate the example approach shown in and described in connection with FIGS. 2a-2i. FIG. 2a shows nine elements to be included in an eMenu. Moving from left to right, FIG. 2a shows 1×1, 2×1, 2×1, 1×2, 2×2, 1×2, 2×1, 2×1, and 1×2 items. Initially, four cells in the first row are available (the state object is completely empty), so the first elements are taken from the source list while the total width is less than four. Because of the way the loop is structured, the first four elements are taken, as shown in FIG. 2b. Because the total width is more than the number of available cells (e.g., 5>4), an attempt is made to reorder the elements to fill the row. The set shown in FIG. 2c (including elements 1, 2, and 4) thus is taken. The unused element (element 3) is returned to the beginning of the source list. The reordered elements are added to the layout.


At this point, the first row is filled and therefore is no longer needs to be considered. The second row in the eMenu thus is treated as the first row, and the end of the first iteration is reached. See FIG. 2 for the eMenu layout at the end of the first iteration.


At the beginning of the second iteration, the six elements shown at the left of FIG. 2d remain and the state object shown at the right of FIG. 2d indicates that the second cell in the first row is filled. Thus, there are three empty cells in the first row and, as shown in FIG. 2e, the first two elements from the source list are taken. The total width is equal to the amount of empty cells. Furthermore, there is no need to reorder the elements, as the 2×1 entry will fit in the leftmost empty cell, and the 2×2 entry will fit in the two farthest right empty cells. The second iteration thus is ended. See FIG. 3 for the eMenu layout at the end of the second iteration.


At the beginning of the third iteration, the four elements shown at the left of FIG. 2f remain and the state object shown at the right of FIG. 2f indicates that the first, third, and fourth cells in the first row are filled. One cell needs to be filled. At this point, the element shown in FIG. 2g is taken. This set (with one 1×2 element) cannot be reordered in a manner to make it fit in the empty cell. Thus, a search is performed within a predetermined number of elements (e.g., 3) in the source list. The second element in the source list is determined to be suitable, and it then is used to fill the empty cell. The element that cannot be used is placed at the beginning of the source list. The end of the third iteration is reached. See FIG. 2 for the eMenu layout at the end of the third iteration.


At the beginning of the fourth iteration, the four elements shown at the left of FIG. 2h remain and the state object shown at the right of FIG. 2h indicates that only the second cell is filled. Thus, the first, third, and fourth cells in the first row are empty and can be filled. The first two elements from the list are taken and reordered in the manner shown in FIG. 2i. These elements are then added to the eMenu. The end of the fourth iteration is reached. See FIG. 2 for the eMenu layout at the end of the fourth iteration.


Only one element remains at this time, and it is inserted into the eMenu in the left-most empty spaces. The end of the fifth iteration is reached. See FIG. 3 for the eMenu layout at the end of the fifth iteration.


It will be appreciated from FIG. 3 that there are no empty spaces, aside from the very last cell in the bottommost and rightmost corner.


In certain exemplary embodiments, checks may be performed to make sure that difficult to place items are not shifted more than a threshold number of times. Doing so could result in the specific menu item being forced into a location far outside of its expected and/or most “natural” location. Some inefficiency in spacing thus may be tolerated.


Second Example Layout Approach

A similar set of assumptions as those discussed above in connection with the first example layout approach applies here, as well. However, in certain exemplary embodiments, an additional assumption may be made concerning two-cell items. More particularly, in certain exemplary embodiments, an assumption may be made that if an item has a picture, it can be displayed either as a 1×2 or a 2×1 element. Thus, in this example approach, the number of cells occupied is deemed more important than the orientation (e.g., unless a preferred or required orientation is specified).


The second example layout approach involves a segment-based approach. In the segment based approach:

    • The display area for laying out the menu items is divided into segments. For this example, each segment is a 2×4 (2 row by 4 column) segment. It is noted, however, that differently-sized segments may be used in different exemplary embodiments.
    • A layout is generated for each segment, one at a time, starting from the top of each sub-category. As implied above, each menu item will take up either one, two (horizontally or vertically oriented), or four (2×2) cells.


In the segment layout approach:

    • All possible ways for laying out any combination of menu items are pre-generated. For example, for the 2×4 segment example contemplated herein,
      • There is only one possible layout for eight single-cell items;
      • There are four possible layouts for four two-cell items; and
      • There are two possible layouts for two four-cell items.


It is, however, noted that other use cases are contemplated herein (e.g., for a scenario where there is one four-cell item, one two-cell item, two one-cell items; etc.).

    • The menu items are sorted by their desired display order.
    • Starting from the top of sorted menu item list, a search is performed to find the first few items whose total cell space adds up to a number less than or equal to eight (e.g., such that if the number of less than 8, it is the closest it can be without going over and/or optionally while retaining the desired order).
    • The pre-generated layouts for this combination of menu items are recalled.
    • Of the recalled pre-generated layout(s), one is selected (e.g., at random, in a predetermined order, by a user, and/or in some other manner).
    • The items are laid out in accordance with the selected recalled pre-generated layout.
    • This process is repeated, moving down the list, until all menu items are placed.


If there is an empty space in a segment, a filler image and/or the like may be used. It is noted that this may be performed in line and/or at the end of the process.


This approach advantageously is very extensible. It is noted, for example, that the segment size can be changed. In certain exemplary embodiments, different segment sizes can be used simultaneously for displaying one menu. In a similar vein, the menu item sizes can vary.


Certain exemplary embodiments may incorporate further enhancements. For example, at the end of a menu item list, if the total space of the items left is less than or equal to four, remaining elements may be placed in a single row. As another example, different weights can be given to different layouts for one combination of menu items, e.g., so that one or more of them are preferred over others.


Third Example Layout Approach

The third example layout approach in essence combines aspects of the two previously discussed approaches. That is, it fills a container segment-by-segment, like the second approach discussed above, and each segment is filled row-by-row and left-to-right like the first approach. For this example, the initial segment size is three rows by four columns.


Furthermore, this approach attempts to rotate elements, e.g., in order to try to fill each row as fully as possible. The iterative approach in this example is similar to the iterations performed in the first example approach discussed in detail above. For each iteration in this approach:

    • If the previous “last row” was filled completely, it is considered that a new empty segment and a new “first row” should be filled.
    • Information about the number of available cells in the first row is obtained from the state object.
    • Several elements are taken from the source menu items list while the total width of these elements is less than the number of available cells.
    • If the set of taken elements cannot be inserted into the first row, an attempt is made to rotate some of the elements to arrive at a suitable combination. If such a combination exists, the elements that fit are placed into the layout. All unused items are returned to the beginning of the source list according to their initial order.
    • If there is no suitable combination, an attempt is made to reorder and rotate any of the elements to fill the empty cells. If such a combination exists, the elements that fit are placed into the element. All unused items are returned to the beginning of the source list according to their initial order.
    • If no elements were inserted, a search is made for an appropriately-sized element with the first predetermined number of elements (e.g., the first 3, 5, or other number of elements) in the source list. Attempts to rotate and/or reorder elements in the new set of menu items are made so that a fit is found. If there is a combination that fits, the items are placed in the layout. All unused items in the set are returned to the beginning of the source list according to their initial order.
    • If there are no suitable combinations, an empty space is left. Filler material (e.g., a stock image, background, and/or the like) optionally may be inserted into the area.



FIGS. 4a-4g help demonstrate another example technique for creating an eMenu in accordance with certain exemplary embodiments, and FIG. 5 is another illustrative timeline that helps demonstrate the example approach shown in and described in connection with FIGS. 2a-2i. FIG. 4a shows nine elements to be included in an eMenu. Moving from left to right, FIG. 4a shows 1×1, 2×1, 2×1, 1×2, 2×2, 1×2, 2×1, 2×1, and 1×2 items. The red boxes shown in FIG. 5 and in the state object representations represent segment frames. Initially, four cells in the first row are available (the state object is completely empty), so the first elements are taken from the source list while the total width is less than four. Because of the way the loop is structured, the first four elements are taken, as shown in FIG. 4b. The combination shown in FIG. 4b cannot be inserted into the first row, an attempt is made to rotate the elements in order to find a combination that fits, which results in the layout shown in FIG. 4c. This is the end of the first iteration.


At the start of the second iteration, the menu items shown at the left of FIG. 4d remain and the state object is shown at the right of FIG. 4d. Only one cell needs to be filled, so only the item shown in FIG. 4e is retrieved. This element cannot fill one cell, even if rotated.


Thus, a search is made to locate suitable elements in the remainder of the list. The second item in the FIG. 4d list can be rotated to fit, so it is placed in the layout. The element shown in FIG. 4e is unused, so it is returned to the beginning of the source list. This is the end of the second iteration.


At the start of the third iteration, the menu items shown at the left of FIG. 4f remain and the state object is shown at the right of FIG. 4f. At this point, three cells in the last row need to be filled. However, the end of the segment frame is about to be reached. Thus, it only is possible to fill the space with a 1×2 item (possibly with a 1×1 items), or with one or more 1×1 items. The second element shown in FIG. 4f is selected, rotated, and inserted. Because there is no possible way to fill in the last cell using the elements remaining, that segment is considered filled. This is the end of the third iteration and the completion of the first segment frame.


In the fourth iteration, a new segment frame is started, and there is a need to fill in its first row. This can be done using the three remaining items, e.g., if they are arranged as shown in FIG. 4g. These elements are added to the layout, and all items have been placed.


Example Input File Format

Structured information regarding the eMenu to be generated may be provided in any suitable form. In certain example embodiments, four tables may be provided, e.g., for identifying categories of products, products, drinks, and filler materials. Such tables may, for instance, be provided in separate flat text files, as multiple worksheets in an Excel Workbook, as multiple tables in an Access or other database, etc.


An example categories table may include a column for the names of the categories. To help maintain some hierarchical information, an optional “parent category” column may be provided. For instance, “wine list,” “house,” “white,” and “red,” may be category names. The “wine list” category optionally may be provided as the parent category for each of “house,” “white,” and “red.” Descriptions may be provided for some or all categories. Categories may have images associated with them, and they may be published to an eMenu and/or orderable from an eMenu at certain predefined times. Table 1 below includes entries for an example categories table:
















TABLE 1








Full






Parent


Image


Start
End


Category
Name
Description
URL
Publish
Order
time
time








Appetizers









Wings









Entrees









Sandwiches









Salads









Classic Burgers









Specialty Burgers









Sides









Sidelines
Substitute one of









these items for a









small upcharge








Soups & Chili









Desserts









Seasonal Menu









Gluten Free









Kids









Signature Cocktails









Classic Cocktails









Beer Cocktails









Bottled Beer









Draft Beer









Wine List








Wine List
House








Wine List
White








Wine List
Red









Sangrias









Margaritas &









Frozen Drinks









Non-Alcoholic









An example products table may include information identifying the name of the product and the category to which the product belongs. An optional description and/or image may be identified, as well. A flag indicating whether the product should be published to the eMenu also may be set. Optionally, inventory or stock may be maintained. This may, for example, help indicate when items should not be published and/or listed as available. An indication whether the product is “on special” or to be featured may also be provided.


Optionally, time periods defining specials may be included as well (e.g., designating lunch specials as times during any given day, themed specials as belonging to a season such as the winter holidays or one or more months for March Madness or the like, etc.). Pricing information may also be provided. This may take the form of a main price, and optional pricing schemes (e.g., for full versus half orders, different numbers of items such as wings or the like, etc.). FIG. 6 includes entries for an example products table. The same information may be provided for an example drinks table, e.g., as shown in FIG. 7. In certain exemplary embodiments, the products and drinks tables may be combined.


For filler information, images from a filler table may be used. The filler table may specify the height (in table cells, pixels, or other measure), and identify an image. An example filler table is provided below in Table 2:













TABLE 2







Width
Height
Image URL









1
3
/fillers/2 min_gameclock_bw.png



2
3
/fillers/4thQuarter_bw.png



2
3
/fillers/Bottom9th_bw.png



2
3
/fillers/hockey_darkblue_bw.png










Example Output File Format

Once the placement approach has determined the proper coordinates in the table for each menu item, an output file may be generated. As indicated above, the output file may be based on an underlying schema and may be formatted as an XML document, JSON file, and/or the like. The schema may specify fields for different item types. For instance, for menu items, a size attribute may be defined. Acceptable values may be 1, 2, or 4 (e.g., corresponding to the number of cells occupied by the item). As another example, coordinates may be defined, e.g., identifying the cell in the table, pixel location, or other position, where the top left corner of the element is to be placed, etc. An example JSON file is set forth in the attached Code Appendix.


The file may be accessed locally and/or from a network location via an application running on the patron-operated device. For instance, the application may include code for retrieving and parsing the file, and entering the data in a locally stored database, e.g., for possible subsequent local-based reproduction. The database may be read when the eMenu is opened, with the application retrieving information from the database and displaying the eMenu on the patron-operated device. FIGS. 8a-8b schematically show how a schema file may be used to organize elements in accordance with certain exemplary embodiments. More particularly, a schema file may direct the menu items to be displayed in the grid, e.g., as shown in the FIG. 8a example, or the FIG. 8b example, based on retrieved information linking the item numbers to specific coordinates, cells, or the like.



FIG. 9 is an example eMenu made in accordance with certain exemplary embodiments. As can be seen from FIG. 9, categories of items are provided as discrete and selectable elements in a horizontal line at the top of the example display. The appetizers menu is selected, and the appetizers category title is shown in large type in the center of the screen.


Menu items derived from the products table associated with the appetizers category are displayed in the table-based approach below the appetizers category title. The entry names are shown, together with their descriptions and prices. In the case of the cheese fries appetizer, two pricing models are provided—one for a full order with a first price, and another for a half order with a second price. As can be seen, there are three rows and four columns. The entries in the first two rows are 2×2 entries, with each including a text and an image. There is one 1×2 entry and two 1×1 entries in the last row.


The menu icon in the upper left corner may be used to enable patrons to access other content provided through the device such as, for example, the entertainment offerings noted above.


A user may select an item (e.g., through a touch interface provided by the device), confirm that it should purchased, and add it to an order. In certain example embodiments, coordination may be provided between the users at a given table and/or in a given party. For instance, because each person may be provided with his or her own device, all orders may be added to a single order and synchronized so that the order is placed at once. Similarly, updates may be pushed to a table at a time, e.g., once the order has been entered, prepared, delivered, when the check is ready, etc.


In certain exemplary embodiments, payment may be processed using the techniques set forth in U.S. Application Ser. No. 61/875,195, filed on Sep. 9, 2013, the entire contents of which are hereby incorporated by reference herein.


It will be appreciated that although certain exemplary embodiments involve a row-by-row top-to-bottom approach, the same or similar techniques may be used on a row-by-row bottom-up basis, in a column-by-column left-to-right or right-to-left approach, etc.


Similarly, although certain exemplary embodiments involve a left-to-right approach, right-to-left, top-to-bottom, bottom-to-top, and/or the like may be used in different exemplary embodiments.


It is noted that the example algorithms discussed herein are sufficiently generic to accommodate different numbers of columns in a grid, different numbers of cells used by menu items, and/or the like.


In view of the foregoing, it will be appreciated that certain exemplary embodiments provide automated eMenu GUI layout generation. The techniques of certain exemplary embodiments can accommodate dynamic patterns instead of simple repetitions, thereby created interesting visual aesthetic effects suitable for use with an electronic device such as a tablet or the like. The techniques of certain exemplary embodiments additionally or alternatively may provide for a coherent flow and organization of items instead of a more random placement. Thus, certain exemplary embodiments are able to maintain a desired menu item display order with an acceptable amount of deviation in an easy to implement, fast running, flexible and extensible approach.


While the preferred aspects of the invention have been illustrated and described herein, it will be apparent to one of ordinary skill in the art that various changes and/or modifications can be made. Thus, the specific description herein is meant to be exemplary only and is not intended to limit the invention beyond the terms of appended claims.












CODE APPENDIX















“products”: [


  {


   “productName”: “first item”,


   ...


   “size”: {


     “width”: 2,


     “height”: 1


   },


   “coord”: 1,


   ...


  },


  {


   “productName”: “Second item”,


   ...


   “size”: {


     “width”: 1,


     “height”: 1


   },


   “coord”: 0,


   ...


  },


  {


   “productName”: “Third item”,


   ...


   “size”: {


     “width”: 1,


     “height”: 2


   },


   “coord”: 3,


   ...


  }


 ]


{“categories”: [


    {


      “name”: “name 566517979”,


      “description”: “description 566517979”,


      “publish”: true,


      “id”: “98f01ef0-893c-4797-9242-63f1c2d73878”


    },


    {


      “name”: “name 840366165”,


      “description”: “description 840366165”,


      “publish”: true,


      “id”: “a2db3f82-f7af-4258-9405-108da9e77651”,


      “parentCategory”: {


       “id”: “98f01ef0-893c-4797-9242-63f1c2d73878”


      }


    },


    {


      “name”: “name 1761570653”,


      “description”: “description 1761570653”,


      “publish”: true,


      “id”: “7887308f-7b7c-4690-88af-b1d021ble39f”


    },


    {


      “name”: “name 360165935”,


      “description”: “description 360165935”,


      “publish”: true,


      “id”: “82cec2ad-700c-4dd8-8f94-12797463700a”,


      “parentCategory”: {


       “id”: “7887308f-7b7c-4690-88af-b1d021ble39f”


      }


    },


    {


      “name”: “name 1126268359”,


      “description”: “description 1126268359”,


      “publish”: true,


      “id”: “da103920-edbb-4fbc-bcec-9f6086278284”


    },


    {


      “name”: “name 1514852105”,


      “description”: “description 1514852105”,


      “publish”: true,


      “id”: “41703a9c-e203-45ab-8635-7ec230336890”


    },


    }


      “name”: “name 379580735”,


      “description”: “description 379580735”,


      “publish”: true,


      “id”: “4f27921f-6c21-4a4f-8892-8dbadd7de804”,


      “parentCategory”: {


       “id”: “41703a9c-e203-45ab-8635-7ec230336890”


      }


    },


    {


      “name”: “name 760843928”,


      “description”: “description 760843928”,


      “publish”: true,


      “id”: “32dc54f0-6b1b-44b1-99e1-a822b5d99c97”


    },


    {


      “name”: “name 1699865658”,


      “description”: “description 1699865658”,


      “publish”: true,


      “id”: “bb0070d4-3cc5-41a2-968c-a53b5a4fa901”


    },


    {


      “name”: “name 1263978666”,


      “description”: “description 1263978666”,


      “publish”: true,


      “id”: “fb677dd6-7dc0-486e-aed1-53945795e627”,


      “parentCategory”: {


       “id”: “bb0070d4-3cc5-41a2-968c-a53b5a4fa901”


      }


    },


    {


      “name”: “name 1894606224”,


      “description”: “description 1894606224”,


      “publish”: true,


      “id”: “f61eab3d-4704-4de5-960f-6cc9df074743”


    },


    {


      “name”: “name 1706277825”,


      “description”: “description 1706277825”,


      “publish”: true,


      “id”: “a9ee4bc1-e5fb-49e7-986b-fa617e3f1269”,


      “parentCategory”: {


       “id”: “f6leab3d-4704-4de5-960f-6cc9df074743”


      }


    },


    {


      “name”: “name 477238314”,


      “description”: “description 477238314”,


      “publish”: true,


      “id”: “1ca6be78-e300-4d19-9ae4-00f91c187165”


    },


    {


      “name”: “name 1063832317”,


      “description”: “description 1063832317”,


      “publish”: true,


      “id”: “04d7e93b-db26-404c-bd00-368b00af806e”,


      “parentCategory”: {


       “id”: “1ca6be78-e300-4d19-9ae4-00f91c187165”


      }


    },


    {


      “name”: “name 2045799559”,


      “description”: “description 2045799559”,


      “publish”: true,


      “id”: “e738d931-c98e-428c-8275-dbe331471f24”


    },


    {


      “name”: “name 1429461556”,


      “description”: “description 1429461556”,


      “publish”: true,


      “id”: “00fb2781-2ba0-4598-9d90-f7a4d985978e”


    },


    {


      “name”: “name 329466642”,


      “description”: “description 329466642”,


      “publish”: true,


      “id”: “50111793-d9fb-4fcc-8beb-2f5cf30baa56”,


      “parentCategory”: {


       “id”: “00fb2781-2ba0-4598-9d90-f7a4d985978e”


      }


    }


], “products”: [


    {


      “name”: “name 249988132”,


      “publish”: false,


      “special”: true,


      “id”: “20d79564-b07f-459e-blde-9f5767292601”,


      “category”: {


       “id”: “98f01ef0-893c-4797-9242-63f1c2d73878”


      }


    },


    {


      “name”: “name 1212192095”,


      “publish”: false,


      “special”: false,


      “id”: “ba7757cc-bc5c-4291-8242-c47e06ca1716”,


      “category”: {


       “id”: “a2db3f82-f7af-4258-9405-108da9e77651”


      }


    },


    {


      “name”: “name 428371761”,


      “publish”: false,


      “special”: false,


      “id”: “22f2e5de-814b-48b5-a114-9b4bc451e9dc”,


      “category”: {


       “id”: “7887308f-7b7c-4690-88af-b1d021ble39f”


      }


    },


    {


      “name”: “name 1399072120”,


      “fullImageUrl”: “http://image”,


      “publish”: false,


      “special”: false,


      “id”: “93df80a4-262f-4d2d-a3ef-a25f83059680”,


      “category”: {


       “id”: “82cec2ad-700c-4dd8-8f94-12797463700a”


      }


    },


    {


      “name”: “name 2105342212”,


      “fullImageUrl”: “http://image”,


      “publish”: false,


      “special”: true,


      “id”: “5e0062ae-fc01-4e60-afe6-09ace4c15e21”,


      “category”: {


       “id”: “da103920-edbb-4fbc-bcec-9f6086278284”


      }


    },


    {


      “name”: “name 1170107362”,


      “publish”: false,


      “special”: false,


      “id”: “68c10fb9-226b-4b38-8c0b-d2a485a5a3b9”,


      “category”: {


       “id”: “41703a9c-e203-45ab-8635-7ec230336890”


      }


    },


    {


      “name”: “name 974420088”,


      “fullImageUrl”: “http://image”,


      “publish”: false,


      “special”: true,


      “id”: “6d011566-ca02-456c-882b-85ad54f3696f”,


      “category”: {


       “id”: “4f27921f-6c21-4a4f-8892-8dbadd7de804”


      }


    },


    {


      “name”: “name 1900261394”,


      “publish”: false,


      “special”: false,


      “id”: “01643627-cle0-4035-91d1-235372a85644”,


      “category”: {


       “id”: “32dc54f0-6b1b-44b1-99e1-a822b5d99c97”


      }


    },


    {


      “name”: “name 747209554”,


      “publish”: false,


      “special”: true,


      “id”: “0a872950-f222-4d56-9cb4-9ccda0e1a078”,


      “category”: {


       “id”: “bb0070d4-3cc5-41a2-968c-a53b5a4fa901”


      }


    },


    {


      “name”: “name 1182621381”,


      “publish”: false,


      “special”: true,


      “id”: “2dcdfc4f-3a22-46c3-8889-d8bc4dfae98d”,


      “category”: {


       “id”: “fb677dd6-7dc0-486e-aed1-53945795e627”


      }


    }


], “layouts”: [


    {


      “productId”: “68c10fb9-226b-4b38-8c0b-d2a485a5a3b9”,


      “size”: {


       “width”: 1,


       “height”: 1


      },


      “position”: 6


    },


    {


      “productId”: “22f2e5de-814b-48b5-a114-9b4bc451e9dc”,


      “size”: {


       “width”: 1,


       “height”: 1


      },


      “position”: 2


    },


    {


      “productId”: “6d011566-ca02-456c-882b-85ad54f3696f”,


      “size”: {


       “width”: 2,


       “height”: 2


      },


      “position”: 12


    },


    {


      “productId”: “5e0062ae-fc01-4e60-afe6-09ace4c15e21”,


      “size”: {


       “width”: 2,


       “height”: 2


      },


      “position”: 4


    },


    {


      “productId”: “ba7757cc-bc5c-4291-8242-c47e06ca1716”,


      “size”: {


       “width”: 1,


       “height”: 1


      },


      “position”: 1


    },


    {


      “productId”: “0a872950-f222-4d56-9cb4-9ccda0e1a078”,


      “size”: {


       “width”: 1,


       “height”: 1


      },


      “position”: 11


    },


    {


      “productId”: “2dcdfc4f-3a22-46c3-8889-d8bc4dfae98d”,


      “size”: {


       “width”: 1,


       “height”: 1


      },


      “position”: 14


    },


    {


      “productId”: “93df80a4-262f-4d2d-a3ef-a25f83059680”,


      “size”: {


       “width”: 1,


       “height”: 2


      },


      “position”: 3


    },


    {


      “productId”: “20d79564-b07f-459e-blde-9f5767292601”,


      “size”: {


       “width”: 1,


       “height”: 1


      },


      “position”: 0


    },


    {


      “productId”: “01643627-cle0-4035-91d1-235372a85644”,


      “size”: {


       “width”: 1,


       “height”: 1


      },


      “position”: 10


    }


] }








Claims
  • 1. A method of formatting an electronic menu to be output to a display of an electronic device, the method comprising: defining a virtual grid-based layout including rows and columns that together define a plurality of grid cells;receiving input identifying a plurality of items to be included in the electronic menu, each said item having associated length and width dimensions corresponding to a number of grid cells, at least some of said items being indicated for inclusion in the electronic menu;automatically and programmatically arranging said items indicated for inclusion in the electronic menu in the grid cells of the grid-based layout in a manner that minimizes the number of unused grid cells in the virtual grid-based layout;storing, to a file on a non-transitory computer readable storage medium, a representation of the layout, following said arranging, the representation of the layout corresponding to the formatted electronic menu;making the file available to the electronic device in enabling the formatted electronic menu to be displayed on the display of the electronic device;maintaining numeric counter value for each of at least some of the items;determining whether the numeric counter value for an item drops below a predetermined threshold; andin response to a determination that the numeric counter value drops below the predetermined threshold, reformatting the electronic menu so as to exclude from the grid-based layout an entry for the item.
  • 2. The method of claim 1, wherein the numeric counter value of the item corresponds to an inventory amount of the item.
  • 3. The method of claim 1, wherein the formatted electronic menu includes a hierarchical arrangement of sections and sub-sections.
  • 4. The method of claim 3, wherein items in a sub-section cannot be reordered as a result of the arranging.
  • 5. The method of claim 3, further comprising defining different grid-based layouts for different sections.
  • 6. The method of claim 1, wherein the arranging preserves to the maximum extent possible the order of the items in the received input.
  • 7. The method of claim 1, wherein the received input further provides content information for each said item, the content information including a name, description, and price for the respective item.
  • 8. The method of claim 7, wherein the content information for each said item further includes an optional image field that specifies a location for an image file to be displayed with the respective item.
  • 9. The method of claim 8, wherein one of the length and width dimensions associated with each said item having a valid entry in its optional image field is increased.
  • 10. The method of claim 7, wherein the received input further indicates that at least one of the items is to be displayed as a highlighted feature, the length and width dimensions associated with each said highlighted feature both being increased.
  • 11. The method of claim 1, wherein the arranging comprises: adding to a source set a representation of each of the items identified by the received input, the elements in the source set being ordered in accordance with a desired display order for the corresponding items;dividing the grid-based layout into a plurality of segments, each said segment including a number of rows that is at least one row greater than a maximum size of the elements, as expressed in cells, and all columns in these rows, so that the segment rows and segment columns collectively define segment cells;(a) starting with a first segment, determining how many segment cells are unused in its last row and, in response to a determination that there are no unused segment cells in its last row, adding the first segment to the grid-based layout and making the next segment the first segment;(b) starting with the first segment, and starting at the beginning of the source set, identifying elements in the source set whose total cell space is less than or equal to the number of unused cells in the first row of the first segment, and removing those identified elements from the source set;(c) attempting to first reorder and if necessary then rotate at least some of the identified elements to fill the unused cells in the first row of the first segment;(d) in response to a successful attempt in (c), placing the reordered and/or rotated elements in the first segment in this reordered and/or rotated order and returning to the source set in their initial order any unplaced identified elements;(e) in response to an unsuccessful attempt in (c), searching the source set for an element from among the first predetermined number of elements in the source set that is appropriately-sized and/or re-orientable to be appropriately-sized to fill unused cells in the first row of the first segment;(f) in response to an appropriately-sized and/or re-orientable element being found in (e), removing the appropriately-sized element from the source set and considering it one of the identified elements, attempting to first reorder and if necessary then rotate at least some of the identified elements to fill the unused cells in the first row of the first segment, placing the reordered and/or rotated elements in the first segment in this reordered and/or rotated order and returning to the source set in their initial order any unplaced identified elements; and(g) if the source set is not empty, designating the row following the first row of the first segment as the new first row of the first segment and repeating (a)-(f), but otherwise defining the grid-based layout in accordance with the first segment.
  • 12. A computing device, comprising: processing resources including at least one processor and a memory;a non-transitory computer readable storage medium; andan input channel configured to receive input identifying a plurality of items to be included in an electronic menu, each said item having associated length and width dimensions corresponding to a number of grid cells, at least some of said items being indicated for inclusion in the electronic menu;wherein the processing resources are controllable to format the electronic menu using received input by executing instructions for at least: defining a virtual grid-based layout including rows and columns that together define a plurality of grid cells;automatically and programmatically arranging said items indicated for inclusion in the electronic menu in the grid cells of the grid-based layout in a manner that minimizes the number of unused grid cells in the virtual grid-based layout;storing, to a file on the non-transitory computer readable storage medium, a representation of the layout, following said arranging, the representation of the layout corresponding to the formatted electronic menu;making the file available to electronic devices in order to in turn enable the electronic devices to display and enable user interaction with the formatted electronic menu;maintaining numeric counter value for each of at least some of the items;determining whether the numeric counter value for an item drops below a predetermined threshold; andin response to a determination that the numeric counter value drops below the predetermined threshold, reformatting the electronic menu so as to exclude from the grid-based layout an entry for the item.
  • 13. The computing device of claim 12, wherein the numeric counter value of the item corresponds to an inventory amount of the item.
  • 14. The computing device of claim 12, wherein the formatted electronic menu includes a hierarchical arrangement of sections and sub-sections.
  • 15. The computing device of claim 14, wherein items in a sub-section cannot be reordered as a result of the arranging.
  • 16. The computing device of claim 14, further comprising defining different grid-based layouts for different sections.
  • 17. The computing device of claim 12, wherein the arranging preserves to the maximum extent possible the order of the items in the received input.
  • 18. The computing device of claim 1, wherein the received input further provides content information for each said item, the content information including a name, description, and price for the respective item.
  • 19. The computing device of claim 18, wherein the content information for each said item further includes an optional image field that specifies a location for an image file to be displayed with the respective item.
  • 20. A non-transitory computer readable storage medium tangibly storing instructions that, when executed, perform the method of claim 1.
Parent Case Info

This application is a continuation of U.S. application Ser. No. 17/003,020, filed Aug. 26, 2022, which is a continuation of U.S. application Ser. No. 15/924,816, filed on Mar. 19, 2018, now U.S. Pat. No. 10,761,686 issued on Sep. 1, 2020, which is a continuation of U.S. application Ser. No. 14/535,902 filed Nov. 7, 2014 now U.S. Pat. No. 9,921,717 issued Mar. 20, 2018, which claims the benefit of U.S. Provisional Application No. 61/901,400, filed on Nov. 7, 2013, the entire contents of which are hereby incorporated by reference herein.

US Referenced Citations (689)
Number Name Date Kind
3807541 Kortenhaus Apr 1974 A
3982620 Kotenhaus Sep 1976 A
4008369 Theurer et al. Feb 1977 A
4186438 Benson Jan 1980 A
4232295 McConnell Nov 1980 A
4335809 Wain Jun 1982 A
4335908 Burge Jun 1982 A
4336935 Goldfarb Jun 1982 A
4356509 Skerlos et al. Oct 1982 A
4369442 Werth et al. Jan 1983 A
4375287 Smith Mar 1983 A
4412292 Sedam Oct 1983 A
4413260 Siegel et al. Nov 1983 A
4521014 Sitrick Jun 1985 A
4528643 Freeny Jul 1985 A
4558413 Schmidt et al. Dec 1985 A
4572509 Sitrick Feb 1986 A
4577333 Lewis et al. Mar 1986 A
4582324 Koza Apr 1986 A
4588187 Dell May 1986 A
4593904 Graves Jun 1986 A
4597058 Izumi Jun 1986 A
4636951 Harlick Jan 1987 A
4652998 Koza Mar 1987 A
4654799 Ogaki Mar 1987 A
4658093 Hellman Apr 1987 A
4667802 Verduin et al. May 1987 A
4674055 Ogaki et al. Jun 1987 A
4675538 Epstein Jun 1987 A
4677311 Morita Jun 1987 A
4677565 Ogaki Jun 1987 A
4703465 Parker Oct 1987 A
4704725 Harvey et al. Nov 1987 A
4707804 Leal Nov 1987 A
4722053 Dubno Jan 1988 A
4761684 Clark Aug 1988 A
4766581 Korn et al. Aug 1988 A
4787050 Suzuki Nov 1988 A
4792849 McCalley Dec 1988 A
4807052 Amano Feb 1989 A
4811325 Sharples Mar 1989 A
4814972 Winter et al. Mar 1989 A
4825054 Rust Apr 1989 A
4829570 Schotz May 1989 A
4852154 Lewis et al. Jul 1989 A
4857714 Sunyich Aug 1989 A
4868832 Marrington Sep 1989 A
4885694 Pray et al. Dec 1989 A
4905279 Nishio Feb 1990 A
4920432 Eggers Apr 1990 A
4922420 Nakagawa May 1990 A
4924378 Hershey May 1990 A
4926485 Yamashita May 1990 A
4937807 Weitz Jun 1990 A
4949187 Cohen Aug 1990 A
4953159 Hayden et al. Aug 1990 A
4956768 Sidi Sep 1990 A
4958835 Tashiro Sep 1990 A
4965675 Masashi et al. Oct 1990 A
4977593 Ballance Dec 1990 A
4999806 Ow Mar 1991 A
5008814 Mathur Apr 1991 A
5012121 Hammond Apr 1991 A
5027426 Chiocca Jun 1991 A
5041921 Scheffler Aug 1991 A
5046093 Wachob Sep 1991 A
5053758 Cornett et al. Oct 1991 A
5058089 Yoshimara Oct 1991 A
5077607 Johnson et al. Dec 1991 A
5081534 Geiger et al. Jan 1992 A
5101451 Ash et al. Mar 1992 A
5101499 Streck et al. Mar 1992 A
5106097 Levine Apr 1992 A
5117407 Vogel May 1992 A
5128862 Mueller Jul 1992 A
5138712 Corbin Aug 1992 A
5148159 Clark et al. Sep 1992 A
5155847 Kirouac Oct 1992 A
5159678 Wengelski et al. Oct 1992 A
5163131 Row Nov 1992 A
5166886 Molnar Nov 1992 A
5172413 Bradley et al. Dec 1992 A
5180309 Egnor Jan 1993 A
5189630 Barstow et al. Feb 1993 A
5191573 Hair Mar 1993 A
5191611 Lang Mar 1993 A
5192999 Graczyk Mar 1993 A
5197094 Tillery Mar 1993 A
5203028 Shiraishi Apr 1993 A
5210854 Beaverton et al. May 1993 A
5214761 Barrett et al. May 1993 A
5222134 Waite et al. Jun 1993 A
5228015 Arbiter et al. Jul 1993 A
5231157 Herzig et al. Jul 1993 A
5237157 Kaplan Aug 1993 A
5237322 Heberle Aug 1993 A
5239480 Huegel Aug 1993 A
5250747 Tsumura Oct 1993 A
5252775 Urano Oct 1993 A
5260999 Wyman Nov 1993 A
5261104 Bertram et al. Nov 1993 A
5262875 Mincer et al. Nov 1993 A
5276866 Paolini Jan 1994 A
5278904 Servi Jan 1994 A
5282028 Johnson et al. Jan 1994 A
5289476 Johnson et al. Feb 1994 A
5289546 Hetherington Feb 1994 A
5315161 Robinson May 1994 A
5315711 Barone et al. May 1994 A
5319455 Hoarty et al. Jun 1994 A
5321846 Yokota et al. Jun 1994 A
5327230 Dockery Jul 1994 A
5335313 Douglas Aug 1994 A
5339095 Redford Aug 1994 A
5339413 Koval Aug 1994 A
5341350 Frank Aug 1994 A
5355302 Martin et al. Oct 1994 A
5357276 Banker Oct 1994 A
5369778 SanSoucie Nov 1994 A
5375206 Hunter Dec 1994 A
5386251 Movshovich Jan 1995 A
5389950 Bouton Feb 1995 A
5404505 Levinson Apr 1995 A
5406634 Anderson et al. Apr 1995 A
5408417 Wilder Apr 1995 A
5410326 Goldstein Apr 1995 A
5410703 Nilsson et al. Apr 1995 A
5418713 Allen May 1995 A
5420923 Beyers May 1995 A
5428252 Walker Jun 1995 A
5428606 Moskowitz Jun 1995 A
5431492 Rothschild Jul 1995 A
5440632 Bacon et al. Aug 1995 A
5444499 Saitoh Aug 1995 A
5445295 Brown Aug 1995 A
5455619 Truckenmiller et al. Oct 1995 A
5455926 Keele Oct 1995 A
5457305 Akel Oct 1995 A
5465213 Ross Nov 1995 A
5465329 Whistler Nov 1995 A
5467326 Miyashita et al. Nov 1995 A
5469370 Ostrover et al. Nov 1995 A
5469573 McGill et al. Nov 1995 A
5471576 Yee Nov 1995 A
5473746 Pritt et al. Dec 1995 A
5475835 Hickey Dec 1995 A
5481509 Knowles Jan 1996 A
5487167 Dinallo et al. Jan 1996 A
5489103 Okamoto Feb 1996 A
5495610 Shing Feb 1996 A
5496178 Back Mar 1996 A
5499921 Sone Mar 1996 A
5511000 Kaloi Apr 1996 A
5513117 Small Apr 1996 A
5515173 Mankovitz et al. May 1996 A
5519435 Anderson May 1996 A
5519457 Nishigaki et al. May 1996 A
5521631 Budow et al. May 1996 A
5521918 Kim May 1996 A
5521922 Fujinami et al. May 1996 A
5523781 Brusaw Jun 1996 A
5528732 Klotz Jun 1996 A
5532734 Goertz Jul 1996 A
5532991 Sasaki Jul 1996 A
5546039 Hewitt et al. Aug 1996 A
5548729 Akiyoshi Aug 1996 A
5550577 Verbiest Aug 1996 A
5554968 Lee Sep 1996 A
5555244 Gupta Sep 1996 A
5557515 Abbruzzese et al. Sep 1996 A
5557541 Schulhof Sep 1996 A
5557724 Sampat et al. Sep 1996 A
5559505 McNair Sep 1996 A
5559549 Hendricks Sep 1996 A
5559714 Banks et al. Sep 1996 A
5561709 Remillard Oct 1996 A
5565908 Ahmad Oct 1996 A
5566237 Dobbs Oct 1996 A
5570363 Holm Oct 1996 A
5578999 Matsuzawa et al. Nov 1996 A
5579404 Fielder et al. Nov 1996 A
5583561 Baker et al. Dec 1996 A
5583937 Ullrich et al. Dec 1996 A
5583994 Rangan Dec 1996 A
5583995 Gardner et al. Dec 1996 A
5592482 Abraham Jan 1997 A
5592551 Lett Jan 1997 A
5592611 Midgely et al. Jan 1997 A
5594509 Florin Jan 1997 A
5596702 Stucka et al. Jan 1997 A
5607099 Yeh et al. Mar 1997 A
5612581 Kageyama Mar 1997 A
5613909 Stelovsky Mar 1997 A
5616876 Gluts Apr 1997 A
5617565 Augenbraun et al. Apr 1997 A
5619247 Russo Apr 1997 A
5619249 Billock et al. Apr 1997 A
5619250 McClellan et al. Apr 1997 A
5619698 Lillich Apr 1997 A
5623666 Pike Apr 1997 A
5631693 Wunderlich et al. May 1997 A
5636276 Brugger Jun 1997 A
5638426 Lewis Jun 1997 A
5642337 Oskay et al. Jun 1997 A
5643831 Ochiai et al. Jul 1997 A
5644714 Kikinis Jul 1997 A
5644766 Coy Jul 1997 A
5654714 Takahashi et al. Aug 1997 A
5659466 Norris et al. Aug 1997 A
5661517 Budow et al. Aug 1997 A
5661802 Nilssen Aug 1997 A
5663756 Blahut et al. Sep 1997 A
5668592 Spaulding Sep 1997 A
5668778 Quazi Sep 1997 A
5668788 Allison Sep 1997 A
5675734 Hair Oct 1997 A
5680533 Yamato et al. Oct 1997 A
5684716 Freeman Nov 1997 A
5689641 Ludwig et al. Nov 1997 A
5691778 Song Nov 1997 A
5691964 Niederlein et al. Nov 1997 A
5696914 Nahaboo et al. Dec 1997 A
5697844 Von Kohorn Dec 1997 A
5703795 Mankowitz Dec 1997 A
5708811 Arendt Jan 1998 A
5712976 Falcon et al. Jan 1998 A
5713024 Halladay Jan 1998 A
5715416 Baker Feb 1998 A
5717452 Janin et al. Feb 1998 A
5721583 Harada et al. Feb 1998 A
5721815 Ottesen et al. Feb 1998 A
5721827 Logan et al. Feb 1998 A
5721829 Dunn et al. Feb 1998 A
5724525 Beyers et al. Mar 1998 A
5726909 Krikorian Mar 1998 A
5734719 Tsevdos et al. Mar 1998 A
5734961 Castille Mar 1998 A
5739451 Winksy et al. Apr 1998 A
5743745 Reintjes Apr 1998 A
5745391 Topor Apr 1998 A
5748254 Harrison et al. May 1998 A
5748468 Notenboom et al. May 1998 A
5748954 Mauldin May 1998 A
5751336 Aggarwal et al. May 1998 A
5752232 Basore et al. May 1998 A
5757936 Lee May 1998 A
5758340 Nail May 1998 A
5761655 Hoffman Jun 1998 A
5762552 Vuong Jun 1998 A
5774527 Handelman et al. Jun 1998 A
5774668 Choqiuer Jun 1998 A
5774672 Funahashi Jun 1998 A
5778395 Whiting Jul 1998 A
5781889 Martin et al. Jul 1998 A
5786784 Gaudichon Jul 1998 A
5790172 Imanaka Aug 1998 A
5790671 Cooper Aug 1998 A
5790856 Lillich Aug 1998 A
5790935 Payton Aug 1998 A
5793364 Bolanos et al. Aug 1998 A
5793980 Glaser Aug 1998 A
5798785 Hendricks Aug 1998 A
5802283 Grady et al. Sep 1998 A
5802558 Pierce Sep 1998 A
5802599 Cabrera Sep 1998 A
5805804 Laursen et al. Sep 1998 A
5808224 Kato Sep 1998 A
5809246 Goldman Sep 1998 A
5812643 Schelberg et al. Sep 1998 A
5815146 Youden et al. Sep 1998 A
5825884 Zdepski et al. Oct 1998 A
5828343 MacDonald et al. Oct 1998 A
5831555 Yu et al. Nov 1998 A
5831663 Waterhouse et al. Nov 1998 A
5832024 Schotz et al. Nov 1998 A
5832287 Atalla Nov 1998 A
5835843 Haddad Nov 1998 A
5842869 McGregor et al. Dec 1998 A
5845104 Rao Dec 1998 A
5845256 Pescitelli et al. Dec 1998 A
5848398 Martin Dec 1998 A
5851149 Xidos et al. Dec 1998 A
5854887 Kindell Dec 1998 A
5857020 Peterson Jan 1999 A
5857707 Devlin Jan 1999 A
5862324 Collins Jan 1999 A
5864811 Tran et al. Jan 1999 A
5864868 Contois Jan 1999 A
5864870 Guck Jan 1999 A
5867714 Todd Feb 1999 A
5870721 Norris Feb 1999 A
5880386 Wachi et al. Mar 1999 A
5880769 Nemirofsky et al. Mar 1999 A
5884028 Kindell Mar 1999 A
5884298 Smith Mar 1999 A
5887139 Madison, Jr. et al. Mar 1999 A
5887193 Takahashi Mar 1999 A
5893162 Lau et al. Apr 1999 A
5895455 Bellinger et al. Apr 1999 A
5896094 Narisada et al. Apr 1999 A
5903266 Berstis et al. May 1999 A
5913040 Rakavy Jun 1999 A
5914712 Sartain et al. Jun 1999 A
5915094 Kouloheris Jun 1999 A
5915238 Tjaden Jun 1999 A
5917537 Lightfoot Jun 1999 A
5917835 Barrett Jun 1999 A
5918213 Bernard et al. Jun 1999 A
5920700 Gordon et al. Jul 1999 A
5920702 Johnson Jul 1999 A
5923885 Johnson Jul 1999 A
5926531 Petite Jul 1999 A
5926624 Katz et al. Jul 1999 A
5930765 Martin Jul 1999 A
5931908 Gerba Aug 1999 A
5933090 Christenson Aug 1999 A
5940504 Griswold Aug 1999 A
5949411 Doerr et al. Sep 1999 A
5949688 Montoya Sep 1999 A
5953429 Wakai et al. Sep 1999 A
5956716 Kenner et al. Sep 1999 A
5959869 Miller Sep 1999 A
5959945 Kleiman Sep 1999 A
5960167 Roberts et al. Sep 1999 A
5963916 Kaplan Oct 1999 A
5966495 Takahashi Oct 1999 A
5970467 Alavi Oct 1999 A
5978855 Metz et al. Nov 1999 A
5978912 Rakavy et al. Nov 1999 A
5980261 Mino et al. Nov 1999 A
5999499 Pines et al. Dec 1999 A
5999624 Hopkins Dec 1999 A
6002720 Yurt Dec 1999 A
6005599 Asai et al. Dec 1999 A
6008735 Chiloyan et al. Dec 1999 A
6009274 Fletcher Dec 1999 A
6011758 Dockes et al. Jan 2000 A
6018337 Peters Jan 2000 A
6018726 Tsumura Jan 2000 A
6021386 Davis Feb 2000 A
6023705 Bellinger et al. Feb 2000 A
6025868 Russo Feb 2000 A
6034925 Wehmeyer Mar 2000 A
6038591 Wolfe et al. Mar 2000 A
6040829 Croy et al. Mar 2000 A
6041354 Biliris et al. Mar 2000 A
6049891 Inamoto Apr 2000 A
6054987 Richardson Apr 2000 A
6055573 Gardenswartz et al. Apr 2000 A
6057874 Michaud May 2000 A
6069672 Claassen May 2000 A
6072982 Haddad Jun 2000 A
6107937 Hamada Aug 2000 A
6118450 Proehl et al. Sep 2000 A
6124804 Kitao et al. Sep 2000 A
6131088 Hill Oct 2000 A
6131121 Mattaway et al. Oct 2000 A
6134547 Huxley et al. Oct 2000 A
6138150 Nichols et al. Oct 2000 A
6148142 Anderson Nov 2000 A
6151077 Vogel et al. Nov 2000 A
6151634 Glaser Nov 2000 A
6154207 Farris et al. Nov 2000 A
6157935 Tran et al. Dec 2000 A
6161059 Tedesco et al. Dec 2000 A
6167358 Othmer et al. Dec 2000 A
6170060 Mott et al. Jan 2001 B1
6173172 Masuda et al. Jan 2001 B1
6175861 Williams, Jr. et al. Jan 2001 B1
6182126 Nathan et al. Jan 2001 B1
6185184 Way et al. Feb 2001 B1
6185619 Joffe et al. Feb 2001 B1
6191780 Martin et al. Feb 2001 B1
6192340 Abecassis Feb 2001 B1
6195732 Adams et al. Feb 2001 B1
6198408 Cohen Mar 2001 B1
6202060 Tran Mar 2001 B1
6209060 Machida Mar 2001 B1
6212138 Kalis et al. Apr 2001 B1
6216175 Sliger et al. Apr 2001 B1
6216227 Goldstein et al. Apr 2001 B1
6219692 Stiles Apr 2001 B1
6223209 Watson Apr 2001 B1
6226412 Schwab May 2001 B1
6226715 Van Der Wolf et al. May 2001 B1
6240550 Nathan et al. May 2001 B1
6243725 Hempleman et al. Jun 2001 B1
6247022 Yankowski Jun 2001 B1
6256773 Bowman-Amuah Jul 2001 B1
6262569 Carr et al. Jul 2001 B1
6280327 Leifer et al. Aug 2001 B1
6282709 Reha et al. Aug 2001 B1
6288688 Hughes et al. Sep 2001 B1
6288991 Kajiyama et al. Sep 2001 B1
6289382 Bowman-Amuah Sep 2001 B1
6292443 Awazu et al. Sep 2001 B1
6298373 Burns et al. Oct 2001 B1
6301710 Fujiwara Oct 2001 B1
6302793 Fertitta et al. Oct 2001 B1
6308204 Nathan et al. Oct 2001 B1
6311214 Rhoads Oct 2001 B1
6315572 Glaser Nov 2001 B1
6323911 Schein et al. Nov 2001 B1
6332025 Takahashi et al. Dec 2001 B2
6336219 Nathan Jan 2002 B1
6341166 Basel Jan 2002 B1
6344862 Williams et al. Feb 2002 B1
6346951 Mastronardi Feb 2002 B1
6353820 Edwards et al. Mar 2002 B1
6356971 Katz et al. Mar 2002 B1
6359616 Ogura et al. Mar 2002 B1
6359661 Nickum Mar 2002 B1
6370580 Kriegsman Apr 2002 B2
6381575 Martin et al. Apr 2002 B1
6384737 Hsu et al. May 2002 B1
6393584 McLaren et al. May 2002 B1
6396480 Schindler et al. May 2002 B1
6397189 Martin et al. May 2002 B1
6407987 Abraham Jun 2002 B1
6408435 Sato Jun 2002 B1
6408437 Hendricks et al. Jun 2002 B1
6421651 Tedesco et al. Jul 2002 B1
6425125 Fries et al. Jul 2002 B1
6430537 Tedesco et al. Aug 2002 B1
6430738 Gross et al. Aug 2002 B1
6434678 Menzel Aug 2002 B1
6438450 DiLorenzo Aug 2002 B1
6442549 Schneider Aug 2002 B1
6446080 Van Ryzin et al. Sep 2002 B1
6446130 Grapes Sep 2002 B1
6449688 Peters et al. Sep 2002 B1
6470496 Kato et al. Oct 2002 B1
6473794 Guheen et al. Oct 2002 B1
6488508 Okamoto Dec 2002 B2
6490570 Numaoka Dec 2002 B1
6493871 McGuire et al. Dec 2002 B1
6496927 McGrane et al. Dec 2002 B1
6498855 Kokkosoulis et al. Dec 2002 B1
6522707 Brandstetter et al. Feb 2003 B1
6535911 Miller et al. Mar 2003 B1
6538558 Sakazume et al. Mar 2003 B2
6543052 Ogasawara Apr 2003 B1
6544122 Araki et al. Apr 2003 B2
6549719 Mankovitz Apr 2003 B2
D475029 Nathan et al. May 2003 S
6560651 Katz et al. May 2003 B2
6570507 Lee et al. May 2003 B1
6571282 Bowman-Amuah May 2003 B1
6577735 Bharat Jun 2003 B1
6578051 Mastronardi et al. Jun 2003 B1
6587403 Keller et al. Jul 2003 B1
6590838 Gerlings et al. Jul 2003 B1
6598230 Ballhorn Jul 2003 B1
6622307 Ho Sep 2003 B1
6628939 Paulsen Sep 2003 B2
6629318 Radha et al. Sep 2003 B1
6643620 Contolini et al. Nov 2003 B1
6643690 Duursma et al. Nov 2003 B2
6654801 Mann et al. Nov 2003 B2
6658090 Harjunen et al. Dec 2003 B1
6662231 Drosset et al. Dec 2003 B1
6702585 Okamoto Mar 2004 B2
6724974 Naruto et al. Apr 2004 B2
6728824 Chen Apr 2004 B1
6728956 Ono Apr 2004 B2
6728966 Arsenault et al. Apr 2004 B1
6744882 Gupta et al. Jun 2004 B1
6751794 McCaleb et al. Jun 2004 B1
6755744 Nathan et al. Jun 2004 B1
6762585 Liao Jul 2004 B2
6789215 Rupp et al. Sep 2004 B1
6816578 Kredo et al. Nov 2004 B1
6850252 Hoffberg Feb 2005 B1
6898161 Nathan May 2005 B1
6904592 Johnson Jun 2005 B1
6920614 Schindler et al. Jul 2005 B1
6928653 Ellis et al. Aug 2005 B1
6934700 Ijdens et al. Aug 2005 B1
6942574 LeMay et al. Sep 2005 B1
6974076 Siegel Dec 2005 B1
7024485 Dunning et al. Apr 2006 B2
7073172 Chamberlain Jul 2006 B2
7103583 Baum et al. Sep 2006 B1
7107109 Nathan et al. Sep 2006 B1
7111129 Percival Sep 2006 B2
7114013 Bakke et al. Sep 2006 B2
7124194 Nathan et al. Oct 2006 B2
7181458 Higashi Feb 2007 B1
7188352 Nathan et al. Mar 2007 B2
7195157 Swartz et al. Mar 2007 B2
7198571 LeMay et al. Apr 2007 B2
7205471 Looney et al. Apr 2007 B2
7206417 Nathan Apr 2007 B2
7210141 Nathan et al. Apr 2007 B1
7231656 Nathan Jun 2007 B1
7237198 Chaney Jun 2007 B1
7281652 Foss Oct 2007 B2
7293277 Nathan Nov 2007 B1
7356831 Nathan Apr 2008 B2
7406529 Reed Jul 2008 B2
7415707 Taguchi et al. Aug 2008 B2
7418474 Schwab Aug 2008 B2
7424731 Nathan et al. Sep 2008 B1
7430736 Nguyen et al. Sep 2008 B2
7433832 Bezos et al. Oct 2008 B1
7448057 Nathan Nov 2008 B1
7483958 Elabbady et al. Jan 2009 B1
7500192 Mastronardi Mar 2009 B2
7512632 Mastronardi et al. Mar 2009 B2
7519442 Nathan et al. Apr 2009 B2
7522631 Brown et al. Apr 2009 B1
7533182 Wurtzel et al. May 2009 B2
7549919 Nathan et al. Jun 2009 B1
7574727 Nathan et al. Aug 2009 B2
7647613 Drakoulis et al. Jan 2010 B2
7657910 McAulay et al. Feb 2010 B1
D616414 Nathan et al. May 2010 S
7749083 Nathan et al. Jul 2010 B2
7757264 Nathan Jul 2010 B2
7761538 Lin et al. Jul 2010 B2
7770165 Olson et al. Aug 2010 B2
7778879 Nathan et al. Aug 2010 B2
7783593 Espino Aug 2010 B2
7783774 Nathan et al. Aug 2010 B2
7793331 Nathan et al. Sep 2010 B2
7819734 Nathan et al. Oct 2010 B2
7822687 Brillon et al. Oct 2010 B2
D629382 Nathan et al. Dec 2010 S
D642553 Nathan et al. Aug 2011 S
7922178 Nathan et al. Aug 2011 B2
7992178 Nathan et al. Aug 2011 B1
7996873 Nathan et al. Aug 2011 B1
8015200 Seiflien et al. Sep 2011 B2
8028318 Nathan Sep 2011 B2
8032879 Nathan et al. Oct 2011 B2
8037412 Nathan et al. Oct 2011 B2
8052512 Nathan et al. Nov 2011 B2
8074253 Nathan Dec 2011 B1
8103589 Nathan et al. Jan 2012 B2
8151304 Nathan et al. Apr 2012 B2
8165318 Nathan et al. Apr 2012 B2
8189819 Nathan May 2012 B2
8214874 Nathan Jul 2012 B2
D665375 Garneau et al. Aug 2012 S
8292712 Nathan et al. Oct 2012 B2
8332895 Nathan et al. Dec 2012 B2
8429530 Neuman et al. Apr 2013 B2
8661477 Nathan et al. Feb 2014 B2
9177314 Uzo Nov 2015 B2
20010016815 Takahashi et al. Aug 2001 A1
20010023403 Martin et al. Sep 2001 A1
20010030660 Zainoulline Oct 2001 A1
20010030912 Kalis et al. Oct 2001 A1
20010037367 Iyer Nov 2001 A1
20010044725 Matsuda et al. Nov 2001 A1
20020002079 Martin et al. Jan 2002 A1
20020002483 Siegel et al. Jan 2002 A1
20020016968 Nathan et al. Feb 2002 A1
20020113824 Myers Aug 2002 A1
20020116476 Eyal et al. Aug 2002 A1
20020118949 Jones et al. Aug 2002 A1
20020120925 Logan Aug 2002 A1
20020123331 Lehaff et al. Sep 2002 A1
20020126141 Mastronardi Sep 2002 A1
20020129036 Ho Yuen Lok et al. Sep 2002 A1
20020162104 Raike et al. Oct 2002 A1
20030004833 Pollak et al. Jan 2003 A1
20030005099 Sven et al. Jan 2003 A1
20030006911 Smith et al. Jan 2003 A1
20030008703 Gauselmann Jan 2003 A1
20030018740 Sonoda et al. Jan 2003 A1
20030027120 Jean Feb 2003 A1
20030031096 Nathan et al. Feb 2003 A1
20030041093 Yamane et al. Feb 2003 A1
20030065639 Fiennes et al. Apr 2003 A1
20030076380 Yusef et al. Apr 2003 A1
20030088538 Ballard May 2003 A1
20030093790 Logan et al. May 2003 A1
20030101450 Davidsson et al. May 2003 A1
20030104865 Itkis et al. Jun 2003 A1
20030108164 Laurin et al. Jun 2003 A1
20030135424 Davis et al. Jul 2003 A1
20030144910 Flaherty et al. Jul 2003 A1
20030176218 LeMay et al. Sep 2003 A1
20030191753 Hoch Oct 2003 A1
20030208586 Mastronardi et al. Nov 2003 A1
20030225834 Lee et al. Dec 2003 A1
20040010800 Goci Jan 2004 A1
20040025185 Goci et al. Feb 2004 A1
20040085334 Reaney May 2004 A1
20040103150 Ogdon et al. May 2004 A1
20040145477 Easter Jul 2004 A1
20040158555 Seedman et al. Aug 2004 A1
20040204220 Fried et al. Oct 2004 A1
20040205171 Nathan et al. Oct 2004 A1
20040220926 Lamkin et al. Nov 2004 A1
20050048816 Higgins Mar 2005 A1
20050060405 Nathan et al. Mar 2005 A1
20050073782 Nathan Apr 2005 A1
20050086172 Stefik Apr 2005 A1
20050111671 Nathan May 2005 A1
20050125833 Nathan et al. Jun 2005 A1
20050201254 Looney et al. Sep 2005 A1
20050237321 Young Oct 2005 A1
20050267819 Kaplan Dec 2005 A1
20060018208 Nathan et al. Jan 2006 A1
20060031896 Pulitzer Feb 2006 A1
20060035707 Nguyen et al. Feb 2006 A1
20060062094 Nathan et al. Mar 2006 A1
20060143575 Sauermann Jun 2006 A1
20060227673 Yamashita et al. Oct 2006 A1
20060239131 Nathan et al. Oct 2006 A1
20060293773 Nathan et al. Dec 2006 A1
20070025701 Kawasaki et al. Feb 2007 A1
20070038727 Bailey Feb 2007 A1
20070086280 Cappello et al. Apr 2007 A1
20070121430 Nathan May 2007 A1
20070139410 Abe et al. Jun 2007 A1
20070142022 Madonna et al. Jun 2007 A1
20070160224 Nathan Jul 2007 A1
20070204263 Nathan et al. Aug 2007 A1
20070209053 Nathan Sep 2007 A1
20070220052 Kudo et al. Sep 2007 A1
20070247979 Brillon et al. Oct 2007 A1
20080065925 Oliverio et al. Mar 2008 A1
20080066016 Dowdy et al. Mar 2008 A1
20080069545 Nathan et al. Mar 2008 A1
20080077962 Nathan Mar 2008 A1
20080086379 Dion et al. Apr 2008 A1
20080096659 Kreloff et al. Apr 2008 A1
20080137849 Nathan Jun 2008 A1
20080155588 Roberts et al. Jun 2008 A1
20080168807 Dion et al. Jul 2008 A1
20080171594 Fedesna et al. Jul 2008 A1
20080195443 Nathan et al. Aug 2008 A1
20080198271 Malki Aug 2008 A1
20080222199 Tiu et al. Sep 2008 A1
20080239887 Tooker et al. Oct 2008 A1
20080243624 Perry Oct 2008 A1
20080305738 Khedouri et al. Dec 2008 A1
20090030802 Plotnick et al. Jan 2009 A1
20090037969 Nathan et al. Feb 2009 A1
20090042632 Guenster et al. Feb 2009 A1
20090063976 Bull et al. Mar 2009 A1
20090070341 Mastronardi et al. Mar 2009 A1
20090091087 Wasmund Apr 2009 A1
20090100092 Seiflein et al. Apr 2009 A1
20090138111 Mastronardi May 2009 A1
20090172565 Jackson et al. Jul 2009 A1
20090177301 Hayes Jul 2009 A1
20090241061 Asai et al. Sep 2009 A1
20090265734 Dion et al. Oct 2009 A1
20090282491 Nathan Nov 2009 A1
20090287696 Galuten Nov 2009 A1
20090307314 Smith et al. Dec 2009 A1
20100042505 Straus Feb 2010 A1
20100138780 Marano Jun 2010 A1
20100211818 Nathan et al. Aug 2010 A1
20100241259 Nathan Sep 2010 A1
20100247081 Victoria Pons Sep 2010 A1
20100269066 Nathan Oct 2010 A1
20100299232 Nathan et al. Nov 2010 A1
20110066943 Brillon et al. Mar 2011 A1
20110119194 McLees May 2011 A1
20110191194 Lutnick et al. Aug 2011 A1
20110246517 Nathan et al. Oct 2011 A1
20110270894 Mastronardi et al. Nov 2011 A1
20110283236 Beaumier et al. Nov 2011 A1
20110321026 Nathan et al. Dec 2011 A1
20120009985 Nathan et al. Jan 2012 A1
20120053713 Nathan Mar 2012 A1
20120105464 Franceus May 2012 A1
20120143732 Nathan et al. Jun 2012 A1
20120150614 Dion et al. Jun 2012 A1
20120158531 Dion et al. Jun 2012 A1
20120166965 Nathan et al. Jun 2012 A1
20120240140 Nathan Sep 2012 A1
20120284196 Vilmos Nov 2012 A1
20120323652 Mastronardi et al. Dec 2012 A1
20130021281 Tse et al. Jan 2013 A1
20130040715 Nathan et al. Feb 2013 A1
20130044995 Cappello et al. Feb 2013 A1
20130070093 Rivera et al. Mar 2013 A1
20130091054 Nathan et al. Apr 2013 A1
20130239049 Perrodin Sep 2013 A1
20140026154 Nathan Jan 2014 A1
20140089183 Allen Mar 2014 A1
20140114775 Cloin Apr 2014 A1
20160078434 Huxham Mar 2016 A1
Foreign Referenced Citations (138)
Number Date Country
199954012 Apr 2000 AU
1340939 Mar 2002 CN
3406058 Aug 1985 DE
3723737 Jan 1988 DE
3820835 Jan 1989 DE
3815071 Nov 1989 DE
4244198 Jun 1994 DE
19539172 Sep 1996 DE
19610739 Sep 1997 DE
19904007 Aug 2000 DE
0082077 Jun 1983 EP
0140593 May 1985 EP
0256921 Feb 1988 EP
0283304 Sep 1988 EP
0283350 Sep 1988 EP
0309298 Mar 1989 EP
0313359 Apr 1989 EP
0340787 Nov 1989 EP
0363186 Apr 1990 EP
0425168 May 1991 EP
0464562 Jan 1992 EP
0480558 Apr 1992 EP
0498130 Aug 1992 EP
0507110 Oct 1992 EP
0529834 Mar 1993 EP
0538319 Apr 1993 EP
0631283 Dec 1994 EP
0632371 Jan 1995 EP
0711076 May 1996 EP
0786122 Jul 1997 EP
0817103 Jan 1998 EP
0841616 May 1998 EP
0919964 Jun 1999 EP
0959570 Nov 1999 EP
0974896 Jan 2000 EP
0974941 Jan 2000 EP
0982695 Mar 2000 EP
1001391 May 2000 EP
1170951 Jan 2002 EP
1288802 Mar 2003 EP
1408427 Apr 2004 EP
1549919 Apr 2004 EP
1962251 Aug 2008 EP
2602352 Feb 1988 FR
2808906 Nov 2001 FR
2122799 Jan 1984 GB
2166328 Apr 1986 GB
2170943 Aug 1986 GB
2193420 Feb 1988 GB
2238680 Jun 1991 GB
2254469 Oct 1992 GB
2259398 Mar 1993 GB
2262170 Jun 1993 GB
2380377 Apr 2003 GB
2505584 Aug 2014 GB
57173207 Oct 1982 JP
58-179892 Oct 1983 JP
60-253082 Dec 1985 JP
61084143 Apr 1986 JP
62-192849 Aug 1987 JP
62-284496 Dec 1987 JP
63-60634 Mar 1988 JP
2-153665 Jun 1990 JP
5-74078 Mar 1993 JP
5122282 May 1993 JP
07281682 Oct 1995 JP
07-311587 Nov 1995 JP
8274812 Oct 1996 JP
08279235 Oct 1996 JP
08289976 Nov 1996 JP
928918 Feb 1997 JP
9114470 May 1997 JP
9127964 May 1997 JP
09-244900 Sep 1997 JP
10-098344 Apr 1998 JP
10-222537 Aug 1998 JP
11-003088 Jan 1999 JP
11-024686 Jan 1999 JP
11-095768 Apr 1999 JP
2002-83640 Mar 2002 JP
2002-537584 Nov 2002 JP
2003-076380 Mar 2003 JP
2003-084903 Mar 2003 JP
2003-099072 Apr 2003 JP
2005-107267 Apr 2005 JP
2005-184237 Jul 2005 JP
2006-048076 Feb 2006 JP
2007-034253 Feb 2007 JP
2007-041722 Feb 2007 JP
2007505410 Mar 2007 JP
07504517 Mar 2007 JP
2007-102982 Apr 2007 JP
2007-104072 Apr 2007 JP
2007-128609 May 2007 JP
2007-164078 Jun 2007 JP
2007-164298 Jun 2007 JP
2007179333 Jul 2007 JP
2007-241748 Sep 2007 JP
2008-058656 Mar 2008 JP
2009-017529 Jan 2009 JP
2009-075540 Apr 2009 JP
WO 8601326 Feb 1986 WO
WO 9000429 Jan 1990 WO
WO 9007843 Jul 1990 WO
WO 9108542 Jun 1991 WO
WO 9120082 Dec 1991 WO
WO 9316557 Aug 1993 WO
WO 9318465 Sep 1993 WO
WO93021732 Oct 1993 WO
WO 9403894 Feb 1994 WO
WO 9414273 Jun 1994 WO
WO 9415306 Jul 1994 WO
WO 9415416 Jul 1994 WO
WO 9503609 Feb 1995 WO
WO 9529537 Nov 1995 WO
WO 9612255 Apr 1996 WO
WO 9612256 Apr 1996 WO
WO 9612257 Apr 1996 WO
WO 9612258 Apr 1996 WO
WO 9807940 Feb 1998 WO
WO 9811487 Mar 1998 WO
WO 9845835 Oct 1998 WO
WO 9935753 Jul 1999 WO
WO 0100290 Jan 2001 WO
WO 0108148 Feb 2001 WO
WO 0171608 Sep 2001 WO
WO 02060546 Aug 2002 WO
WO 02095752 Nov 2002 WO
WO 01084353 Jan 2003 WO
WO 03069613 Aug 2003 WO
WO 2004029775 Apr 2004 WO
WO 2005026916 Mar 2005 WO
WO 2006014739 Feb 2006 WO
WO 2006056933 Jun 2006 WO
WO 2007092542 Aug 2007 WO
WO 2008-033853 Mar 2008 WO
WO 2011094330 Aug 2011 WO
WO 2013040603 Mar 2013 WO
Non-Patent Literature Citations (59)
Entry
Search Report and Written Opinion dated Mar. 31, 2015 in corresponding International Application No. PCT/US2014/064637.
International Preliminary Report for International Application No. PCT/US2014/064637 dated May 19, 2016.
Office Action in related application U.S. Appl. No. 14/481,761 dated Oct. 11, 2017.
Office Action in related application U.S. Appl. No. 15/098,871 dated Aug. 22, 2017.
“About Ecast”, date unknown, leaflet.
Ahanger et al.; A Digital On-Demand Video Service Supporting Content-Based Queries; 1993; 9 pages.
Austin Cyber Limits: Name That Tune [online], [retrieved Jul. 23, 2001]. Retrieved from the Internet: <http://www.pbs.ork/klru/austin/games/namethattune.html>.
Back to the Tunes [online], [retrieved Jul. 23, 2001]. Retrieved from the Internet: <http://citc5.hispeed.com/rules.html>.
Bonczek et al, “The DSS Development System”, 1983 National Computer Conference, Anaheim, California, May 16-19, 1983, pp. 441-455.
Chan et al., “Distributed servers architectures for networked video services”, IEEE Trans on Networking, vol. 9, No. 2, pp. 125-136, 2001.
Chen et al., “Optimization of the grouped sweeping scheduling (GSS) with heterogeneous multimedia streams”, ACM Multimedia, p. 1-7, 1993.
Crutcher et al., “The networked video Jukebox”, IEEE, Trans. on circuits and systems for video technology, vol. 4, No. 2, pp. 105-120, 1994.
“Darts Revolution Again”, Replay Magazine, Mar. 1991, pp. 146-148.
Derfler et al., “How Networks Work”, Millennium Ed., Que Corporation, Jan. 2000.
Drews, C.; Pestoni, F.; “Virtual jukebox: reviving a classic,” Proceedings ofthe 35th Annual Hawaii International Conference System Sciences, pp. 887-893, Jan. 7-10 2002.
“Ecast Forges Landmark International Technology Partnership”, Business Wire at www.findarticles.com/cf_0/m0EIN/2000_July_25/63663604/print.html, 2 pages, Jul. 25, 2000.
“Ecast Selects Viant to Build Siren Entertainment System (TM)”, ScreamingMedia, PR Newswire San Francisco, industry.java.sum.com/javanews/stories/story2/0,1072,17618,00.html, 3 pages, Aug. 3, 1999.
Fachbuch, “Unterhaltungselektronic von A-Z” gfu 1, VDE-Verlag GmbH, pp. 12-13, 1983-1984.
“Foobar 2000 Evaluation Update.” MonkeyBiz, Aug. 3, 2008, 4 pages (with partial English translation). http://monkeybizinfo.blogspot.jp/2008/08/Foobar2000.html.
Gallardo et al., “Tangible Jukebo: back to palpable music”, ACM TEI, pp. 199-202, 2010.
Gralla, “How the Internet Works”, Millennium Ed., Que Corporation, Aug. 1999.
Grimes, Chapter 18, “Taking Advantage of Web-based Audio”.
Hewlett-Packard Development Co; HP Open View Storage Data Protector Admin's Guideline Manual Edition; May 2003; Copyright 2003, 60 pages http://h20000.www2.hp.com/bc/docs/support/SupportManual/c006637931/c00663793.pdf.
Hicks et al., “Dynamic software updating”, ACM PLDI, pp. 13-23, 2001.
IBM Technical Disclosure Bulletin, vol. 30, No. 5, Oct. 1987, “Method for Automated Assembly of Software Versions”, pp. 353-355.
IBM Technical Disclosure Bulletin, vol. 32, No. 9A, Feb. 1990, “Robotic Wafer Handling System for Class 10 Environments” pp. 141-143.
IBM Technical Disclosure Bulletin, vol. 33, No. 12, May 1991, “High-speed Opens and Shorts Substrate Tester”, pp. 251-259.
IBM Technical Disclosure Bulletin, vol. 41, No. 1, Jan. 1998, “Safe Mechanism for Installing Operating System Updates with Application,” pp. 557-559.
ITouch 8 Plus brochure, JVL Corporation, 2005, 2 pages.
ITOUCH 27 New Games brochure, JVL Corporation, 2005, 2 pages.
Johnny Rockets Name That Tune [online], [retrieved Mar. 7, 2002]. Retrieved from the Internet: <http://www.johnnyrockets.com/docs/funstuff.html>.
Koskelainem, “Report on Stream™”.
Kozierok, The PC Guide, Site Version 2.2.0, http://www.pcguide.com, April 17, 2001.
Kraiss et al., “Integrated document caching and prefetching in storage hierarchies based on Markov chain predictions”, The VLDB Journal, vol. 7, issue 3, pp. 141-162, 1998.
Liang et al., “Dynamic class loading in the Java virtual machine”, ACM OOPSLA, pp. 36-44, 1998.
Look and iTouch brochure, JVL Corporation, 2004, 2 pages.
Ludescher et al., “File Storage Management for TFTF physics data”, IEEE, pp. 856-859, 1992.
Megatouch Champ brochure, Merit Industries, Inc., 2005, 2 pages.
Melnik et al., “A mediation infrastructure for digital library services”, ACM DL, pp. 123-132, 2000.
Merriam Webster's Collegiate Dictionary, Tenth Edition, Merriam-Webster, Inc., p. 361 (definition of dynamically).
Mickey B's Jukebox Revue—Name That Tune! [online], [retrieved Jul. 23, 2001]. Retrieved from the Internet: <http://mickeyb.com/tune/>.
Mod Box Internet brochure, Merit Entertainment, 2006, 2 pages.
Newsome et al., “Proxy compilation of dynamically loaded java classes with MoJo”, ACM LCTES, pp. 204-212, Jun. 2002.
Outlaw, Computer Technology Review, “Virtual Servers Offer Performance Benefits for Network Imaging”, 1993.
Patent Abstract of Japan vol. No. 010 & JP 07 281682 A (Naguo Yuasa), 27 October 1 JP 07 281682,95, figure 1-6 abrége.
Peter Pawlowski, “Basic Player Whose Appearance and Functions can be Customized Freely ‘Foobar 2000’ v1.0 is Unveiled,” Windows Forest, Japan; Jan. 12, 2010, 3 pages (with partial English translation). http://forest.impress.co.jp/docs/news/20100112 341870.html.
Pohlmann, “Principles of Digital Audio”, Third Edition, 1995.
PR Newswire, Press Release, “MusicMatch Announces Commerical Availability of Meta Trust Certified MusicMatch jukebox”, New York; Nov. 15, 1999, extracted from Internet, http://broquest.umi.com on Sep. 17, 2002.
Rollins et al., “Pixie: A jukebox architecture to support efficient peer content exchange”, ACM Multimedia, pp. 179-188, 2002.
Schneier, “Applied Cryptography”, Second Edition, John Wiley & Sons, Inc. New York, 1996.
Sprague et al., “Music selection using the partyvote democratic Jukebox”, ACM AVI, pp. 433-436, 2008.
Stevens, “TCP/IP Illustrated: vol. 1, the Protocols”.
Stewart, “Ecast Deploys Marimba's Castanet to Power an Internet-Based, Entertainment Management System for the Out-of-Home Market”, Marimba, Press Release, 3 pages, www.marimba.com/news/release/ecast.dec13.html, Dec. 13, 1999.
Strauss et al., “Information Jukebox A semi public device for presenting multimedia information content”, Pers. Ubiquit Comput, 7, pp. 217-220, 2003.
Tom & Liz's Name That Tune [online], [retrieved Jul. 23, 2001]. Retrieved from the Internet: <http://home.att.net/˜tomnliz/Music.html>.
Vortex Brochure, JVL Corporation, 2005, 2 pages.
Waingrow, “Unix Hints & Hacks”, Que Corporation, Indianapolis, IN, 1999.
White, “How Computers Work”, Millennium Ed., Que Corporation, Indianapolis, IN, Sep. 1999 (Sep. 22, 1999).
Yuki Murata, iTunes no ‘Kanky Settei’ Catalog & Tips 10 Sen, Mac People, ASCII Corporation, Oct. 1, 2007.
Related Publications (1)
Number Date Country
20220334690 A1 Oct 2022 US
Provisional Applications (1)
Number Date Country
61901400 Nov 2013 US
Continuations (3)
Number Date Country
Parent 17003020 Aug 2020 US
Child 17854601 US
Parent 15924816 Mar 2018 US
Child 17003020 US
Parent 14535902 Nov 2014 US
Child 15924816 US