Project

General

Profile

NLNet application for UOI Call August 2021 » History » Version 26

koszko, 07/28/2021 10:35 AM

1 1 jahoti
# NLNet application for UOI Call August 2021
2
3
Please note:
4
> [NLNet privacy statement](https://nlnet.nl/privacy).
5
> When a project gets selected, it will legally need to retain your information for compliance purposes for at least seven years.
6
7
TODO:
8 16 jahoti
* settle personal/organizational details for filing
9 10 jahoti
* rename the extension #30
10
* get a website up #35
11 1 jahoti
12
{{toc}}
13
14
## Note for answers:
15
> 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.
16
>
17
> Attachments should only contain background information: Please make sure that the proposal without attachments is self-contained and concise.
18
> Accepted formats: HTML, PDF, OpenDocument Format and plain text files.
19
20
## Abstract: Can you explain the whole project and its expected outcome(s).
21
No more than 1200 characters.
22
23 13 jahoti
> A browser extension, "Hachette", (later possibly also an HTTP proxy and custom web browser) will be developed that facilitates browsing websites with custom changes (e.g. substituted page scripts, different site styling, alternative or aggregate interfaces for sites, accessibility&usability fixes, user translations, etc.) and makes it easy to edit such resources or develop them from scratch. Websites that force proprietary javascript, spyware and anti-features upon visitors will become fixable.
24 1 jahoti
>
25 11 koszko
> A project-maintained default repository, "Hydrilla", will serve as a rallying point, providing not only a comprehensive and trustworthy source of libre, privacy-respecting, secure and generally ethical site resources (including community-developed ones), but also a forum to share opinions about sites and to offer or solicit help with fixing problematic ones. Such a central hub further provides a unified body to negotiate with and pressure or advocate for particular website owners, strengthening the movement for a user-operated Internet.
26
>
27
> All parts of the project shall be freely licensed (GPL, CC BY-SA).
28 1 jahoti
29
## 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?
30
Optional; this can help determine if you are the right person to undertake this effort
31
32 25 koszko
> Our team currently consists of the following members:
33
> * Wojtek (project maintainer) (<https://koszko.org/en/koszko.html>) **TODO: maybe attach CV when sending the application**
34
> * Jahoti (<https://jahoti.tilde.team>)
35
> * Nick (<https://nicksphere.com>) **TODO: maybe attach resume when sending the application**
36
>
37
> Our experience:
38
> * This project itself, consisting of Hachette (<https://hachettebugs.koszko.org/projects/hachette>) and Hydrilla (<https://hachettebugs.koszko.org/projects/hydrilla>), already exists as a simple yet functional setup. It is mostly written by Wojtek, with some contributions from Jahoti and Nick, and Hydrilla is entirely Wojtek's work.
39 1 jahoti
> * Nick has studied Distributed Networks & Cybersecurity at Southern Illinois University Edwardsville, graduating with a major in the field.
40 25 koszko
>
41
> **TODO: should Colby's experience go here, and if so what apart from Firefox and triplescripts does he have?**
42
> **Thought: Colby doesn't show activity. We'll probably have to omit him in the application :/**
43
> 
44
> Additionally, we are consulting possible security issues of Hachette and the repository with Richard Stallman himself. (**TODO: wait for confirmation that we can indeed mention this in the application**)
45 19 jahoti
46 1 jahoti
## Requested Amount (in Euro)
47
Between 5000 and 50000
48
49 25 koszko
We'd like to apply for a **€8422** grant to fund the necessary infrastructure (for 3 years) and 4 months of 2 developers' full-time work.
50 1 jahoti
51 25 koszko
Additionally, we prepared a table showing how many months of developers' work we could fund in case of different budgets*. Longer work means the ability to deliver a more featureful product.
52
53 24 jahoti
|Months allocated|Budget|
54 23 jahoti
|:---------------|:--:|
55 25 koszko
|2               |€5810|
56
|4               |€8422|
57 23 jahoti
|6               |€11034|
58
|8               |€13646|
59 1 jahoti
|10              |€16258|
60
|12              |€18870|
61 23 jahoti
|16              |€24094|
62
|20              |€29318|
63
64 25 koszko
\* might be cut if some infrastructure is dropped
65
66 24 jahoti
## Explain what the requested budget will be used for? Does the project have other funding sources, both past and present?
67 1 jahoti
If you want, you can in addition attach a budget at the bottom of the form. Fundable activities are (<https://nlnet.nl/useroperated/eligibility/>):
68 24 jahoti
69
1. scientific research
70
1. design and development of open source software and open hardware
71
1. validation or constructive inquiry into existing or novel technical solutions
72
1. software engineering aimed at adapting to new usage areas or improving software quality
73
1. formal security proofs, security audits, setup and design of software testing and continuous integration
74
1. documentation for researchers, developers and end users
75
1. standardisation activities, including membership fees of standards bodies
76
1. understanding user requirements and improving usability/inclusive design
77 23 jahoti
1. necessary measures in support of (broad)er deployability, e.g. packaging
78 1 jahoti
1. participation in technical, developer and community events like hackathons, IETF, W3C, RIPE meetings, FOSDEM, etc. (admission fee, travel and subsistence costs)
79 11 koszko
1. other activities that are relevant to adhering to robust software development and deployment practices
80
1. project management
81 7 jahoti
1. out-of-pocket costs for infrastructure essential to achieving the above
82 1 jahoti
83 6 jahoti
84 25 koszko
Current intended uses:
85 6 jahoti
86 1 jahoti
* Infrastructure
87 15 jahoti
    * Domain Name, 3 years (€ ~72)
88 1 jahoti
    * SSL Cert, 3 years (€ ~534)
89 25 koszko
    * Hosting for VCS, Project management software, website and script repo, 3 years (€ ~2592)
90 1 jahoti
* Human labor
91
    * Project management
92
    * Social
93
        * Understanding what features users most want from Hachette
94 25 koszko
        * Writing documentation for users for Hachette and Hydrilla
95 9 jahoti
        * Determining effective methods to automatically aggregate already-available free JavaScript used on websites
96 11 koszko
        * Studying what sites should be prioritized for fixing to deliver maximum impact
97 25 koszko
        * Ensuring accessibility of Hachette and Hydrilla for potentially underrepresented demographics
98 1 jahoti
        * Distribution of Hachette in extension stores (as long as freedom and access concerns allow)
99 25 koszko
        * Distribution of Hachette and Hydrilla in GNU/Linux package managers
100 6 jahoti
        * Setting up and moderating the Hydrilla repository
101 9 jahoti
            * Developing and writing policies for packages, packagers and (if adopted) auditors
102
    * Technical
103 25 koszko
        * Design and development of Hachette and Hydrilla (available under the GPLv3)
104
        * Writing developer documentation for Hachette and Hydrilla
105
        * Implementing accessibility of Hachette and Hydrilla for potentially underrepresented demographics
106
        * Writing and performing rigorous testing of Hachette and Hydrilla
107
        * Configuring a comprehensive automatic build and publishing process for Hachette and Hydrilla
108 15 jahoti
        * Support for MV3 in Hachette
109 1 jahoti
        * Creating and porting independent fixes and enhancements for some websites
110
        * Security vetting on Hydrilla
111
112
## Compare your own project with existing or historical efforts.
113
What is new, more thorough, otherwise different, etc.
114 11 koszko
115 8 jahoti
> - 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
116 1 jahoti
control of the software webpages require. Hachette draws shares the ideals with LibreJS. 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.
117
>
118 11 koszko
> - Ad and content 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, these tools only focus on trying to filter out trackers, ads or untrusted resources, giving the user passive but not active control over browsing.
119 1 jahoti
>
120 11 koszko
> - 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. While they do offer some facility to source custom user scripts from online repositories and keep them up-to-date, they are designed with supplementing websites with minor tweaks in mind. As a result they chose to execute user scripts in privileged environments instead of the non-privileged page's context, thus avoiding interference with page's own scripts but also creating a security risk. A viable solution should inject scripts right into a page, making them execute in a proper sandbox. An even broader capacity to inject and maintain collections of various resources- and even to edit and develop them- is also critical.
121
>
122
> - Hypothesis project offers facility for sharing annotations on web content. This idea is similar to one of our planned use-cases and it's even possible that Hachette will, at some point, support Hypothesis annotations. However, the general goals of this project are significantly broader.
123
>
124
> - Weboob tool implements graphical interfaces and programming APIs for various websites in Python programming language. It succeeds in achieving some of the goals we set in front of Hachette. The main difference is that our project sticks to the usual technological stack of the Web, decreasing the amount of work required and that it also covers creations of a repository that will allow for greater scalability. As Weboob's code is freely licensed, it is likely some pieces of it will at some point be rewritten into javascript and uploaded to Hydrilla.
125 1 jahoti
126
## What are significant technical challenges you expect to solve during the project, if any?
127
Optional but recommended
128
129 11 koszko
> * Porting to Manifest v3, especially while the standard and availability remain immature, will be a significant and important challenge.
130
> * Developing Hydrilla as secure and robust server software that can continue working even under high load.
131 25 koszko
> * Ensuring all functions of Hachette work properly under all supported platforms.
132
> * Testing javascript code that runs inside browser and uses a lot of browser APIs.
133 1 jahoti
134 10 jahoti
## Describe the ecosystem of the project. How will you engage with relevant actors and promote the outcomes?
135 13 jahoti
E.g. Which actors will you involve? Who should run or deploy your solution to make it a success?
136 10 jahoti
137 13 jahoti
> End-users, particularly those with a technical inclination, will be recruited through outreach efforts in fora and locations generally sympathetic to the ideals of a free and open web. They are critical as a community to both support and expand this project and create leverage for the repository to drive change in web design practices.
138 10 jahoti
>
139 18 jahoti
> Support from web developers and website owners is critical for long-term success in changing the web, as they collectively engineer its contents. Any who want our help in ethically (re)designing their creations will be offered as much support as physically possible; however, to break new ground among this group, it is expected that the leverage a strong community and influence over the repository afford will be needed.
140 2 jahoti
>
141 1 jahoti
> Contributors to fill the repository and/or work on the browser extension and infrastructure obviously play an important role in attracting new users and building leverage for the movement. At least while scripts are the primary offering, sufficient capacity for this should be available among the technically knowledgeable user base just as it currently is. Further effort and experience will be sought through GNU, and appropriate organizations for other types of customization as they are added.
142
143
## Thematic call
144
Included as a reminder- make sure to set this to **User-Operated Internet Fund**.
145 26 koszko
146
## Attachments
147
Perhaps attaching Wojtek's [CV](<https://koszko.org/en/cv-formal.pdf>) and Nick's resume would boost our chances?
148
149
Also, we could attach a short PDF with screenshots of sites broken by disabling JS and their versions fixed using Hachette.