NLNet application for UOI Call August 2021 » History » Revision 2
« Previous |
Revision 2/38
(diff)
| Next »
jahoti, 07/05/2021 04:39 AM
Swap code blocks for blockquotes
NLNet application for UOI Call August 2021¶
Please note:
NLNet privacy statement.
When a project gets selected, it will legally need to retain your information for compliance purposes for at least seven years.
TODO:
- confirm Wojtek is OK with submitting the application/being the contact
- rename the extension
- get a website up
- reference the documentation for in-depth material, rather than stuffing it in the answer
- Table of contents
- NLNet application for UOI Call August 2021
- Note for answers:
- Abstract: Can you explain the whole project and its expected outcome(s).
- Have you been involved with projects or organisations relevant to this project before? And if so, can you tell us a bit about your contributions?
- Requested Amount (in Euro)
- Explain what the requested budget will be used for? Does the project have other funding sources, both past and present?
- Compare your own project with existing or historical efforts.
- What are significant technical challenges you expect to solve during the project, if any?
- Describe the ecosystem of the project. How will you engage with relevant actors and promote the outcomes?
- Thematic call
Note for answers:¶
Please be short and to the point in your answers; focus primarily on the what and how, not so much on the why. Add longer descriptions as attachments. If English isn't your first language, don't worry - reviewers don't care about spelling errors, only about great ideas. Apologies for the inconvenience of having to submit in English. On the up side, you can be as technical as you need to be (but you don't have to). Do stay concrete. Use plain text in your reply only, if you need any HTML to make your point please include this as attachment.
Attachments should only contain background information: Please make sure that the proposal without attachments is self-contained and concise.
Accepted formats: HTML, PDF, OpenDocument Format and plain text files.
Abstract: Can you explain the whole project and its expected outcome(s).¶
No more than 1200 characters.
Hachette aims to make a user-operated Web feasible by transferring control over some of the most complex and powerful features of the modern "Web Trinity" away from web developers and back to readers.
It is a browser extension that will
- (optionally) block JavaScript and other powerful components of webpages;
- inject any script(s) specified for the page, whether locally stored
- or downloaded as needed and (optionally) verified by SHA256 hash;
- provide an easy way to create script entries for and edit the blocked contents of a page
- or other common customizations (e.g. restyling, translation, changing page layout);
- and provide functionality similar to a modern package manager to allow users to share their work.
A complementary social approach will support this effort. By providing a compelling, useful tool, the project will have the opportunity to present the case for further movement towards a user-operated Web to a wider audience, as well as to incentivize community-friendly web development practices through control of the default script package repository (and thus influence over what most users will run on a given website).
Have you been involved with projects or organisations relevant to this project before? And if so, can you tell us a bit about your contributions?¶
Optional; this can help determine if you are the right person to undertake this effort
Requested Amount (in Euro)¶
Between 5000 and 50000
Explain what the requested budget will be used for? Does the project have other funding sources, both past and present?¶
If you want, you can in addition attach a budget at the bottom of the form. Fundable activities are listed at https://nlnet.nl/useroperated/eligibility/.
Current intended uses (costs to be determined):
- Research into the distribution of free JavaScript and non-free JavaScript critical for site functionality on the modern web as it applies to determining the most effective ways of discovering and packaging already acceptable JavaScript and allocating resources to develop replacements for non-free, privacy-invading, or otherwise unacceptable JavaScript.
- Design and development of Hachette (available under the GPLv3)
- Writing documentation for researchers, developers and end users
- Understanding how individuals are likely to use Hachette
- Making Hachette usable for a broad audience, including those with relatively little technical understanding and those with impairments or disabilities
- Distribution in extension stores and GNU/Linux package managers, including streamlined processes for automatically updating published packages and extensions
- Project management
- Domain Name
- SSL Cert
- Hosting for VCS, Project management software, website, and script repo
- Other activities that are relevant to adhering to robust software development and deployment practices
Compare your own project with existing or historical efforts.¶
What is new, more thorough, otherwise different, etc.
- GNU LibreJS is the closest available comparison, as a project which also combines a browser extension with a social approach to push for greater user control of the software webpages require. Hachette draws both inspiration and code from LibreJS, and will likely continue to do so.
However, the very narrow scope of LibreJS makes it unsuitable for the wider goals of Hachette. It only supports GNU IceCat, while this project has been built from the start for both Firefox- and Chromium-based browsers with plans for more. Likewise, LibreJS only concerns itself with giving users the legal right to modify the JavaScript their browser runs, whereas Hachette aims to provide a concrete way for anyone to modify the logic, visual layout, and other facets of what a browser presents when it loads up a webpage.
- Ad blockers overlap with the blocking functionality of the extension, and will likely continue to provide a source of code for this purpose as they have on previous occasions.
Unfortunately, due to the focus of these tools on trying to filter out trackers, ads or untrusted resources rather than simply ones that can be removed or replaced using an injecting tool (as Hachette seeks to do), no known such tool provides a suitable blocker and level of control without an extremely over-complicated interface and significant initial configuration.
- Userscript managers (e.g. GreaseMonkey and ViolentMonkey) have a long history of providing independent script injection on websites, yet differ wildly and irreconcilably from Hachette. All known examples use special browser environments to run code designed to enhance the default presentation of a page, with convenient APIs available that extend what is available to script that would run in a page. For the purpose of simply running independent copies of scripts that come from a site or libre replacements and redesigned versions of these, however, such special treatment is both an unnecessary security risk and an extra complicating factor in packaging scripts from websites. While such "enhanced scripts" may be considered in the future, they are not a priority.
Additionally, the concept of the userscript aligns poorly with that of a script package. The latter format is designed with the intent for a richly functional local package manager to help manage and control it in a way that maintains the integrity, security, and consistency of the local environment, which is exceedingly difficult and even impossible to replicate with the much lightweight and less standardized nature of the former.
What are significant technical challenges you expect to solve during the project, if any?¶
Optional but recommended
Describe the ecosystem of the project. How will you engage with relevant actors and promote the outcomes?¶
E.g. Which actors will you involve? Who should run or deploy your solution to make it a success?
Thematic call¶
Included as a reminder- make sure to set this to User-Operated Internet Fund.
Updated by jahoti about 2 years ago · 2 revisions