<p><pre><code> I miss: bookmarklets and user scripts
</code></pre>
I use bookmarklets all the time. I can't imagine living without them. For example, this is how I read HN:<p><a href="https://twitter.com/marekgibney/status/1551483561621979136" rel="nofollow">https://twitter.com/marekgibney/status/1551483561621979136</a><p>The bookmarklet takes me to the latest HN post I have not seen. When I click it again, it takes me to the next I have not seen. As soon as I see a post I have seen before, I know I am up to date.<p>I can't imagine reading HN any other way. Because otherwise, I would have to skim the whole front page to see what's new.<p>It also works on threads. So, when I post something on HN and want to see the latest replies, the same bookmarklet does this for me.<p>I have bookmarklets for every site I use frequently.
I thought this would be about the glory days of “Mash-ups” using web APIs. Flickr + Twitter + Delicious tags to create a new experience. 2007 ? What a period to be a hacker!
My most used bookmark is this, for speeding up the first audio or video element on the page. I suppose that's if you don't count me typing 'n' and auto-completing my way to hacker news.<p><pre><code> javascript:(function() { (document.querySelector('video') || document.querySelector('audio')).playbackRate = (+prompt('How many times normal speed?') || 1); })();</code></pre>
It's become harder to develop stupid simple bookmarklets because modern web pages are trickier to reverse-engineer, the market has expanded by a lot, and now people can make working on handy WebExtensions their full time job, and those are nothing more than bundled userscripts and bookmarklets that have access to some bonus APIs.<p>It used to be browser extensions were only used by a select few power users, if you don't count those installed by malware/shitware. Now it's common to see folks who only use their computers for Instagram and Youtube having all sorts of browser extensions installed intentionally, and use regularly. And they're essentially just bookmarklet/userscript bundles with access to some special extra APIs.<p>What's more, with the proliferation of Electron in desktop applications, now even more of the UIs we use are programmable.
I miss the 3D web. In the late 90's Silicon Graphics machines came with an out of the box experience delivered by Netscape Navigator. The page was rendered in frames, so you only downloaded the navigation frames once, not with every click.<p>Some of this navigation and some of this content was in VRML that you could interact with. The full product tour could be explored in a 3D world. The UI UX did not seem OTT. It felt like the future.<p>It turned out that the excellent CosmoWorlds VRML authorship tools were just a little bit ahead of their time and there was little of the expected interest. We ended up with a flat 2D web rather than a 3D web. Sure this makes sense but the tools you have available frame how you solve problems.<p>Also out the box was a web server. You put HTML (and VRML) in your shared web folder and your machine instantly had your stuff available on the local network and you could route to the machine from the internet if you had the networking skills to set that up.<p>It was all in the original Tim Berners Lee vision, you could imagine how this would make sense in academia, with academics in a department able to put all their work/knowledge on the web very easily.<p>In this SGI version of the 3D web it was the javascript that glued it all together, VRML was made useful with scripting which could go across those frames to put together an awesome web experience, rose tinted spectacles accepted.<p>We aren't even thinking along those lines these days. The web has gone, we have platforms now.
I'm still happily using userChrome.css and userContent.css in Firefox to customize both its UI as well as a couple of sites I visit regularly. To do so, you need to enable toolkit.legacyUserProfileCustomizations.stylesheets in about:config.
Huh? Userscripts are dead according to author, but I apparently never got the notice because I have about a dozen of those things installed right now. Three of them are for YouTube because it's this much annoying as is.
On a related note, Chrome has removed its user stylesheet feature years ago. I've often asked myself why we then still need this "cascading" of style sheets. It seems to have degenerated into a feature for web developers who can't make up their minds, and pushing conflicting styles to every browser for late evaluation, negatively impacting energy consumption. Or maybe they want component-like behaviors from their third-party stuff they can then adapt and override, but at the same time the comfort of not having to do so when unnecessary? And they don't want preprocessing either; nope, it has all to be in the browser, with accessibility a fig leaf for this complexity. In other words, CSS was hijacked by web devs for their convenience, as can also be seen by the custom properties feature, the upcoming nesting feature, and so on.<p>Another way to say this is that we have <i>web developers</i> now when the original web was for <i>web authors</i>.
I got my first dev job at a call center because bookmarklets, I was a phone operator and hacked some internal websites to improve the UX and the speed, everyone ended using these bookmarklets (coded in word and then minified running another script in the browser console).<p>Grease monkey is still alive, I added voice recording and speech to text transcription to Slack before they did.
My most used bookmarklets are two: both find the last number in the URI path and increment or decrement that number. Perfect for paged websites. I'm using these for almost twenty years. If sometimes Safari removes the function to activate Favorites via ⌘1 to ⌘9 my whole muscle memory will be screwed.<p>For almost twenty years I'm thinking of expanding these two bookmarklets to use the rel=next/previous link relations instead, but I don't have high hopes in the quality of the markup of the web anymore. Which is a small problem for the idea of a programmable web. The deeply nested div trees which often result of modern frontend development and weird CSS methodologies are as worse as the table layouts of yore.
>The security benefit to consumers of blocking user scripts is probably a net positive for the average internet user.<p>Strong disagree. Extensions and User scripts are an unmapped wild west.<p>Providing a registry type system to securely vend packages/scripts is a very hard security problem.<p><a href="https://www.bleepingcomputer.com/news/security/mozilla-blocks-malicious-add-ons-installed-by-455k-firefox-users/" rel="nofollow">https://www.bleepingcomputer.com/news/security/mozilla-block...</a><p><a href="https://iamakulov.com/notes/npm-malicious-packages/" rel="nofollow">https://iamakulov.com/notes/npm-malicious-packages/</a>
Whether they're gone or not, I definitely want _more_ of these. I've had great success with shared Tampermonkey scripts at work, augmenting off-the-shelf tools my team uses with conveniences specific to our team. For example, automatically extracting relevant bits within noisy logs when browsing CI results, or providing buttons that kick off narrow re-runs or link to relevant source files. CSS injections are great too, a very lightweight way to improve the accessibility and usability of tools.
Userscripts are alive and well! I use Tampermonkey in conjunction with an Amazon seller extension (which I won't name because I'm not really using it as intended). The extension displays, among other things, a flag icon next to a product listing indicating the seller's country. My script hides the extension's entire UI and replaces it with a country filter. It can be really useful to filter down to US sellers only, and only see brands that are well established here
Kind of reminds of the days of Yahoo! Toolbar and friends. I think today we have several ways we can go about this. There are browser extensions that can be used to both complement and alter the behavior of a website. Extensions can interact with the OS and other apps on a system which offers a lot of potential for integrations and customization. (e.g., on iOS/macOS, Shortcuts allow integrations with 3rd party apps, AppleScript, PowerShell (on Windows), etc.)
How did these user scripts work? I don't get how they could be "blocked" now. I've made my own snippets of JS to run on certain sites before.
I love the programmable web!<p>I wanna give a shoutout to Stylus[0] for offering userstyles (basically the same thing as TamperMonkey but for .css files)<p>[0] <a href="https://addons.mozilla.org/en-US/firefox/addon/styl-us/" rel="nofollow">https://addons.mozilla.org/en-US/firefox/addon/styl-us/</a>
Maybe because we have an extension for almost everything. If not enough, tempermonkey still works for nearly everything I am doing. I also use stylebot here and there for visuals and block elements with adblock. I am not sure if I understood the author's problem.
> I made it possible to generate a new document by loading, e.g. javascript:'hello, world'<p>It never occurred to me to try, but I think this is still possible even without the javascript: URI scheme, as there’d be nothing stopping you from putting an inline <script> in an HTML page described by a data: URI, and bookmarking said data: URI.<p>Not sure what the browser would consider that data: page’s HTTP origin to be for cookie / CORS purposes, though.
this has nothing to do with security and everything to do with trying to charge $4.99 a month for everything to the maximum extent permissible under law.
Writing userscripts and CSS filters
becomes more tedious each few years,
especially mucking with dynamic DOM
and complex frameworks websites tend to
use now. WASM and obfuscated/minified javascript made "programmable web" impossible in practice.
I used to write a lot of small user scripts because they allow me to easily add functionalities to a certain website without worrying about UI and shit like when building a browser extension.
I think this is one of the highest aspirations of web3. API's baked in so deep that it's literally part of the protocol. Rate limited by price.
I used hate ORMs and a few weeks ago i tried one just to improve my productivity and guess what i had to spend 2 days to figure out the problem that crashing my MySQL server. It turned out to be a ton prepared statements by the ORM.<p>Simple web is better.
I don't miss them very much. The whole thing was a security nightmare and I am glad Mozilla dropped XUL. I think they truly had to.<p>I get the utility but I suspect writing greasemonkey scripts for SPAs might not be a great experience.
I miss the "immediate web". Being able to work on simple things without feeling like they are useless, pointless or perceptibly outdated.<p>Now it's install node, install git, install npm, install a gazillion packages, run localhost then hope everything works. Build command, clean command, eject commands, deploy command, pre processors, post processers, documentations full of so much jargon that i feel burnt out looking at it, hydration rehydration, pre-rendering, headless cms....on and on.<p>I find myself reverting to writing simple bash scripts, userscripts - they are more enduring, not built on a stack of fickle dependencies, fads and ever increasing complexity.