The present method relates to methods of consolidating web pages, and more particularly, to a method of consolidating web pages by periodically collecting data from a user-selected group of web resources for display to the user.
The number and variety of information sources available to a user on the internet is vast and constantly changing. It is often difficult for a user to frequently visit a list of their favorite websites in a timely manner in order to remain current on information. This is especially true if the user has a large list of web sites she wishes to navigate. It is also difficult for a user to remain current on a large number of favorite sites or to be quickly brought up-to-date on changes by simply navigating to these sites one after the other, since leaving one site to navigate to another will cause them to miss updates at the site they have left. These missed updates may or may not appear or be present the next time the user navigates to the previous site as content on the internet can change quickly.
The user may have many favorite websites, blogs, social sites and other web accessible information sources that they frequent for business or personal use throughout the day. The user may spend large amounts of time navigating from one information source to another in order to get and remain current on changes at those sources. The user may open many tabs in order to quickly switch from one source to another in an attempt to stay current on these many sites. The user may bookmark a multitude sites and navigate to those bookmarks in order to stay informed. All of these solutions require that the user leave a first source of information to go to another and while at the other source, they risk the possibility that important information has changed on sites they are not viewing and if they do not navigate to that site quickly enough that update will be lost. A user may have so many favorite sites that they may lack sufficient time to effectively navigate all of them or may forget to navigate to one or many of them.
The user may employ news aggregators to stay abreast of news and information on the internet. Aggregators typically use RSS (rich site summary or really simple syndication) to present information summaries on the user's personal page. Publishers of information such as news sites, blogs or audio and video providers can choose to syndicate their information on RSS so that the user, usually by way of an aggregation site such as IGOOGLE, PULSE, FLIPBOARD, and the like, may view these summaries or headline information on a single page or multiple pages. A user of an aggregation site may select many information sources which would then be displayed on a page so that updates from many sources can be quickly read and managed.
In order for RSS to operate, a publisher must first post to an RSS feed which is then sent out to users that have requested or subscribed to that feed on their selected aggregation site. The information that a publisher selects to publish may not be the most important or even the most current; and therefor, the feed may not be a reflection of what is current on the publisher's actual site or most recent in the world of information. RSS feeds may not be prioritized in a hierarchical manner and stories that are less news worthy can be placed ahead of those that are more important. While an RSS user may be able to select a feed source, they cannot select the exact portions of a site that get published and may have to endure many undesired feeds and summaries before receiving one that is needed. It is possible that important information may be delayed by a publisher to an RSS feed as they may choose to prioritize placement of that information elsewhere. Finally, many publishers on the internet simply do not provide RSS feeds, especially more esoteric sites or sites traditionally not thought of as requiring information feeds, such as shopping, couponing, hobby and other consumer based sites and interests.
Compounding the difficulties of the aforementioned solutions is the dramatic shift from desktop and laptop computers to portable devices such as smart phones and tablets and even wearable portable devices which access internet based information. These portable devices can often experience difficulty in connecting to the internet as they have no hard connection and rely on wireless data transfer through 3G, 4G, and the like. When these devices are within a Wi-Fi hotspot or wireless computer network, connectivity and speed of data transfer is generally not a concern, but this type of service may not always be available. By their very nature, these devices are meant to be portable and a user may be in areas where there is no Wi-Fi access and poor cell reception. In these cases, navigating modern websites, which often have home pages from one to several megabytes, can be very time consuming, problematic, or even impossible. Further complicating this problem are the numerous animations, videos, or sound bites which may run on a site and require even more bandwidth and time to load. Furthermore, computer resources are used to maintain multiple open browsing sessions, which slows the performance of the computer.
What is needed is a method of allow a user to easily select only the portions of website that are important to them for organization and presentation on an internet based page or pages. This method must allow the user to quickly view important information from many sources at one location. The user selected sites or portions of sites that have been organized on their page must be refreshed frequently enough so that the user can be kept up-to-date on the latest information on any site or portion of site selected in near real time. The data required to download this information must be kept to a minimum in order to accommodate rapid updates as well as overcome the limitations of poor or spotty cell coverage when a Wi-Fi network is unavailable, especially for mobile devices such as smart phones, tables and wearable devices.
A method of providing content to a user is described herein. The steps of the method includes communicating a resource address from a user input on a local computing device to a remote server system and inserting or enqueuing the resource address into a queue. The resource address is dequeued in a first cycle and communicated to a web browser instance. The web browser instance builds a site page associated with the code provided by the resource address. Then, at least a portion of the site page is converted into an image file, where the image file is visually representative of the site page when the image file is displayed. The image file is communicated to the local computing device and displayed on a screen of the local computing device.
The resource address is reinserted into the queue at any point in time after the resource address has been dequeued in the first cycle. Then, the resource address is dequeued in a subsequent cycle. The resource address is communicated to the web browser instance, where an updated site page associated with the resource address is built within the web browser instance. At least an updated portion of the updated site page is converted into a updated image file, where the updated image file is visually representative of the updated site page when the updated image file is displayed.
Optionally, an image coordinate system may be defined on the image file. A plurality of crop instruction coordinates are received, where the crop instruction coordinates define a selected portion of the image file to be displayed on the local computing device. Then, the image file is cropped as defined by the crop instruction coordinates. Further, a user coordinate system may be defined within a graphical user interface. Then, the selected portion of the image file is positioned to a desired coordinate on the graphical user interface. An association between the desired coordinate and the selected portion is stored on a database.
Optionally, the crop instruction coordinates may be stored on a database. Then, the crop instruction coordinates may be applied to the updated image file to define an updated selected portion. The updated image file may be cropped as defined by the user instruction coordinates. The selected portion of the image file and the updated selected portion of the updated image file may be stored on the database. A graphical user interface tool may be provided which permits the user to toggle between the selected portion and the updated selected portion, such as a sliding icon, a button icon, of other graphical or alphanumeric command.
Optionally, the image file and the updated image file may be stored on the remote server system. Then, the image file may be converted into a hash value; and the updated image file may be converted into an updated hash value. The hash value is compared to the updated hash value to determine if the hash value is different than the updated hash value due to a content change at the resource address between the first cycle and the updated cycle. The updated image file may be communicated to the local computing device if it is determined that the hash value is different than the updated hash value. An updated selected portion of the updated image file may be displayed on the screen of the local computing device in place of the image file.
Optionally, the queue may be a priority queue, such that a higher priority resource address can be inserted above a lower priority resource address to facilitate earlier communication of the image file to the local computing device. A database may be checked to determine if the resource address received from the local computing device is already associated with an existing image file stored on the database. If the resource address is associated, then the resource address is identified as low priority. If the resource address is not associated, then the resource address is identified as high priority.
Optionally, the remote server system may be comprised of a web server, a queue server, a capture server, and a database, either physically or virtually separated. The resource address may be communicated from the local computing device to the web server of the remote server system. The resource address may be communicated from the web server to the queue server for insertion into the queue. The resource address may be communicated to the capture server for building within the web browser instance and for converting the site page into an image file. The image file may be communicated from the capture server to the database for storage. The image file may be communicated from the database to the web server. The image file may be communicated from the web server to the local computing device.
Optionally, at least one of a page down command and a scroll command may be communicated to the resource address, such that an entire height of the site page can be converted to the image file. Again optionally, the unit of the coordinate system may be set to correspond to a dimension of a pixel in the image file.
Optionally, a second resource address may be communicated from the user input on the local computing device to the remote server system. The second resource address may be inserted into the queue and is later dequeued. The second resource address may be communicated to the web browser instance. Then, a second site page associated with the second resource address is built within the web browser instance. At least a second portion of the second site page may be converted into a second image file, where the second image file being visually representative of the second site page when the second image file is displayed. The second image file may be communicated to the local computing device. And, a second selected portion of the second image file may be displayed on the screen of the local computing device with the selected portion of the image file.
Optionally, the image file and the updated image file may be stored on a database. And, a graphical user interface tool may be provided, which permits the user to toggle between the image file and the updated image file. The graphical user interface tool may be a sliding icon element. The updated image file is displayed when the sliding element is in an initial position. The image file is displayed when the sliding element is repositioned to a second position. Optionally, the selected portion includes at least a part of the image file and the updated selected portion includes at least a part of the updated image file.
Additional objects and features if the method will be more readily apparent from the following detailed description and appended claims when taken in conjunction with the drawings, in which:
The detailed descriptions set forth below in connection with the appended drawings are intended as a description of embodiments of the invention, and is not intended to represent the only forms in which the present invention may be constructed and/or utilized. The descriptions set forth the structure and the sequence of steps for constructing and operating the invention in connection with the illustrated embodiments. It is to be understood, however, that the same or equivalent structures and steps may be accomplished by different embodiments that are also intended to be encompassed within the spirit and scope of the invention.
Accordingly, the present method provides an easy to use graphical interface for a user to capture, frame, organize and view selected portions of websites, while they are refreshed at a rate which allows the user to remain up-to-date in near real time on their important websites.
This is accomplished by providing a web based site to load a recently captured image of a user specified web site URL (uniform resource locator). Tools are provided to allow the user to frame the portion or portions of a site they wish to have displayed on their user interface screen. The framing specifications unique to that user and selected URLs are saved to a server for later retrieval and use. Tools are also provided to allow the user to organize multiple framed selections of web sites on a page or pages of their user interface screen for best viewing. These tools allow for movement, placement and sizing of framed portions of selected sites and a means for reframing the same to include additional information or exclude unwanted information. These various preferences in sizing and placement are also saved to a server for later retrieval and use.
The framed portion or portions of the user specified URLs are loaded onto a user interface screen when the user visits their personalized site. This is accomplished by capturing a recent image (usually in bitmap format) of a URL site or sites specified by the user and applying the saved framing, sizing and placement settings to the newly retrieved image or images. This process or capturing, framing, sizing and placing of URL sites is repeated often enough and images of the same refreshed on the user interface screen so that any time a user visits their user interface screen, they are presented with the most recent information of their one or many site URLs for quick review.
From the user's interface screen, they are able to select the framed site causing the web browser to automatically open a tab and navigate to that URL site or alternatively, opening a frame or portal to the sites URL within the user interface screen giving the user full access to information they had been made aware of at their home page.
The present method comprises a web based application with the substantial portion of the executable code and processing taking place happens at remote servers, thus reducing the work load at a user's device. However, this method may include allocating or breaking up tasks so that processing may be shared between remote servers and a user's device or all of the processing may be handled at the user's device.
In the top menu bar there is an “Add Tile” button (120) which activates the process of adding a tile. Vertical scroll bar (130) with vertical scroll button (140) is located on the right side of the main graphical user interface screen and allows images not visible in the viewing area (170) and located above or below the viewing area (170) to be viewed by sliding the vertical scroll button (140) in the direction of the hidden image located off the visible page. The horizontal scroll bar (150) with horizontal scroll button (160) allows images locate to the left or right but outside of the viewing area to be viewed by sliding the horizontal scroll button (150) in the direction of the hidden image.
At the core of
The database stores all user settings, preferences, selected URLs, the coordinates to frame each tile, the placement coordinates of each tile in the canvas grid, the desired size of each tile, background color, as well as the most recent captures the users specified tiles and a history of captured tiles to serve the internet history management system. The database also stores the most recent captures of all user requested URLs as well as stored URLs from suggested sites and others that may be entered.
The queue server is tasked with queuing up one or more capture servers (525). It maintains a list of URL's to be captured; and as the capture server (525) captures the URL image, the capture server (525) takes the next URL off the stack in the queue server (530). If there is only one capture server (525) then the task of capturing URL's place in the queue server (530) will take place in series (or one capture after the other). For example, a list of URLs is stored on the queue server (530), which represent the requested URL's from a plurality of users. The capture server (525) can sequentially capture each URL one at a time as the requested address is received by the queue server (530). Once a URL on the list has been captured, that URL can be placed on or near the bottom of the list. In this way, a cycle of web capturing is created, where each URL on a list can be refreshed by a new capture as the queue server (530) cycles through the list. The list can change dynamically, as users request new URL's not currently on the list or if all users remove a URL from their requested sites. All tasks may be resident on a single piece of hardware and virtually separated or divided among separate pieces of hardware.
However, more rapid progress can be made in capturing URL images if multiple capture servers (525) are used and the work is performed in parallel. The queue server (530) can also be used to prioritize more important URLs for immediate capturing. If a user has request the capture of a new URL whose image does not reside in the database (515), then that image can be placed at the front of the queue for immediate capture, reducing the amount of time that a user will wait for a first image. Further, more popular URLs or URLs that change more frequently may be biased to the top of the list, for example using a priority queue. Since capturing a URL requires greater resources than is required by the queue server (530), it is generally desirable to create a system with multiple capture servers (525) being coordinated by a single queue server (530). This system can be expanded so that there are multiple subsystems comprising one queue server (530) with one or more capture servers (525).
Some web pages only load content immediately visible by the screen viewing it and will not necessarily load content “below the fold” or content lower than what can be viewed by a screen of that particular size. While the web page is never actually viewed by a human at this point nor is it displayed on a screen, a default screen size is used for the sake of satisfying display requirements. Since a customer may require content outside this screen view and it may not have loaded, a series of commands is executed to simulate viewing of content outside the screen view at the top of a web page or content below the fold. Commands such as page down are enough to cause the site to more fully load. By commanding a page down the web site is caused to believe that lower content is being viewed. This page down command may be made as many times as is necessary in order to load the full page or at least the desired content. After paging down a corresponding page up will follow to return the page to the top of the screen. This page down and up command may be executed a number of times or as necessary in order to fully populate the page with content. Other commands may also be used to more fully load pages such as a delay before an image is taken in order to give sufficient time for the page to fill with content. Once the page has loaded according to these procedures which can be applied in various ways and may include additional commands, a PNG image capture of the web page is taken.
The Capture Server then compares this PNG image of the site to the last image it took of the same site, which may have been only a few seconds prior and which still reside on in the Database. This comparison algorithm uses hashing technology, where the string of data representing the image and comprised of ASCII characters is converted to a string of unique numbers (usually of shorter length) according to a formula. This string of hash numbers from a first newer image having just been captured is compared to the string of hash numbers of the second older image in the database if they are the same the older image is not replaced and is deem a current image and the URL is returned back to the queue in the Queue Server by the Web Server to be captured again. If the hash strings are different, than the older image is replaced with the newer image with the conclusion being made that the image just captured is more current. Again the URL is returned back to Web Server to be so that it may be placed back into the queue of the Queue Server. If there is no image file of that URL in the database, than it is a new capture and is sent to the database and again returned back to Web Server to be so that it may be placed back into the queue of the Queue Server. This process repeats its cycle perpetually so that constant updating of tiles is possible and the user may be presented with the most current data. Of course the length of the queue, the time to capture and the number of occurrences of web browsers in the Capture Server combine to give an over queue time. This time can be as short as a few seconds and as long as minutes depending on load. These loads are balanced by closely monitoring the queue length and average capture time of the URL's as well as specific capture times. If a previously good URL which had yielded a capture takes too long to capture its image, it is removed from Capture Server and placed back in the queue. If this URL fails to capture repeatedly it is placed in a holding area in the Database for evaluation. In this way the Capture Service continues to run efficiently.
Referring to
The capture server performs another important task; it frames the portion of the total image capture of a URL according to user specifications in order to make a tile or tiles, these user specifications having been stored in the database in folders for particular users. Since more than one user may be requesting a tile of that same URL, the capture server checks the database for the framing requirement of all users requesting tiles of that URL and creates the appropriate tiles accordingly, with a time stamp on each and stores them in the specific user files of the database.
Once a captured URL image (400) is made from a site, it is sent to the database (515). The web server (505) having continued to make periodic requests of the users desired captured URL image (400) now finds an image to return to the user. This image is then sent to the user for display on the main graphical user interface screen (100).
In doing this process, a site which could require several megabytes to load and require constant connection to the internet and use of bandwidth to execute animation, video and audio can now be delivered to a user with minimal bandwidth and connectivity and with greatly increased speed.
In order to further streamline data usage and to eliminate unwanted information, the user has the ability to present only the portion of the whole captured URL image (400) that they wish to see on their main graphical user interface screen (100). Referring to
The last point on the x-axis (740) may be defined as the maximum pixel width of the captured URL image (400); and the last point of the y-axis (710) may be defined as the maximum pixel height of the captured URL image (400). If for example, the captured URL image (400) is 800 pixels wide and 600 pixels high then the total width of the x-axis (700) is 800 units with 800 being the last point on the x-axis (740) and the total height of the y-axis (710) is 600 units with 600 being the last point on the y-axis (750). By using this system it becomes possible to locate desired items on the captured URL image and to create borders to include only the portions of the image the user desires. Many other types of coordinate systems may be employed at this point to accomplish the same task however; pixels are used as a preferred method because of its natural association to the image and convenience.
Using the coordinate system described above and referring to
Once the x-axis origin (720) and y-axis origin (730) have been established, the framing of the image can be accomplished with respect to this primary origin. By first selecting an x-axis image frame start location (810) and a y-axis image frame start location (730), a frame start point (815) can be defined as the upper left point of the image frame (800). Using finger motion on a touch screen or mouse movement on a computer or other appropriate selection means, a frame end point (825) can be established. The width of the frame may be defined as the x-axis image frame end locator (820) minus (−) the x-axis image frame start location (810); and the height of the frame may be defined as the y-axis image frame end location (840) minus (−) the y-axis image frame start location (850). Upon completing the image frame (800) all information outside the defined frame is removed or cropped using known software tools. The image frame (800) specification is unique to a particular user, and this data in the form of the URL identity and associated coordinates is saved in database (515) for later retrieval.
Referring to
By combining the two coordinate systems described above, one for the user defined image frame (800) and the other for the main graphical user interface (100), the user can place their image frame (800) anywhere on the main graphical user interface (100) and the service having stored this information in database (515). Thus, the user can expect to find the placement of images in the correct location whenever they visit the service. Referring to
Many design features can be employed which improve usability and user customization. For instance a general border can be been placed between the framed images or tiles to give visual separation. This general border can of course be any width and it may be omitted entirely depending on preferences. A visually appealing corner radius can been added to each tile to give a more finished look. This radius can have different radii or the corner of the tile may be finished with a chamfer of various sizes or some other visually appealing shape. Also the tiles may have an additional adjacent border immediately around or adjacent to all or selected tiles to add effects such as a three-dimensional look or a highlighting effect of various sorts. These adjacent borders can be user customizable in terms of effect, size, design and color, texture or any other desirable design characteristic. The general border likewise may be customizable in effect, size, design and color, texture or any other desirable characteristic.
Referring to
Referring again to
The above process can be scaled to include as many users as necessary, where use of usernames and passwords stored in database (515) allows for organization and mass modification of images, according to user specified settings so that exact customization of information specified by a user can be maintained. Of course this method may be expanded to include millions of users with millions of URL's being captured all being framed according to the users specifications and placed on their graphical interface screen at the users specified location. For example, a single URL image can be captured and distributed to numerous subscribed users, with each user only receiving the portion of the URL image framed by that user. Thus, even though only one URL image is captured on each cycle with this example, one user may receive the upper right corner of the URL image, while a second user may receive the upper left corner of the URL image. The user's device may receive the entire captured image and display only the selected frame; or the user's device may receive just the framed portion of the image to save on bandwidth and resources.
Referring to
When a user has missed a news story or wishes to find out what existed on their tiles in the past, they can use the internet history management system to review the historical images captured for those sites by retrieving the saved tile images which have been stored in the database. This is done through a sliding tool (240) integrated as part of the users home page and is shown in with a close-up of the tool in
While particular forms of the invention have been illustrated and described, it will also be apparent to those skilled in the art that various modifications can be made without departing from the spirit and scope of the invention. Accordingly, it is not intended that the invention be limited except by the claims.
This application claims the priority date of provisional application No. 61/750,746 filed on Jan. 9, 2013.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/US2014/010933 | 1/9/2014 | WO | 00 |
Number | Date | Country | |
---|---|---|---|
61750746 | Jan 2013 | US |