Method and system for uploading media objects unto a web platform
11582502 · 2023-02-14
Assignee
Inventors
Cpc classification
H04N21/23418
ELECTRICITY
International classification
Abstract
There is disclosed a method and system for uploading media objects unto a web platform, the method executable by a server that hosts the web platform, the server being coupled to an electronic device, the method comprising: acquiring a first media object having a first duration time and a second media object having a second duration time for uploading; queuing for upload the first media object; determining a remaining time available for publishing the second media object, the remaining time corresponding to a difference between a predetermined time limit set by the web platform and the first duration time; in response to the remaining time being below the second duration time, shortening the first media object to reduce the first duration time; in response to the second duration time being below the remaining time, publishing the first media object and the second media object as a merged media object.
Claims
1. A computer-implemented method for uploading media objects unto a web platform, the method executable by a server that hosts the web platform, the server being communicatively coupled to an electronic device via a communication network, the method comprising: acquiring, by the server, from the user electronic device, a first media object having a first duration time and a second media object having a second duration time for uploading unto the web platform, the first media object being different from the second media object; queuing for upload, by the server, the first media object unto the web platform; determining, by the server, a remaining time available for publishing the second media object, the remaining time corresponding to a difference between a predetermined time limit set by the web platform and the first duration time; in response to the remaining time being below the second duration time, shortening the first media object to reduce the first duration time until the second duration time is below the remaining time; the shortening comprising: analyzing the first media object to determine one or more sets of frames, a given set of frames including two or more frames having a common configuration; removing at least one frame from at least one of the one or more sets of frames; in response to the second duration time being below the remaining time, publishing the first media object and the second media object as a merged media object, the merged media object displaying the first media object and the second media object in a back-to-back format.
2. The method of claim 1, wherein the method further comprises: prior to uploading the first media object, determining the first duration time to be below the predetermined time limit; in response to determining the first duration time to be below the predetermined time limit, queuing for upload the first media object.
3. The method of claim 2, wherein the method further comprises: in response to determining the first duration time to be above the predetermined time limit, shortening the first duration time to be below the predetermined time limit.
4. The method of claim 1, the method further comprising: prior to queuing for upload the first media object, determining if the first duration time is above a minimum length requirement and below a maximum length requirement; in response to the first duration time being below the minimum length requirement, not uploading the first media object; in response to the first duration time being above the maximum length requirement, shortening the first media object to reduce the first duration time until the first duration time is below the maximum length requirement.
5. The method of claim 1, wherein shortening the first duration time comprises shortening the first duration time by a predetermined amount of time.
6. The method of claim 5, wherein the predetermined amount of time corresponds to two seconds.
7. The method of claim 1, wherein the first media object and the second media object are videos.
8. The method of claim 5, the method further comprising: acquiring, by the server, from the user electronic device, a third media object having a third duration time for uploading unto the web platform; determining, by the server, a second remaining time available for publishing the third media object, the second remaining time corresponding to a difference between the predetermined time limit and a sum of the reduced first duration time and the second duration time; in response to the second remaining time being below the third duration time, shortening at least one of the first media object and second media object to reduce the first duration time or second duration time until the third duration time is below the remaining time.
9. The method of claim 8, wherein shortening the at least one of the first media object and second media object comprises at least one of: further shortening the first duration time by the predetermined amount of time; shortening the second duration time by the predetermined amount of time.
10. A system for uploading media objects unto a web platform, the system comprising a server that hosts the web platform, the server being communicatively coupled to an electronic device via a communication network, the server comprising a processor configured to: acquire, from the user electronic device, a first media object having a first duration time and a second media object having a second duration time for uploading unto the web platform, the first media object being different from the second media object; queue for upload, the first media object unto the web platform; determine, a remaining time available for publishing the second media object, the remaining time corresponding to a difference between a predetermined time limit set by the web platform and the first duration time; in response to the remaining time being below the second duration time, shortening the first media object to reduce the first duration time until the second duration time is below the remaining time; wherein to shorten the first duration time, the processor is configured to: analyze the first media object to determine one or more sets of frames, a given set of frames including two or more frames having a common configuration; remove at least one frame from at least one of the one or more sets of frames; and in response to the second duration time being below the remaining time, publishing the first media object and the second media object as a merged media object, the merged media object displaying the first media object and the second media object in a back-to-back format.
11. The system of claim 10, wherein the processor is further configured to: prior to uploading the first media object, determine the first duration time to be below the predetermined time limit; in response to determining the first duration time to be below the predetermined time limit, queue for upload the first media object.
12. The system of claim 10, wherein the processor is further configured to: in response to determining the first duration time to be above the predetermined time limit, shortening the first duration time to be below the predetermined time limit.
13. The system of claim 10, wherein the processor is further configured to: prior to queuing for upload the first media object, determine if the first duration time is above a minimum length requirement and below a maximum length requirement; in response to the first duration time being below the minimum length requirement, not uploading the first media object; in response to the first duration time being above the maximum length requirement, shortening the first media object to reduce the first duration time until the first duration time is below the maximum length requirement.
14. The system of claim 10, wherein shortening the first duration time comprises shortening the first duration time by a predetermined amount of time.
15. The system of claim 14, wherein the predetermined amount of time corresponds to two seconds.
16. The system of claim 10, wherein the first media object and the second media object are videos.
17. The system of claim 14, wherein the processor is further configured to: acquire, from the user electronic device, a third media object having a third duration time for uploading unto the web platform; determine, a second remaining time available for publishing the third media object, the second remaining time corresponding to a difference between the predetermined time limit and a sum of the reduced first duration time and the second duration time; in response to the second remaining time being below the third duration time, shortening at least one of the first media object and second media object to reduce the first duration time or second duration time until the third duration time is below the remaining time.
18. The system of claim 17, wherein to shorten the at least one of the first media object and the second media object, the processor is configured to execute at least one of: further shortening the first duration time by the predetermined amount of time; shortening the second duration time by the predetermined amount of time.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1) For a better understanding of the present technology, as well as other aspects and further features thereof, reference is made to the following description which is to be used in conjunction with the accompanying drawings, where:
(2)
(3)
(4)
(5)
(6)
DETAILED DESCRIPTION
(7) The examples and conditional language recited herein are principally intended to aid the reader in understanding the principles of the present technology and not to limit its scope to such specifically recited examples and conditions. It will be appreciated that those skilled in the art may devise various arrangements which, although not explicitly described or shown herein, nonetheless embody the principles of the present technology and are included within its spirit and scope.
(8) Furthermore, as an aid to understanding, the following description may describe relatively simplified implementations of the present technology. As persons skilled in the art would understand, various implementations of the present technology may be of a greater complexity.
(9) In some cases, what are believed to be helpful examples of modifications to the present technology may also be set forth. This is done merely as an aid to understanding, and, again, not to define the scope or set forth the bounds of the present technology. These modifications are not an exhaustive list, and a person skilled in the art may make other modifications while nonetheless remaining within the scope of the present technology. Further, where no examples of modifications have been set forth, it should not be interpreted that no modifications are possible and/or that what is described is the sole manner of implementing that element of the present technology.
(10) Moreover, all statements herein reciting principles, aspects, and implementations of the present technology, as well as specific examples thereof, are intended to encompass both structural and functional equivalents thereof, whether they are currently known or developed in the future. Thus, for example, it will be appreciated by those skilled in the art that any block diagrams herein represent conceptual views of illustrative circuitry embodying the principles of the present technology. Similarly, it will be appreciated that any flowcharts, flow diagrams, state transition diagrams, pseudo-code, and the like represent various processes which may be substantially represented in computer-readable media and so executed by a computer or processor, whether or not such computer or processor is explicitly shown.
(11) The functions of the various elements shown in the figures, including any functional block labelled as a “processor” or a “graphics processing unit”, may be provided through the use of dedicated hardware as well as hardware capable of executing software in association with appropriate software. When provided by a processor, the functions may be provided by a single dedicated processor, by a single shared processor, or by a plurality of individual processors, some of which may be shared. In some embodiments of the present technology, the processor may be a general purpose processor, such as a central processing unit (CPU) or a processor dedicated to a specific purpose, such as a graphics processing unit (GPU). Moreover, explicit use of the term “processor” or “controller” should not be construed to refer exclusively to hardware capable of executing software, and may implicitly include, without limitation, digital signal processor (DSP) hardware, network processor, application-specific integrated circuit (ASIC), field programmable gate array (FPGA), read-only memory (ROM) for storing software, random access memory (RAM), and non-volatile storage. Other hardware, conventional and/or custom, may also be included.
(12) Software modules, or simply modules which are implied to be software, may be represented herein as any combination of flowchart elements or other elements indicating performance of process steps and/or textual description. Such modules may be executed by hardware that is expressly or implicitly shown.
(13) With these fundamentals in place, we will now consider some non-limiting examples to illustrate various implementations of aspects of the present technology.
(14) With reference to
(15) In the context of the present specification, unless provided expressly otherwise, “electronic device” is any computer hardware that is capable of running a software appropriate to the relevant task at hand. Thus, some (non-limiting) examples of electronic devices include personal computers (desktops, laptops, netbooks, etc.), smartphones, and tablets, as well as network equipment such as routers, switches, and gateways. It should be noted that a device acting as an electronic device in the present context is not precluded from acting as a server to other electronic devices. The use of the expression “an electronic device” does not preclude multiple client devices being used in receiving/sending, carrying out or causing to be carried out any task or request, or the consequences of any task or request, or steps of any method described herein.
(16) The electronic device 102 comprises a permanent storage 104. The permanent storage 104 may encompass one or more storage media and generally provides a place to store computer-executable instructions executable by a processor 106. By way of an example, the permanent storage 104 may be implemented as a computer-readable storage medium including Read-Only Memory (ROM), hard disk drives (HDDs), solid-state drives (SSDs), and flash-memory cards.
(17) The electronic device 102 comprises hardware and/or software and/or firmware (or a combination thereof), as is known in the art, to execute a social media application 108, such as Instagram™, Yandex Zen™ and the like. Generally speaking, the social media application 108 allows a user to upload media objects (such as videos and photos) unto a platform associated with the social media application 108 using a social media service hosted on a server (described below).
(18) How the social media application 108 is implemented is not particularly limited. One example of the social media application 108 may be embodied in the user (not shown) accessing a web site associated with a social media to access the social media application 108. For example, the social media application 108 can be accessed by typing in a uniform resource locator (URL) associated with Yandex Zen™ social media at zen.yandex.com. It should be expressly understood that the social media application 108 can be accessed using any other commercially available or proprietary social media application.
(19) In alternative non-limiting embodiments of the present technology, the social media application 108 may be implemented as a downloadable application on a portable device (such as a wireless communication device). For example, where the electronic device 102 is an iPhone™ smart phone, the electronic device 102 may download from a digital distribution platform, such as App Store™, the social media application 108 associated with the Yandex Zen′ application.
(20) Generally speaking, the electronic device 102 comprises a user input interface (not shown) (such as a keyboard) for receiving user inputs into, for example, the query interface 110. How the user input interface is implemented is not particularly limited and will depend on how the electronic device 102 is implemented. Merely as an example and not as a limitation, in those embodiments of the present technology where the electronic device 102 is implemented as a wireless communication device (such as an iPhone™ smart phone), the user input interface can be implemented as a soft keyboard (also called an on-screen keyboard or software keyboard). On the other hand, where the electronic device 102 is implemented as a personal computer, the user input interface can be implemented as a hard keyboard.
(21) Although only a single electronic device 102 is shown, it should be understood that this is merely for ease of illustration and that the system 100 may include more than one electronic device.
(22) The electronic device 102 is coupled to a communication network 114 via a communication link 116. In some non-limiting embodiments of the present technology, the communication network 114 can be implemented as the Internet. In other embodiments of the present technology, the communication network 114 can be implemented differently, such as any wide-area communications network, local-area communications network, a private communications network and the like.
(23) How the communication link 116 is implemented is not particularly limited and will depend on how the electronic device 102 is implemented. Merely as an example and not as a limitation, in those embodiments of the present technology where the electronic device 102 is implemented as a wireless communication device (such as a smart-phone), the communication link (not shown) can be implemented as a wireless communication link (such as but not limited to, a 3G communications network link, a 4G communications network link, a Wireless Fidelity, or WiFi® for short, Bluetooth® and the like). In those examples, where the electronic device 102 is implemented as a notebook computer, the communication link can be either wireless (such as the Wireless Fidelity, or WiFi® for short, Bluetooth® or the like) or wired (such as an Ethernet based connection).
(24) It should be expressly understood that implementations for the electronic device 102, the communication link 116 and the communication network 114 are provided for illustration purposes only. As such, those skilled in the art will easily appreciate other specific implementational details for the electronic device 102, the communication link 116 and the communication network 114. As such, by no means, examples provided hereinabove are meant to limit the scope of the present technology.
(25) The system 100 further includes a server 118 coupled to the communication network 114. The server 118 can be implemented as a conventional computer server. In an example of an embodiment of the present technology, the server 118 can be implemented as a Dell™ PowerEdge™ Server running the Microsoft™ Windows Server™ operating system. Needless to say, the server 118 can be implemented in any other suitable hardware and/or software and/or firmware or a combination thereof. In the depicted non-limiting embodiment of the present technology, the server 118 is a single server. In alternative non-limiting embodiments of the present technology, the functionality of the server 118 may be distributed and may be implemented via multiple servers.
(26) The implementation of the server 118 is well known. However, briefly speaking, the server 118 comprises a communication interface (not depicted) structured and configured to communicate with various entities (such as the electronic device 102 and other devices potentially coupled to the communication network 114) via the communication network 114.
(27) The server 118 comprises a server memory 120 having one or more storage media which generally provides a place to store computer-executable program instructions executable by a server processor 122. By way of example, the server memory 120 may be implemented as tangible computer-readable storage medium including Read-Only Memory (ROM) and/or Random-Access Memory (RAM). The server memory 120 may also include one or more fixed storage devices in the form of, by way of example, hard disk drives (HDDs), solid-state drives (SSDs), and flash-memory cards.
(28) In some non-limiting embodiments of the present technology, the server 118 can be operated by the same entity that has provided the afore-described social media application 108. For example, the server 118 can be operated by Yandex LLC of Lev Tolstoy Street, No. 16, Moscow, 119021, Russia. In alternative embodiments, the server 118 can be operated by an entity different from the one providing the aforementioned social media application 108.
(29) In some non-limiting embodiments of the present technology, the server 118 provides a social media service 124 (such as Yandex Zen™) which is accessible by the social media application 108 via the communication network 114. The manner in which the social media service 124 is implemented is known in the art and therefore will not be described in detail herein. Suffice to say that the social media service 124 is configured to maintain a web platform on which one or more users can upload and view media objects.
(30) With reference to
(31) As illustrated, each media object is associated with a duration time. For example, the first media object 202 has a first duration time of 4 seconds, the second media object 204 has a duration time of 1 min 15 seconds, and the third media object 206 has a duration time of 50 seconds.
(32) In some non-limiting embodiments of the present technology, the social media application 108 allows the user associated with the electronic device 102 to select one or more media objects to be published onto the web platform of the social media service 124. For example, let us assume that the user has selected the first media object 202, the second media object 204 and the third media object 206 (illustrated by the checkmark displayed), and clicked a button 208 for uploading the selected media objects onto the web platform. It is contemplated that the user can select the first media object 202, the second media object 204 and the third media object 206 all together at the same time or in sequence (one after another, in a sense “adding” to the totality of media content to be uploaded).
(33) Returning to
(34) With reference to
(35) The process 300 is executed vis-a-vis each of the first media object 202, the second media object 204 and the third media object 206 in a sequential order. For the purposes of illustration, the explanation of the process 300 will be first made vis-a-vis the first media object 202, then the second media object 204 and finally the third media object 206.
(36) Process 300—First Media Object 202
(37) The process 300 starts at step 302, where the server 118 receives the first media object 202.
(38) At step 304, the server 118 is configured to determine whether the first media object 202 meets a minimum length requirement (“min L”), such as 5 seconds. In other words, a given media object needs to meet the minimum length requirement in order to be published. Needless to say, it is contemplated that the minimum length requirement be more or less than 5 seconds.
(39) Recalling from
(40) The process 300 for the first media object 202 then terminates.
(41) Process 300—Second Media Object 204
(42) Upon the process 300 terminating for the first media object 202, the server 118 runs the process 300 vis-a-vis the second media object 204.
(43) At step 302, the server 118 receives the second media object 204. At step 304, the server 118 determines that the second duration time of the second media object 204, which is 1 minute and 15 seconds long, meets the minimum length requirement. In response, the process 300 moves to step 308.
(44) At step 308, the server 118 is configured to determine whether the second duration time meets a maximum length requirement (“max L”), such as 60 seconds. In other words, a given media object needs to meet the maximum length requirement in order to be published. Needless to say, it is contemplated that the maximum length requirement be more or less than 60 seconds.
(45) Since the second duration time of the second media object 204 is above the maximum length requirement, the process 300 moves to step 310, where the length of the second media object 204 (i.e. the second duration time) is reduced to meet the maximum length requirement.
(46) How the length of the second media object 204 is reduced is not limited. Just as an example, the server 118 may be configured to transmit a data packet (not shown) to the electronic device 102, requesting the user of the electronic device 102 to select a portion of the second media object 204 that meets the maximum length requirement.
(47) Taking a look at
(48) For example, with reference to a second screenshot 408, the user has shortened the second duration time to 50 seconds by ending the second media object 214 prior to its original end. In another example, with the reference to the third screenshot 410, the user has shortened the second duration time to 45 seconds by starting the second media object 214 later than its original start. Following reduction of the second duration time of the second media object 214, the user clicks on an upload button 412 to transfer the shortened second media object 214 to the server 118. Let us assume that the user has shortened the second media object 214 to 45 seconds (as shown in the third screenshot 410).
(49) Returning to
(50) In some non-limiting embodiments of the present technology, prior to moving to step 314, the server 118 is configured to run steps 304 and 308 vis-a-vis the third media object 206. In other words, only if the third media object 206 meets the minimum length requirement and the maximum length requirement (described above), the process 300 moves to step 314.
(51) At step 314, the server 118 is configured to determine whether a total duration time of the reduced second media object 204 and the third media object 206 meets a predetermined time limit, which is set by the social media service 124. In some non-limiting embodiments of the predetermined time limit corresponds to a length limitation of media objects that may be published by the electronic device in a single instance, or in a single time period (such as every hour, every day, etc.). In some non-limiting embodiments of the present technology, the predetermined time limit corresponds to 60 seconds. Needless to say, it is contemplated that the predetermined time limit be more or less than 60 seconds.
(52) Now, recalling that the reduced second media object 204 has a length of 45 seconds, a remaining time that is available for the third media object is 15 seconds (i.e. 45 seconds subtracted from 60 seconds). However, recalling that the third media object 206 has a third duration time of 50 seconds (as illustrated in
(53) If, on the other hand, the third media object 206 had a third duration time of 10 seconds, the third duration time would be within the remaining time (as well as the total duration time be within the predetermined time limit) and step 314 would proceed to step 316, where the third media object 206 would be queued for publishing together with the second media object 204.
(54) Given the total duration time being above the predetermined time limit, the process 300 moves to step 318, where the server 118 is configured to determine if it is possible to further reduce the second media object 204.
(55) In some non-limiting embodiments of the present technology, the reduction (or shortening) of the second media object 204 comprises shortening the second duration time of the second media object 204 by a multiple of a predetermined amount of time, such as multiples of 2 seconds. Needless to say, the predetermined amount of time may be more or less than 2 seconds.
(56) How the duration time of the second media object 204 is shortened by the predetermined amount of time is not limited. Just as an example, the server 118 may be configured to analyze the second media object 204 to determine one or more frames having a common configuration (i.e. similar images), and removing one or more frames within each one or more sets of frames to collectively reduce the duration time by the predetermined amount of time at each instance. How the presence of a common configuration between one or more frames are determined is disclosed in U.S. Patent Publication No. 2017/0025151 A1 of LG Electronics Inc., published Jan. 26, 2017 and entitled MOBILE TERMINAL AND CONTROL METHOD FOR THE SAME, the content of which is incorporated by reference herein in its entirety.
(57) In some non-limiting embodiments of the present technology, not only the second media object 204 is reduced, but also, or instead, the third media object 206 is reduced in its duration time in a same manner as described above.
(58) If, for example, none of the second media object 204 and the third media object 206 can be reduced to meet the predetermined time limit, both the second media object 204 and the third media object 206 are published onto the web platform of the social media service 124 at step 320.
(59) If, on the other hand, the second media object 204 and/or the third media object 206 can be reduced to meet the predetermined time limit, the process 300 moves to step 322 and the second media object 204 and/or the third media object 206 are reduced.
(60) The process 300 then returns to step 312, where the server 118 is configured to determine if any other media objects have been transmitted by the electronic device 102.
(61) Given that the data packet 126 (see
(62) In some non-limiting embodiments of the present technology, the prior to publishing the second media object 204 and the third media object 206, the social media service 124 may be configured to transmit a data packet (not shown) to the electronic device 102 prompting the user to confirm the upload or to select/transmit any additional media objects to be additionally uploaded.
(63) In the latter situation, the above explained process is iteratively executed for each of the additional media objects. In other words, the total duration time of the media objects is reduced as explained above, to be under the predetermined time limit. For example, assuming a fourth media object (not shown) was added subsequently by the user, the process 300 repeats vis-a-vis the fourth media object.
(64) If the user has confirmed to upload the second media object 204 and the third media object 206, the second media object 204 and the third media object 206 are uploaded as a merged media by the social media service 122. In other words, the second media object 204 and the third media object 206 are published as a back-to-back media object, which does not require the need of a viewing user to interact with the social media application 108 to view the second media object 204 and the third media object 206 separately.
(65) Although in the above example, only three media objects have been included within the data packet 126 (i.e. the first media object 202, the second media object 204 and the third media object 206), it is to be understood that it contemplated that more than three media objects be selected by the user of the electronic device 102.
(66) Finally, although in the above examples, the first media object 202, the second media object 204 and the third media object 206 have been selected by the user and transmitted by the data packet 126 it is not limited as such. It is contemplated that the user selects and upload each media object separately (via a respective data packet), and once processed, the social media service 122 prompts the user to upload or add additional media objects. For example, at step 312 of the second media object 204, the social media service 122 may prompt the user to select or add additional media objects or upload the second media object 204. In response, the user may upload the third media object 206, which will cause the social media service 122 to run the process 300 vis-a-vis the third media object 206.
(67) Given the architecture and examples provided hereinabove, it is possible to execute a computer-implemented method for uploading media objects unto a social media web platform. With reference to
(68) Step 502: Acquiring, by the Server, from the User Electronic Device, a First Media Object Having a First Duration Time and a Second Media Object Having a Second Duration Time for Uploading Unto the Web Platform
(69) Method 500 starts with step 502. At step 502, the server 118 acquires the data packet 126 comprising, inter alia, the second media object 204 and the third media object 206. The second media object 204 has a second duration time (1 min 15 seconds), and the third media object 206 has a third duration time (50 seconds).
(70) Step 504: Queuing for Upload, by the Server, the First Media Object Unto the Web Platform
(71) At step 504 the server 118 queues the second media object 204 for publishing unto the web platform of the social media service 124.
(72) In some non-limiting embodiments of the present technology, prior to queuing the second media object 204, the server 118 is configured to determine if the second duration time of the second media object 204 to be above a minimum length requirement, and below a maximum length requirement.
(73) Step 506: Determining, by the Server, a Remaining Time Available for Publishing the Second Media Object, the Remaining Time Corresponding to a Difference Between a Predetermined Time Limit Set by the Web Platform and the First Duration Time
(74) At step 506, the server 118 is configured to determine if the remaining time (i.e. the difference between the second duration time and the predetermined time limit) is below or above the third duration time of the third media object 206.
(75) Step 508: In Response to the Remaining Time being Below the Second Duration Time, Shortening the First Media Object to Reduce the First Duration Time Until the Second Duration Time is Below the Remaining Time
(76) At step 508, in response to the remaining time being below the third duration time (i.e. the third duration time is larger than the remaining time), the server 118 is configured to reduce the second duration time until the resulting remaining time is above the second duration time.
(77) Step 510: In Response to the Second Duration Time being Below the Remaining Time, Publishing the First Media Object and the Second Media Object as a Merged Media Object
(78) At step 510, once the third duration time is below the remaining time, the server 118 is configured to publish the second media object 204 and the third media object 206 as a merged media.
(79) The method 500 then terminates or returns to step 502 in response to receiving additional media objects.
(80) It should be apparent to those skilled in the art that at least some embodiments of the present technology aim to expand a range of technical solutions for addressing a particular technical problem encountered by the conventional method of uploading media objects unto a social media web platform.
(81) It should be expressly understood that not all technical effects mentioned herein need to be enjoyed in each and every embodiment of the present technology. For example, embodiments of the present technology may be implemented without the user enjoying some of these technical effects, while other embodiments may be implemented with the user enjoying other technical effects or none at all.
(82) Modifications and improvements to the above-described implementations of the present technology may become apparent to those skilled in the art. The foregoing description is intended to be exemplary rather than limiting, The scope of the present technology is therefore intended to be limited solely by the scope of the appended claims.
(83) While the above-described implementations have been described and shown with reference to particular steps performed in a particular order, it will be understood that these steps may be combined, sub-divided, or reordered without departing from the teachings of the present technology. Accordingly, the order and grouping of the steps is not a limitation of the present technology.