summaryrefslogtreecommitdiffstats
path: root/2023/talks/web.md
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--2023/talks/web.md147
1 files changed, 147 insertions, 0 deletions
diff --git a/2023/talks/web.md b/2023/talks/web.md
new file mode 100644
index 00000000..f4b05d7e
--- /dev/null
+++ b/2023/talks/web.md
@@ -0,0 +1,147 @@
+[[!meta title="Emacs saves the Web (maybe)"]]
+[[!meta copyright="Copyright © 2023 Yuchen Pei"]]
+[[!inline pages="internal(2023/info/web-nav)" raw="yes"]]
+
+<!-- Initially generated with emacsconf-publish-talk-page and then left alone for manual editing -->
+<!-- You can manually edit this file to update the abstract, add links, etc. --->
+
+
+# Emacs saves the Web (maybe)
+Yuchen Pei (he/him, pronounced: "eww-churn pay"), IRC: dragestil, <mailto:id@ypei.org>, <https://ypei.org>, mastodon: dragestil@hostux.social
+
+[[!inline pages="internal(2023/info/web-before)" raw="yes"]]
+
+On one hand, Emacs is the crown jewel of the GNU Project for its
+customisability and the ability to effortlessly convert users to
+hackers. On the other hand, today many of the sticky issues with
+proprietary software proliferation stems from the web, including the
+Javascript trap[1] on the client side and the SaaSS trap[2] on the
+server side. So enters the topic of this talk. I will briefly talk about
+these issues and existing non-emacs solutions, followed by ideas and
+demonstrations on how Emacs can fix user freedom on the web, including:
+emacs clients for specific websites and services, emacs-based browsers
+aka universal frontends, transformer of emacs packages to web apps and
+firefox browser extensions, and more.
+
+- [1] <https://www.gnu.org/philosophy/javascript-trap.html>
+- [2] <https://www.gnu.org/philosophy/who-does-that-server-really-serve.en.html>
+
+Projects and tools mentioned in the talk:
+
+- LibreJS <https://gnu.org/s/librejs>
+- lynx <https://lynx.invisible-island.net>
+- noscript <https://NoScript.net>
+- GreaseMonkey <https://www.greasespot.net/>
+- Haketilo <https://haketilo.koszko.org>
+- mitmproxy <https://mitmproxy.org>
+- Invidious <https://invidious.io>
+- youtube-dl <https://youtube-dl.org>
+- libretube <https://libre-tube.github.io>
+- newpipe <https://newpipe.net>
+- woob <https://woob.tech/>
+- Redirector <http://einaregilsson.com/redirector/>
+- libredirect <https://libredirect.github.io>
+- openwith <https://addons.mozilla.org/addon/open-with/>
+- mastodon.el <https://codeberg.org/martianh/mastodon.el>
+- mastorg <https://g.ypei.me/dotted.git/tree/emacs/.emacs.d/lisp/my/mastorg.el>
+- sx.el <https://github.com/vermiculus/sx.el>
+- buildbot.el <https://g.ypei.me/buildbot.el.git/about/>
+- emacs-hnreader <https://github.com/thanhvg/emacs-hnreader>
+- emacs-w3m <https://emacs-w3m.github.io/>
+- luwak <https://g.ypei.me/luwak.git/about/>
+- url-rewrite <https://g.ypei.me/url-rewrite.git/about/>
+- wkhtmltopdf <https://wkhtmltopdf.org>
+- pdf-tools <https://github.com/vedang/pdf-tools>
+- emacs-web-server <https://elpa.gnu.org/packages/web-server.html>
+- yolo.el <https://g.ypei.me/dotted.git/tree/emacs/.emacs.d/lisp/my/yolo.el>
+- bom.el <https://g.ypei.me/bom.el.git/about/>
+
+About the speaker:
+
+Yuchen is a computer programmer, mathematician and free software
+advocate based in Melbourne, Australia. He is addicted to writing
+Emacs packages[3], of which a few has made into ELPA. He likes to
+claim to be the only free software advocate in Australia, in the hope
+that someone will correct him and point him to fellow comrades
+fighting for user freedom in Oz.
+
+- [3] <https://g.ypei.me>
+# Discussion
+
+## Questions and answers
+
+- Q: I like the idea of using org mode to display data from the web.
+ Are there many different packages that does that? (I am newish to
+ Emacs, so maybe this is obvious to everyone else.)
+ - A: dragestil uses roughly 10 packages that display data from the
+ web.  Roughly half of them are org-mode based
+- Q: Have you tried EAF (Emacs Application Framework) and its browser?
+ If yes, what is your opinion about it?
+ - A: No I haven't. My impression is it would run javascript by
+ default. Not sure whether it has any extensions to block js. A
+ nice comparison between different browsers including EAF, nyxt
+ and emacs-webkit can be found in the readme file of
+ <https://github.com/akirakyle/emacs-webkit>
+- Q: I find the JavaScript trap almost impossible to avoid since I
+ like to buy used stuff online and use my online bank. How do you
+ deal with the JavaScript trap? I use NoScript and compromise on the
+ few things I really feel I cannot live wihtout. Eww is nice for a
+ lot of things, especially with R for less noise, but I need Firefox
+ for those JS-entrapped pages...
+ - A: Unfortunately I don't have a solution for that. I run
+ nonfree javascript when doing banking or online shopping, though
+ in a more isolated environment (mullvad browser) with a VPN.
+ It's a tiny portion of my online activity (<.1% I suppose), so
+ it's not *that* bad
+ - However, that does not mean emacs cannot help. woob has a few
+ clients interfacing with online banking, so perhaps at least
+ some banks allow the possibility of non-js client. It would be
+ good to look into this.
+- Q: This is not really relevant to the talk, but I am curious about
+ your nickname. Do you have some connection to Norway? Your nick
+ indicates an interest in the architectural style inspired by the
+ decoration on viking ships that was popular in the early 20th
+ century. dragestil = dragon style
+ - A: dragestil is my favourite architectural style. Look at these
+ images on wikipedia <https://en.wikipedia.org/wiki/Dragestil> -
+ aren't they gorgeous? I've only seen one of these famous ones
+ in real life, the Buksnes Church on Lofoten Islands.
+- Thoughts about Nyxt; about its aims, its approach, its relevance,
+ etc.?
+ - Very early on, ran into issues with keybindings. More
+ specifically, some conflicts between binding j to follow-hint in
+ document mode and C-s/C-r to next-suggestion/previous-suggestion
+ in prompt buffer mode. Did not continue with trying nyxt because
+ keybindings are basic functionalities IMO. Might revisit
+ someday. nyxt has a noscript-mode btw that blocks javascript. A
+ nice comparison between different browsers including EAF, nyxt
+ and emacs-webkit can be found in the readme file of
+ <https://github.com/akirakyle/emacs-webkit>
+- Q: so trying to understand, is emacs being used as a web proxy to scrub potentially privacy attacking JS?
+- Q: Anyone else here has experimented with Nyxt? I haven't much, but can't say there's not an overlap with some of the ideas of Emacs and all. Just curious.
+ - Not the speaker:
+ - I recommend qutebrowser over nyxt. For me it was just easier to use, customize and has better user experience.
+ - I do/did too. But then it occurred to be that a very simple locally-loaded extension might very well be able to transform any of the major browsers into 99 + of Nyxt when paired with an Emacs backend (and websocket async bidirectional communication between the two)... (when said extension is made of a service worker part and a per-page part, to access both browser-level API/state, and page-level DOM, with just these two bits) e.g. could expose/present open tabs as pseudo-buffers (à la "virtual buffers/files"), candidates for completion, and such
+
+## Notes
+
+- mastorg for mastodon
+- hacker news in org mode
+- emacs-web-server for hosting things from Emacs
+- Dang, this is really a great demo.
+- I love how he's using org-mode to do it all.
+- It might actually save the web!
+- Emacs as a Firefox extension!!! Ha!
+- Definitely some interesting ideas in that one, and the literate form is top-notch. Warrants a focused rewatch for me (back-n-forth between 2 talks is not conductive to my best focus it seems...)
+- I *really* like Org-Babel as a bridge to make complex one-off tasks ("why did the stuff in the database get into this state?" type things, usually) reproduceable and version-controlled.
+ - Hear hear! Howard's talks over the years have converted me to do pretty much anything in Org-mode in literate form at this point :)
+- I use org-babel for recurring tasks that I need to remember. Things I have to run once a month, etc. I guess I could use cron, but usually they aren't really time sensitive enough. Or they are things like clearing my mu4e trash, which requires that I quit mu4e.
+- "It's not Emacs!" Ha!
+
+
+
+[[!inline pages="internal(2023/info/web-after)" raw="yes"]]
+
+[[!inline pages="internal(2023/info/web-nav)" raw="yes"]]
+
+