Web Highlights
A few months ago, specifically last July/August I came up with this idea, I made a team and we had hopes to build it together but sadly we failed.
I am writing below everything about it, maybe anyone out in this world could pick it up and do good with it..
(sorry if images weren't attached, i will attach later documents and fotos)
--------------Part of the first document:
4. Project Overview
a. Project Core
• Add-On
-Supports All Top Browsers (Internet Explorer , FireFox, Opera…etc).
-Enables Saving and Highlighting of Content in any web site.
-Capable of retrieving back saved content and highlights whenever a highlighted site is revisited.
-Searching through saved and highlighted Content.
-Can be packed as a plugin, add-on or part of a toolbar.
-Supports searching for related highlights or saved content.
-Counts, Ranks and shows relevant statistics and legends to users regarding their and others’ highlights.
-Uses the Service to retrieve the highlights of others, notifications, submit saved and highlighted content.
-Understands special tags and has enough logic to support customization by web masters to control the look and feel of highlights in their web applications.
-Support Mobile and Smart Devices Browsers that are best candidates to use a lighter search as the one introduced here, that is; highlights search.
-Multilanguage support in its help, menus, options and internal object linking and embedding mechanisms.
-MultiPlatform support, through releasing C++, .Net and java modules as well as opening the door for 3rd parties to construct customized clients.
-Consumes a standard RSS Server feed for updates, notifications and discovery of highlights statistics and content updates from server.
• Service
-Saves your saved content and highlights on server enabling you to access it from anywhere.
-Notifies users about their saved and highlighted content, subscribers to the service receive RSS notifications consumed by their clients/add-on about whether or not the original content has been changed on the web sites, other people highlighted/saved this content, someone ranked that highlight or the total number of search hits and criteria that led to this content/highlight as its result from other web surfers.
-Through the RSS feeds, 3rd party clients and our add-on can view the page in two modes or more customized modes that highlights the viewed page according to all web users highlights, it could be more than just colours, maybe shades according to the support of CSS in both site and browser.
-Search web highlights and saved content, filtering out parts of sites that no one cares about, providing the first human non-automatic easy means to know what interests people, reports and statistics of that kind can manage web trends, make manufacturers, web masters and others know exactly what web users like and are interested in. Users can know who highlighted or saved that content by viewing their nicknames, they can then connect with each other and collaborate about it either through mails or discussions about that specific highlight, people with same interests can come closer.
-Categorized saving and highlighting can be automatic or manual, later on the system can smart tag the highlight and recommend a category choice for you. Smart tags would as well recommend you to highlight regions if they were highlighted by many others before, you could just simply have a shortcut key in your add-on or client that takes you directly to highlights or recommended highlights once visiting a new page.
-Computability with tags as well as introducing our own, knowing shopping items from love greeting cards, crawling the web sites to know their state and content changes as well as caching and comparing content.
-Introducing a new ranking factor for websites, which is not just the number of visitors, pages they visit or where these visitors come from, it will include the portions and percentage of highlights in these sites and how many others highlighted these same regions again and again.
-Constructing our SDK to open the scope and possibilities for all kinds of applications to build on, expand and integrate with our system, web masters can use it to determine how highlights and saved content looks like, how their tags would be understood from the crawler and client/add-on developers can well know how to save to server and use the service in their own platforms and applications.
[Unattached Image]
b. Implementation
• Agreeing on Copying and Saving Strategy
-Unique Saving Format (XML) leads to:
->less space used
->standard format supported by 3rd party clients
->easy to search
->common technology to save/retrieve on client and on server
->better ads based on clearer retrieved highlights
->protection against vulnerable/malicious attacks
->no need for a messy structure of files and folders, only xml containers that will hold together the saved portions/highlights.
• Add-On
Context menu-Server Access-Viewing Back-Report and Statistics-Search-Automatic Sharing-Compression-Encryption/local multiuser support/profiles support-legends and site ranks/highlight degrees-Options (colours, view all highlights or top 10% or my highlights, notifications…)
• Service
Search-Cachining-Ads-User profiles/authentication/reports and notifications-page ranking-crawling
RSS sample:
...
…
• Defining Interfaces
Tags-support add-on mods for special content(maps..etc)-..etc
c. Impact
• Internet activity and realization boost.
• Introduction of the highlighting concept for other content like documents, movies and others, which makes a new industry of equivalent servers and add-on required technologies.
• Filtering the web using human activity and better understanding human interests which leads to better ads, statistics, services, reports, research and much less content to search in.
• More appealing for smart and smaller devices and provides collaboration and discussion between people of same highlights=interests, RSS feeds can make you know on the go.
5. Project Structure
The project proposed structure could be as follows:
5 teams each of two working on one of the following 5 subprojects that together makes up the highlights system:
1. Client Team
2. Server Team
3. Storage Team
4. SDK Team
5. Search Team
Each of the above teams will reach an agreement on the interfaces and what each team needs from the others, once these interfaces, properties and public methods are done, each team can go on with their investigation and implementation independent of others progress.
For collaboration and source control, we will reach an agreement.
For now I need all of you to send me an email at
ahamdy@gmail.com with the email address you want me to add you to any future notification regarding the project and whenever we make an egroup/other I will invite that email address.
As for meetings, we can make a kickoff meeting at my place 8 pm next Friday if agreed by everybody.
6. Resources
Our current resources about this subject:
• http://msdn.microsoft.com/library/default.asp?url=/workshop/browser/ext/tutorials/button.asp
• http://www.mvps.org/winhelp2002/ieplus.htm
• http://blogs.msdn.com/ie/archive/2004/09/06/226066.aspx
• http://www.microsoft.com/windows/ie/community/columns/browseraddons.mspx
• http://msdn.microsoft.com/ie/
• http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnwebgen/html/IEDev_ta_landing.asp
• http://msdn.microsoft.com/library/default.asp?url=/workshop/delivery/channel/overview/overview.asp
• http://www.codeproject.com/books/0764549146_8.asp
• http://www.codeproject.com/csharp/mshtml_automation.asp
• http://www.codeproject.com/com/MouseProcThunk.asp
• http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/programmersguide/shell_adv/shell_adv.asp
• http://www.codeproject.com/csharp/commandbar.asp
• http://www.codeproject.com/csharp/dotnetbandobjects.asp
-----------------------Part of the second document:
4. Project Structure
a. Team Roles
The following is nothing more than just a set of proposed ideas for the team roles. I could be totally wrong, so you are totally free to add, remove and modify any of them. These roles represent a feature set that takes the idea to its extreme, it is better to realize the whole scope before planning.
• Client Team
Complete Feature Set
-Develop an add-on that can be installed alone or as a part of a most popular toolbars, compatible as well with top web browsers and top used platforms.
-Passes successfully top used anti-spyware and anti-viruses warnings through abiding by the common security rules of these scanners.
-Implementation of Context Menus, Toolbar buttons as well as certain graphical highlighting, smart tagging and commenting features that enables a richer end-user highlighting experience.
-Ability to connect to server web service to consume the server exposed services.
-Ability to use the storage APIs for local storage as well as retrieval.
-Ability to use the search APIs for local search.
-Ability to display various notifications and statistics concerning highlights and saved contents, these notifications might cover:
-number of users who highlighted the same highlights.
-whether or not a highlighted content has been changed, this change can be in the site’s link or the content itself.
-Ability to enrich end-user’s browsing experience through:
-Jumping directly to highlights whenever visiting a page.
-highlighting back a page the second time it is visited
-highlighting in various colours/shadows according to the number of web users’ highlights count.
-ability to categorize a highlight, propose a highlight.
-ability to save selected content or save and highlight or highlight only.
-ability to work anonymous or using a certain user profile, with cached offline authentication support in case user’s connection is lost and he is searching his highlights offline.
-ability to find related highlights as well as knowing how many times/last time a highlight was searched for/visited.
-Once installed it can either take the user to an online congratulations page with primary walkthroughs on how to maximize the benefit from the tool or an offline helpset provided with the toolbar (tradeoff decision will be considered when deciding about the optimum size threshold for the add-on, this choice has a huge impact on who will download, what bandwidth traffic we would suffer…etc).
-Relies on SDK Interfaces and maybe web services as well to do the parsing and conversion then passes off the xml to storage.
-mini versions that could be installed on smaller devices.
• SDK Team
Complete Feature Set
-Defines Interfaces that enables the Client team to consume its functionality and returns back xml.
-Is Extensible in the sense that it has its own basic xslt/other implementations that does the basic text/picture html content conversion to xml in addition to the fact that it can be extended through certain modules to support special tags/other content conversion.
-Defines the tags (as well as implements the conversion functionalities) that web masters should write inside their code in case they want to customize the look and feel of highlights in their page, web masters can as well use these tags to suggest zones as highlights or expose statistics or even categories for their content or products or even knowledge items.
-All conversions are two-way.
-Defines the RSS or ATOM structures needed for the notifications, is extensible as well to enable 3rd party clients to listen to more details and request more statistics about highlight notifications.
-Enables 3rd party server software makers to adopt highlights technology into their home systems by exposing the interfaces as well as porting modules for local installation and integration with these systems, this for example can enable webmasters to have highlights supported natively in IIS, thus they can have reports on what exactly their visitors read instead of knowing which files they requested.
• Storage Team
Complete Feature Set
-Supports top file systems and server database.
-Stores data as XML, has enough interfaces and web services to enable saving local and on server.
-Has internal mechanisms to index, defrag, secure and compress the storage.
-Has access interfaces for Search Team.
-Supports backup, migration and export scenarios.
-Stores Categories, profiles, search criteria and statistics.
• Search Team
Complete Feature Set
-Has interfaces that enables client and Server team to consume its service.
-Relies on Storage team for data retrieval.
-Implements Required mechanisms to search XML content.
-Relates content and provides related content results.
-Categorizes results and provides a list of recommendations.
-Provides a result set of statistics as well as other related information.
• Server Team
Complete Feature Set
-Provides a set of web services that exposes authentication, profiles, statistics and search.
-Provides a set of feeds exposing the notifications.
-Provides a web interface for registration, search as well as advertisements.
-Implements Caching of all result sets, crawling and validation against all storage content and notification mechanisms.
-Works on the results and output of storage and search team modules.
-Has third party providers catalog (add-ons to our add-on to support special functionalities) as well as ad-sense highlights advertisements.
-Provide a new ranking for web sites based on highlights intensity and volume.
-Provides an advisory center regarding web top highlights, either shopping products, books to read, trends to follow, news providers to trust…etc.
-Provides all kinds of statistics about the highlights and the content (circle of concern and circle of influence), what countries make the highest volume of highlights and what are the highest categories these highlights fall under, and what percentage does those highlights present of the original content, and comparisons as well between highlight statistics according to language, age, sex, internet speed, time of day...etc.
b. Work Load and Estimates
Teams would most probably need to undergo the following:
-Implementing Interfaces.
-Investigating and knowing new technologies.
-Using specific tools.
-Meeting, Analysis and Planning.
-Implementation.
-Unit testing.
-Integration and Issue Fixing.
-Documenting.
-Packaging, Deployment and Public releases.
-Web Hosting, Marketing and Launching.
This would stretch to an eight month time frame, more or less of about 1 hour of work a day.
c. Work Environment
I propose the following:
-We should choose a common communication environment for all teams, for example an egroup and special meetings if needed.
-Teams would be of two people or more, the structure of the project should allow them to work independent of the progress of other teams.
-Each team would choose their own implementation plans as well as meeting and communicational means.
-We should all agree on common scheduled integration phases to realize where we stand, what went wrong and what to do next.
-As early as possible we should consider issues of sizing, financial expenses of hosting, marketing (could include ads on google, msn messenger, even local radio channels…).
-All through the way we should be thinking of how to branch releases to enable exclusive sneak peeks that we could give to top software reviewing sites so as to please them as well as boost our advertising campaigns.
-Decisions about how the download (not search) site would look like, whether it should be outsourced…etc.
-Having the internal code as much readable as possible, as if it was an open source project, which might come in handy if google buys the project or something
-At all times keep the resources accessible and configurable as most as possible to enable anyone to make us translation scripts, the more languages we speak the more the volume of users and knowledge the system collects.
-At a certain point we will have to consider writing down a professional privacy policy and terms of agreement and copyrights materials.
--------------------End.
I am writing below everything about it, maybe anyone out in this world could pick it up and do good with it..
(sorry if images weren't attached, i will attach later documents and fotos)
--------------Part of the first document:
4. Project Overview
a. Project Core
• Add-On
-Supports All Top Browsers (Internet Explorer , FireFox, Opera…etc).
-Enables Saving and Highlighting of Content in any web site.
-Capable of retrieving back saved content and highlights whenever a highlighted site is revisited.
-Searching through saved and highlighted Content.
-Can be packed as a plugin, add-on or part of a toolbar.
-Supports searching for related highlights or saved content.
-Counts, Ranks and shows relevant statistics and legends to users regarding their and others’ highlights.
-Uses the Service to retrieve the highlights of others, notifications, submit saved and highlighted content.
-Understands special tags and has enough logic to support customization by web masters to control the look and feel of highlights in their web applications.
-Support Mobile and Smart Devices Browsers that are best candidates to use a lighter search as the one introduced here, that is; highlights search.
-Multilanguage support in its help, menus, options and internal object linking and embedding mechanisms.
-MultiPlatform support, through releasing C++, .Net and java modules as well as opening the door for 3rd parties to construct customized clients.
-Consumes a standard RSS Server feed for updates, notifications and discovery of highlights statistics and content updates from server.
• Service
-Saves your saved content and highlights on server enabling you to access it from anywhere.
-Notifies users about their saved and highlighted content, subscribers to the service receive RSS notifications consumed by their clients/add-on about whether or not the original content has been changed on the web sites, other people highlighted/saved this content, someone ranked that highlight or the total number of search hits and criteria that led to this content/highlight as its result from other web surfers.
-Through the RSS feeds, 3rd party clients and our add-on can view the page in two modes or more customized modes that highlights the viewed page according to all web users highlights, it could be more than just colours, maybe shades according to the support of CSS in both site and browser.
-Search web highlights and saved content, filtering out parts of sites that no one cares about, providing the first human non-automatic easy means to know what interests people, reports and statistics of that kind can manage web trends, make manufacturers, web masters and others know exactly what web users like and are interested in. Users can know who highlighted or saved that content by viewing their nicknames, they can then connect with each other and collaborate about it either through mails or discussions about that specific highlight, people with same interests can come closer.
-Categorized saving and highlighting can be automatic or manual, later on the system can smart tag the highlight and recommend a category choice for you. Smart tags would as well recommend you to highlight regions if they were highlighted by many others before, you could just simply have a shortcut key in your add-on or client that takes you directly to highlights or recommended highlights once visiting a new page.
-Computability with tags as well as introducing our own, knowing shopping items from love greeting cards, crawling the web sites to know their state and content changes as well as caching and comparing content.
-Introducing a new ranking factor for websites, which is not just the number of visitors, pages they visit or where these visitors come from, it will include the portions and percentage of highlights in these sites and how many others highlighted these same regions again and again.
-Constructing our SDK to open the scope and possibilities for all kinds of applications to build on, expand and integrate with our system, web masters can use it to determine how highlights and saved content looks like, how their tags would be understood from the crawler and client/add-on developers can well know how to save to server and use the service in their own platforms and applications.
[Unattached Image]
b. Implementation
• Agreeing on Copying and Saving Strategy
-Unique Saving Format (XML) leads to:
->less space used
->standard format supported by 3rd party clients
->easy to search
->common technology to save/retrieve on client and on server
->better ads based on clearer retrieved highlights
->protection against vulnerable/malicious attacks
->no need for a messy structure of files and folders, only xml containers that will hold together the saved portions/highlights.
• Add-On
Context menu-Server Access-Viewing Back-Report and Statistics-Search-Automatic Sharing-Compression-Encryption/local multiuser support/profiles support-legends and site ranks/highlight degrees-Options (colours, view all highlights or top 10% or my highlights, notifications…)
• Service
Search-Cachining-Ads-User profiles/authentication/reports and notifications-page ranking-crawling
RSS sample:
...
…
• Defining Interfaces
Tags-support add-on mods for special content(maps..etc)-..etc
c. Impact
• Internet activity and realization boost.
• Introduction of the highlighting concept for other content like documents, movies and others, which makes a new industry of equivalent servers and add-on required technologies.
• Filtering the web using human activity and better understanding human interests which leads to better ads, statistics, services, reports, research and much less content to search in.
• More appealing for smart and smaller devices and provides collaboration and discussion between people of same highlights=interests, RSS feeds can make you know on the go.
5. Project Structure
The project proposed structure could be as follows:
5 teams each of two working on one of the following 5 subprojects that together makes up the highlights system:
1. Client Team
2. Server Team
3. Storage Team
4. SDK Team
5. Search Team
Each of the above teams will reach an agreement on the interfaces and what each team needs from the others, once these interfaces, properties and public methods are done, each team can go on with their investigation and implementation independent of others progress.
For collaboration and source control, we will reach an agreement.
For now I need all of you to send me an email at
ahamdy@gmail.com with the email address you want me to add you to any future notification regarding the project and whenever we make an egroup/other I will invite that email address.
As for meetings, we can make a kickoff meeting at my place 8 pm next Friday if agreed by everybody.
6. Resources
Our current resources about this subject:
• http://msdn.microsoft.com/library/default.asp?url=/workshop/browser/ext/tutorials/button.asp
• http://www.mvps.org/winhelp2002/ieplus.htm
• http://blogs.msdn.com/ie/archive/2004/09/06/226066.aspx
• http://www.microsoft.com/windows/ie/community/columns/browseraddons.mspx
• http://msdn.microsoft.com/ie/
• http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnwebgen/html/IEDev_ta_landing.asp
• http://msdn.microsoft.com/library/default.asp?url=/workshop/delivery/channel/overview/overview.asp
• http://www.codeproject.com/books/0764549146_8.asp
• http://www.codeproject.com/csharp/mshtml_automation.asp
• http://www.codeproject.com/com/MouseProcThunk.asp
• http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/programmersguide/shell_adv/shell_adv.asp
• http://www.codeproject.com/csharp/commandbar.asp
• http://www.codeproject.com/csharp/dotnetbandobjects.asp
-----------------------Part of the second document:
4. Project Structure
a. Team Roles
The following is nothing more than just a set of proposed ideas for the team roles. I could be totally wrong, so you are totally free to add, remove and modify any of them. These roles represent a feature set that takes the idea to its extreme, it is better to realize the whole scope before planning.
• Client Team
Complete Feature Set
-Develop an add-on that can be installed alone or as a part of a most popular toolbars, compatible as well with top web browsers and top used platforms.
-Passes successfully top used anti-spyware and anti-viruses warnings through abiding by the common security rules of these scanners.
-Implementation of Context Menus, Toolbar buttons as well as certain graphical highlighting, smart tagging and commenting features that enables a richer end-user highlighting experience.
-Ability to connect to server web service to consume the server exposed services.
-Ability to use the storage APIs for local storage as well as retrieval.
-Ability to use the search APIs for local search.
-Ability to display various notifications and statistics concerning highlights and saved contents, these notifications might cover:
-number of users who highlighted the same highlights.
-whether or not a highlighted content has been changed, this change can be in the site’s link or the content itself.
-Ability to enrich end-user’s browsing experience through:
-Jumping directly to highlights whenever visiting a page.
-highlighting back a page the second time it is visited
-highlighting in various colours/shadows according to the number of web users’ highlights count.
-ability to categorize a highlight, propose a highlight.
-ability to save selected content or save and highlight or highlight only.
-ability to work anonymous or using a certain user profile, with cached offline authentication support in case user’s connection is lost and he is searching his highlights offline.
-ability to find related highlights as well as knowing how many times/last time a highlight was searched for/visited.
-Once installed it can either take the user to an online congratulations page with primary walkthroughs on how to maximize the benefit from the tool or an offline helpset provided with the toolbar (tradeoff decision will be considered when deciding about the optimum size threshold for the add-on, this choice has a huge impact on who will download, what bandwidth traffic we would suffer…etc).
-Relies on SDK Interfaces and maybe web services as well to do the parsing and conversion then passes off the xml to storage.
-mini versions that could be installed on smaller devices.
• SDK Team
Complete Feature Set
-Defines Interfaces that enables the Client team to consume its functionality and returns back xml.
-Is Extensible in the sense that it has its own basic xslt/other implementations that does the basic text/picture html content conversion to xml in addition to the fact that it can be extended through certain modules to support special tags/other content conversion.
-Defines the tags (as well as implements the conversion functionalities) that web masters should write inside their code in case they want to customize the look and feel of highlights in their page, web masters can as well use these tags to suggest zones as highlights or expose statistics or even categories for their content or products or even knowledge items.
-All conversions are two-way.
-Defines the RSS or ATOM structures needed for the notifications, is extensible as well to enable 3rd party clients to listen to more details and request more statistics about highlight notifications.
-Enables 3rd party server software makers to adopt highlights technology into their home systems by exposing the interfaces as well as porting modules for local installation and integration with these systems, this for example can enable webmasters to have highlights supported natively in IIS, thus they can have reports on what exactly their visitors read instead of knowing which files they requested.
• Storage Team
Complete Feature Set
-Supports top file systems and server database.
-Stores data as XML, has enough interfaces and web services to enable saving local and on server.
-Has internal mechanisms to index, defrag, secure and compress the storage.
-Has access interfaces for Search Team.
-Supports backup, migration and export scenarios.
-Stores Categories, profiles, search criteria and statistics.
• Search Team
Complete Feature Set
-Has interfaces that enables client and Server team to consume its service.
-Relies on Storage team for data retrieval.
-Implements Required mechanisms to search XML content.
-Relates content and provides related content results.
-Categorizes results and provides a list of recommendations.
-Provides a result set of statistics as well as other related information.
• Server Team
Complete Feature Set
-Provides a set of web services that exposes authentication, profiles, statistics and search.
-Provides a set of feeds exposing the notifications.
-Provides a web interface for registration, search as well as advertisements.
-Implements Caching of all result sets, crawling and validation against all storage content and notification mechanisms.
-Works on the results and output of storage and search team modules.
-Has third party providers catalog (add-ons to our add-on to support special functionalities) as well as ad-sense highlights advertisements.
-Provide a new ranking for web sites based on highlights intensity and volume.
-Provides an advisory center regarding web top highlights, either shopping products, books to read, trends to follow, news providers to trust…etc.
-Provides all kinds of statistics about the highlights and the content (circle of concern and circle of influence), what countries make the highest volume of highlights and what are the highest categories these highlights fall under, and what percentage does those highlights present of the original content, and comparisons as well between highlight statistics according to language, age, sex, internet speed, time of day...etc.
b. Work Load and Estimates
Teams would most probably need to undergo the following:
-Implementing Interfaces.
-Investigating and knowing new technologies.
-Using specific tools.
-Meeting, Analysis and Planning.
-Implementation.
-Unit testing.
-Integration and Issue Fixing.
-Documenting.
-Packaging, Deployment and Public releases.
-Web Hosting, Marketing and Launching.
This would stretch to an eight month time frame, more or less of about 1 hour of work a day.
c. Work Environment
I propose the following:
-We should choose a common communication environment for all teams, for example an egroup and special meetings if needed.
-Teams would be of two people or more, the structure of the project should allow them to work independent of the progress of other teams.
-Each team would choose their own implementation plans as well as meeting and communicational means.
-We should all agree on common scheduled integration phases to realize where we stand, what went wrong and what to do next.
-As early as possible we should consider issues of sizing, financial expenses of hosting, marketing (could include ads on google, msn messenger, even local radio channels…).
-All through the way we should be thinking of how to branch releases to enable exclusive sneak peeks that we could give to top software reviewing sites so as to please them as well as boost our advertising campaigns.
-Decisions about how the download (not search) site would look like, whether it should be outsourced…etc.
-Having the internal code as much readable as possible, as if it was an open source project, which might come in handy if google buys the project or something
-At all times keep the resources accessible and configurable as most as possible to enable anyone to make us translation scripts, the more languages we speak the more the volume of users and knowledge the system collects.
-At a certain point we will have to consider writing down a professional privacy policy and terms of agreement and copyrights materials.
--------------------End.

0 Comments:
Post a Comment
<< Home