The Wiert Corner – irregular stream of stuff

Jeroen W. Pluimers on .NET, C#, Delphi, databases, and personal interests

  • My badges

  • Twitter Updates

  • My Flickr Stream

  • Pages

  • All categories

  • Enter your email address to subscribe to this blog and receive notifications of new posts by email.

    Join 1,861 other subscribers

Archive for the ‘JavaScript/ECMAScript’ Category

0x48piraj/fadblock: Friendly Adblock for YouTube: A fast, lightweight, and undetectable YouTube Ads Blocker for Chrome, Opera and Firefox.

Posted by jpluimers on 2023/10/31

[Wayback/Archive] 0x48piraj/fadblock: Friendly Adblock for YouTube: A fast, lightweight, and undetectable YouTube Ads Blocker for Chrome, Opera and Firefox.

At the time of writing, it was available in these web-browser extension/addon stores:

A 404 was returned at [Wayback/Archive] https://addons.opera.com/en-gb/extensions/details/fadblock/ which I reported in [Wayback/Archive] Extension vanished from the Opera Addons page · Issue #15 · 0x48piraj/fadblock.

Via:

–jeroen

Posted in Chrome, CSS, Development, Firefox, JavaScript/ECMAScript, Opera, Power User, Scripting, SocialMedia, Software Development, Web Browsers, Web Development, YouTube | Leave a Comment »

Python code from @baekdal (find tweets you retweeted by someone else)

Posted by jpluimers on 2023/10/26

Need to try this out: [Wayback/Archive] Code from https://twitter.com/baekdal/status/1279123542144094208 and https://twitter.com/baekdal/status/1279123544052563968 (find tweets you retweeted by someone else)

Read the rest of this entry »

Posted in Development, JavaScript/ECMAScript, JSON, Python, Scripting, SocialMedia, Software Development, Twitter | Leave a Comment »

Chrome (likely also Firefox/Edge/Safari): no non-global way to workaround Bookmarklets failing on GitHub raw code with “Blocked script execution…”

Posted by jpluimers on 2023/10/18

Last year, I answered [Wayback/Archive] javascript – Bookmarklet to append a string to a URL – Stack Overflow (asked by [Wayback/Archive] Karlo Guidoni Martins, thanks!).

It is about not being able to run bookmarklets on pages hosted by for instance:

  • gist.githubusercontent.com
  • raw.githubusercontent.com

GitHub is an exception, as RAW files from these services do work fine:

At first sight, when running a Bookmarklet on those RAW GitHub served pages, you do not see an error: it just looks like the Bookmarklet does not work at all. The last part is right, but in the Chrome console you can actually see the error.

That error lead me to my answer:

Read the rest of this entry »

Posted in Bookmarklet, Chrome, Development, Firefox, JavaScript/ECMAScript, Power User, Scripting, Software Development, Web Browsers, Web Development | Leave a Comment »

GitHub – kellyjonbrazil/jc: CLI tool and python library that converts the output of popular command-line tools and file-types to JSON or Dictionaries. This allows piping of output to tools like jq and simplifying automation scripts.

Posted by jpluimers on 2023/10/17

I already knew about jq and jo (output: the echo for JSON), but not yet about jc for JSON.

Like jq is for querying (the sed for JSON), jc tries to be the universal parser of common command-line tools into JSON:

[Wayback/Archive] kellyjonbrazil/jc: CLI tool and python library that converts the output of popular command-line tools and file-types to JSON or Dictionaries. This allows piping of output to tools like jq and simplifying automation scripts.

Via [Wayback/ArchiveKris on Twitter: ““Jc” verwandelt den Output von üblichen Linux Kommandozeilen Tools in JSON. “Jc” kann auch als Import in Python Programmen verwendet werden und mit subprocess kombiniert werden. Danke, ⁦@janwalzer⁩ und ⁦@the_mutax⁩ für den Tip. “

A few weeks later though, Kris discovered that command-line tools aren’t that portable in their output format: [Wayback/Archive] Kris on Twitter: “As much as I love the idea of @kellyjonbrazil’s jc, this is not a winnable game. sigh Probably still better than a self-cooked parser, but the slightest bit of extra makes it catch fire in multiple possible ways …”

Read the rest of this entry »

Posted in *nix, *nix-tools, bash, bash, Development, JavaScript/ECMAScript, jo, jq, JSON, man/manual pages, mankier, Power User, Python, Scripting, Software Development | Leave a Comment »

Publishing a Github Gist to JSFiddle | Toolbox Tech

Posted by jpluimers on 2023/10/05

I like JSFiddle, but rather keep source code under my own version control.

I was curious, so queried [Wayback/Archive] gist as jssfiddle – Google Search and found [Wayback/Archive] Publishing a Github Gist to JSFiddle | Toolbox Tech

It has better steps than the official documentation at these links:

  • [Wayback/Archive] Pass response directly from a Github repo – JSFiddle Docs
  • [Wayback/Archive] Display fiddle from a Github repository – JSFiddle Docs

    Demo Directory/

    demo.js
    demo.html
    demo.css
    demo.details
    • demo.[ js | html | css ] contains fiddle code for the specific panel
    • demo.details is a description of the demo written in YAML
    ---
    name: Name of the Demo
    description: Some description, please keep it in one line
    authors:
    - John Doe
    - Jan Wisniewski
    resources:
    - http://some.url.com/some/file.js
    - http://other.url.com/other_filename.css
    normalize_css: no
    load_type: d
    ...
  • [Wayback/Archive] Display fiddle from Gist – JSFiddle Docs

    Read a demo from Github Gist and present it as a fiddle.

    Gist files structure

    fiddle.js
    fiddle.html
    fiddle.css
    fiddle.manifest
    File name
    Description
    fiddle.[js/html/css]
    Contains fiddle code for the specific panel
    fiddle.manifest
    YAML description of the Gist for JSFiddle to parse
    Manifest file example
    name: The Name of the Fiddle
    description: Some description, please keep it in one line
    authors:
      - John Doe
      - Jan Wisniewski
    resources:
      - http://some.url.com/some/file.js
      - http://other.url.com/other_filename.css
    normalize_css: no
    wrap: bpanel_js: 1
    panel_css: 1
    Manifest fields
    • panel_html – Language for HTML panel. Accepts:
      • 0 – HTML
    • panel_css – Language for CSS panel. Accepts:
      • 0 – CSS
      • 1 – SCSS
    • panel_js – Language for the JS panel. Accepts:
      • 0 – JavaScript
      • 1 – CoffeeScript
      • 2 – JavaScript 1.7
    • resources – List of external resources.
    • name – Fiddle title
    • description – Fiddle description
    • normalize_css – Normalize CSS by loading normalize.css before any CSS declarations.
      • yes – normalize
      • no – don’t normalize
    • wrap – Set the JS code wrap. Options:
      • l – On load
      • d – On DOM ready

–jeroen

Posted in Development, DVCS - Distributed Version Control, gist, GitHub, JavaScript/ECMAScript, JSFiddle, Scripting, Software Development, Source Code Management | 1 Comment »

Bookmarklet to navigate from a page to the most recent saved WayBack machine entry

Posted by jpluimers on 2023/10/04

A while ago, while writing last weeks post XPath based bookmarklets for Archive.is: more JavaScript fiddling!, I needed the most recent WayBack Machine archival of

https://developer.mozilla.org/en-US/docs/Web/XPath/Introduction_to_using_XPath_in_JavaScript

I vaguely remembered replacing the normal timestamp with a 3 and 13 zeros, so I tried this

https://web.archive.org/web/30000000000000/https://developer.mozilla.org/en-US/docs/Web/XPath/Introduction_to_using_XPath_in_JavaScript

And indeed, it did a HTTP 302 redirect to

https://web.archive.org/web/20220312161117/https://developer.mozilla.org/en-US/docs/Web/XPath/Introduction_to_using_XPath_in_JavaScript

So I quickly made this bookmarklet:

javascript:location.href='https://web.archive.org/web/30000000000000/'+document.location.href;

Then I created another one for getting the screenshot:

javascript:location=location.href.replace(/^https:\/\/web\.archive\.org\/save\/http/,'https://web.archive.org/web/30000000000000/http://web.archive.org/screenshot/http')

That works for screenshots archived with a Wayback Machine account, as these are related because of the inserted http://web.archive.org/screenshot/ fragment:

Since the Wayback Machine always looks for the closest savet timestamp, it does not matter the timestamps in these archived pages have a slight mismatch.

Memory lane

20231006: I edited this section referring two prior blog posts instead of one because of [Wayback/Archive] pbeccard: “@wiert @oliof You can also use…” – Mastodon (clearly showing that Mastodon like any social media platform does mangle backtick quoted code):

@wiert @oliof You can also use `javascript:location.href=’web.archive.org/web/*/’+docume to get the overview. I find this quite useful since I often want an older version of a page.

And later in the reply chain:

[Wayback/Archive] pbeccard: “@wiert @oliof Ah, I thought b…” – Mastodon

@wiert @oliof Ah, I thought by now that maybe Markdown is supported. I pulled the bookmarklet out of my bookmarklet bookmark folder. Here is a copy: https://gist.github.com/corppneq/d61e3…

[Wayback/Archive] Gist: Bookmarklets

I also found back two blog posts:

  1. Need to write a proper bookmarklet for the wayback archive (: mentioning many useful Wayback Machine JavaScript Bookmarklets from my gist [Wayback/Archive] Ideas/inspiration for writing a proper WayBack archive.org bookmarklet including this one:

    [Wayback/Archive] http://www.gyford.com/misc/wayback.html

      • WayBack:

        javascript:location.href='http://web.archive.org/web/*/'+document.location.href;
        

    I also archived this referred page: [Wayback/Archive] Bookmarklets.com – What’s New.

  2. JavaScript bookmarklet to replace part of the WayBack machine URL with a bookmarklet replacing

    JavaScript bookmarklet to replace part of the WayBack machine URL:

    A bookmarklet that goes to the latest rendered saved version (sometimes saved versions have not been rendered yet, so you get the latest available render):

    javascript:location=location.href.replace(/^https:\/\/web\.archive\.org\/save\/http/,'https://web.archive.org/web/30000000000000/http')

    The WayBack Machine uses a 14-position ID and tries to find the render that is the most close by. This is the format of the ID:

    yyyymmddhhmmss

    This is granular enough, as the WayBack machine only allows new saves that are usually 30+ minutes apart.

    (Note that period by now seems to be increased from 30+ minutes to 45+ minutes)

It also found back this post having the same huge number: 0.30000000000000004.com. How cool is WordPress search (:

–jeroen

Posted in Bookmarklet, Development, Internet, InternetArchive, JavaScript/ECMAScript, Power User, Scripting, Software Development, WayBack machine, Web Browsers | Leave a Comment »

The JavaScript bookmarklets that saved me a lot of time documenting the Embarcadero docwiki outage

Posted by jpluimers on 2023/09/28

Winter 2022, the Embarcadero docwiki (their most active site which contains all documentation for all their products) was down. Twice. First for a week, then parts of it for almost a week, then only parts of the Alexandria got up in a stable way.

Back then I published The Delphi documentation site docwiki.embarcadero.com has been down/up oscillating for 4 days is now down for almost a day.. The product and library documentation for the most recent version got back up in a week, but the Code Examples and older product versions took much longers.

Usually once learns way more about a system when it is failing then when it is working. That was the case this system as well.

Documenting the failing system took considerable time, but would have taken way more if not for these two JavaScript browser bookmarklets:

Read the rest of this entry »

Posted in Bookmarklet, Conference Topics, Conferences, Development, Event, JavaScript/ECMAScript, Power User, Scripting, Software Development, Web Browsers | Leave a Comment »

Javascript – Copy string to clipboard as text/html – Stack Overflow

Posted by jpluimers on 2023/09/27

For my link archive is the below answer that should help me a lot with unfinished bits from Some JavaScript bookmarklets for WordPress published pages centered around navigation and IDs.

Goal of that post was to have some grounding and eventually find a means to build an HTML page in a new tab using a bookmarklet that I then later could post to my blog.

Assembling to HTML and putting it on the clipboard might be a lot easier and better fitting in my workflow.

So, via [Wayback/Archivejavascript copy html to clipboard – Google Search, for my link archive: [Wayback/Archive] Javascript – Copy string to clipboard as text/html – Stack Overflow (thanks [Wayback/Archive] Loilo for answering and [Wayback/Archive] kofifus for asking):

Below is a function that will do exactly that. I tested it with your required browsers, it works in all of them. However, IE 11 will ask for confirmation on that action.

Explanation how this works can be found below, you may interactively test the function out in this jsFiddle.

Read the rest of this entry »

Posted in Chrome, Development, Firefox, HTML, HTML5, Internet Explorer, JavaScript/ECMAScript, JSFiddle, Power User, Scripting, Software Development, Web Browsers, Web Development | Leave a Comment »

Elle Cordova on Twitter: “Alexa, Siri and the other bots hanging out in the server break room again”

Posted by jpluimers on 2023/09/23

Long live the Clippy bot!

[Waybacksave/Archive] Elle Cordova on X: “Alexa, Siri and the other bots hanging out in the server break room again

Read the rest of this entry »

Posted in AI and ML; Artificial Intelligence & Machine Learning, Bookmarklet, ChatGPT, Development, GPT-3, GPT-4, JavaScript/ECMAScript, Office, Power User, Scripting, Software Development, Web Browsers | Leave a Comment »

XPath based bookmarklets for Archive.is: more JavaScript fiddling!

Posted by jpluimers on 2023/09/20

As I promised a few months back in Bookmarklets for Archive.is and the WayBack Machine to go to the original page, moar JavaScript fiddling, this time with XPath based bookmarklets to navigate from Archive.is pages to Saved From, Redirected from, Via and Original pages.

An alternative would be using XPath as the additional fields are always structured in a table like the html below (taking complex pages like https://archive.ph/5iVVH and https://archive.ph/2015.11.14-044109/http://www.example.org/ as an example).

I got triggered to using XPath from this answer from [Wayback/Archive] gdyrrahitis at [Wayback/Archive] Javascript .querySelector find by innerTEXT – Stack Overflow (thanks [Wayback/Archive] passwd for asking):

Read the rest of this entry »

Posted in Agile, Bookmarklet, Code Quality, Code Review, Development, HTML, JavaScript/ECMAScript, Power User, Scripting, Software Development, Web Browsers, Web Development, XML/XSD, XPath | Leave a Comment »