Make our own web browser
We want full programmable control of what we see.
- 1What features do we want?(51w~1m)
- 2Design a web browser(207w~2m)
- 3What?(240w~2m)
1What features do we want?
- Fix the Internet from the client side
- Block cookies from Medium, New York Times, Harvard Business Review, etc.
- Fix Pinterest and Quora
- Block all third-party ads
- Try HTTPS first when the user enters a URL without a protocol scheme
- Watch YouTube at 2x-3x speed; <2019-04-24> we can speed it up to 16x1.
2Design a web browser
- 2.1Why stop at web browser?(81w~1m)
- 2.2What is the most important thing of a web browser?(60w~1m)
- 2.3Why do browsers have history?(37w~1m)
- 2.4Parts of a browser(29w~1m)
2.1Why stop at web browser?
What we want is not a web browser. What we want is a user interface for the Internet.
We should dream more about the browser. We should have an Information Agent instead of a browser. But this risks scope creep; we'll end up making an operating system. Indeed Firefox and Chrome has already done that with Firefox OS and Chrome OS.2
The browser should also be a crowd-sourced search engine and a peer-to-peer web hosting?
Opennic https://mastodon.ar.al/@aral/101714998469668580
Rethinking the web browser
2.2What is the most important thing of a web browser?
The user is in full control of everything, including the content displayed to him. The user can program the browser to transform badly-designed websites. The user should not need to install a plugin such as Greasemonkey, Tampermonkey, or any other "user script manager" to have full control of what is displayed.
2.3Why do browsers have history?
What is the chance that the user asks one of these:
- What did I just browse?
- What did I browse yesterday?
What is the chance that the user wants to revisit something?
I myself often need that.
https://www.computerhope.com/issues/ch001871.htm
2.4Parts of a browser
- cache and history
- HTTP
- HTML parsing
- rendering HTML DOM to GUI widgets
What we choose not to do:
- plug-ins, extensions
- themes, customizations
Who are going to maintain the plugins?
Should we just embed WebKit?
https://www.paulirish.com/2013/webkit-for-developers/
3What?
- 3.1How hard is it to secure a browser?(85w~1m)
- 3.2Search engine?(65w~1m)
- 3.3Why don't users use distributed systems?(92w~1m)
3.1How hard is it to secure a browser?
Very hard.
We may think that API A is secure and API B is secure, but when we use them together, A+B may not be secure.3
How do we make systems whose security is composable?
How do we prove that a system is secure? How should we model security?
[1] is a possibility. But what if new unforeseen side-channel attacks appear in the future?
We must model the time and energy usage of each CPU instruction. But the CPU is not open source?
3.2Search engine?
Is AntRank4 usable?
I find YaCy5 unusable: its search result relevance is too far behind Google. YaCy-related things67 seem to also suffer from usability issues.
Unfortunately, it's 2019, NAT is still common, and I don't see IPv6 anywhere near my computer.
Perhaps it is a bad idea to allow every device to be connected to the Internet. Weakly-passworded IP cameras were hijacked and put into a botnet.
3.3Why don't users use distributed systems?
Users don't care; they want software to just work.8
We should make a "freedom pack": an installer of essential free/libre open-source distributed-web applications. The pack might contain things like matrix.org, riot.im. But why stop there? Why not make free/libre distributed operating system9 with all those goodies preinstalled?
Example of federated/decentralized social networks: Kari Nordmann's comment10: "Explore federated (decentralized) social networks (Mastodon, diaspora*, Friendica, Hubzilla, GNU Social, Socialhome, Pleroma, GangGo)"
[1] Barthe, G. et al. 2017. Provably secure compilation of side-channel countermeasures. IACR Cryptology ePrint Archive. 2017, (2017), 1233. url: <https://eprint.iacr.org/2017/1233.pdf>.
https://www.quora.com/Is-there-a-way-of-watching-YouTube-videos-at-higher-than-2x-speed↩
https://www.quora.com/Why-did-the-Chrome-OS-succeed-but-the-Firefox-OS-failed↩
https://www.ghacks.net/2018/11/04/browser-history-sniffing-is-still-a-thing/↩
http://www.ijettcs.org/Volume3Issue2/IJETTCS-2014-04-23-113.pdf↩
https://www.pcworld.com/article/245414/yacy_its_about_freedom_not_beating_google.html↩
https://loklak.org/ Loklak Search - Distributed Open Source Search for Twitter and Social Media with Peer to Peer Technology↩
https://chat.susi.ai/ SUSI.AI Chat - Open Source Artificial Intelligence↩
"Decentralized systems will continue to lose to centralized systems until there's a driver requiring decentralization to deliver a clearly superior consumer experience." http://highscalability.com/blog/2018/8/13/what-do-you-believe-now-that-you-didnt-five-years-ago.html↩
https://medium.com/@rxpvh2000/where-are-the-programmers-who-give-a-shit-d27ad2ef24fc↩