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,854 other subscribers

Archive for the ‘Development’ Category

Some more links on bookmarklets: this time ones that operate on (selection of text on) the current page

Posted by jpluimers on 2023/05/04

As a continuation of the various bookmarklet posts, here is one with information on bookmarklets that operate on the current page, for instance when you already got text selected.

All via [Wayback/Archive] bookmarklet that works on link of current selection – Google Search

–jeroen

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

How long will the free GPT-3.5 and GPT-4 based ChatGPT exist?

Posted by jpluimers on 2023/05/03

For a while now, there has been a free [Wayback/Archive] ChatGPT which works around the paid barriers by relaying the chat through 3rd parties.

I wonder how long it will exist.

The cease and desist letter was from OpenAI to the repository owner which – paraphrased – maintains the stance that the 3rd parties pay license fees to OpenAI, and that if these parties have issues with his tool basically scraping them, should contact the repository owner to work things out.

This is all part of a bigger discussion on license and copyright of what AI based LLMs (Large Language Models) which are sourced from a large corpus of text that we all publish for free on the internet without a way to track back from ChatGPT responses to which texts were used.

Links:

Read the rest of this entry »

Posted in AI and ML; Artificial Intelligence & Machine Learning, ChatGPT, Development, GPT-3, Software Development | Leave a Comment »

The Wordle word list is in the source JavaScript file (via Isotopp)

Posted by jpluimers on 2023/05/03

Oh well: [Archive] Kris on Twitter: “L> add AI there and you’ve got a paper R> I just had a look, and that thing is pretty much completely offline. the JS contains the entire dictionary C> well would you look at that, might want to use the actual dictionary then “

Actually, it was dead easy to copy the sources to a gist and host the gist:

And of course someone distilled the wordle word solutions list into some statistics:

More was done at [Wayback/Archive] Reverse Engineering Wordle | Robert Reichel.

Which got updated to the statistics of the union of solution and accepted words list

Another tool that helps solving is [Wayback/Archive] willthames/wordle-guesses which I found via [Archive] Will Thames on Twitter: “I spent some of my New Year’s Day writing a program to generate the best first two guesses for Wordle. Time well spent, I think: …”.

Jilles then posted a video on how to view the source [Archive] Jilles🏳️‍🌈 on Twitter: “How to cheat on #wordle …”.

To make Wordle even harder, there is Absurdle, an adversorial version of Wordle that decides the word upon your input until it runs out of decisions:

A Dutch and German version were added as Woordle and Wordle (which missed being called WorDeL and Wortle):

Shortly followed by another German version (always the Austrians setting themselves apart), and a French one (which messed Le Word as perfect name):

There is also a four-letter word edition, actually two of them:

There is a Prime version too:

Felienne posted a cool analysis bot that watches Wordle tweets and uses them to estimate the correct Wordle solution:

Oh, there is a single Letterle, which on average takes you some 13 tries when disregarding letter frequencies (which likely should not matter):

When you think Absurdle was going far, look at what happened Wordlinator:

Two search tools that are very useful:

If you are desperate, these solvers can help; the second one is more flexible, the first one faster, and the last one is pure cheating:

  1. [Wayback/Archive] Ruining the fun: a Wordle auto-solver – by Tom
  2. [Wayback/Archive] Wordle Helper – Suggestion and Solver Tool – Gamer Journalist
  3. [Wayback/Archive] Wordle Answers (February 2022) – Today’s Solution

I tried referencing all posts in the somewhat broken thread at:

Some links that did not make it into that thread (yet):

Having good start words and an on-line dictionary help:

And there is always a really fast way: [Wayback/Archive] Wordle Solver | Not Fun at Parties (explained in [Wayback/Archive] Ruining the fun: a Wordle auto-solver – by Tom)

–jeroen

Read the rest of this entry »

Posted in Development, JavaScript/ECMAScript, LifeHacker, Natural Languages, Power User, Scripting, Software Development | Leave a Comment »

Some links on measuring CO2 and Volatile Organic Compounds in the air

Posted by jpluimers on 2023/05/02

Some links on measuring these:

I was triggered by some messages in a thread:

Read the rest of this entry »

Posted in Development, ESP32, Hardware Development, Hardware Interfacing, IKEA hacks, LifeHacker, Power User | Leave a Comment »

I want to check out how to do POST requests using bookmarklets in order to save URLs to the WayBack machine

Posted by jpluimers on 2023/04/27

I want to check out how to do POST requests using bookmarklets in order to save URLs to the Wayback machine.

The reason is that every few months or so, saving a page the normal way through a something like https://web.archive.org/save/URL fails for one reason or the other, but going to https://web.archive.org/save, then entering URL, and pressing “SAVE PAGE” button works fine:

The the failing way above is using a GET request, the succeeding workaround will open https://web.archive.org/save/URL  using the below POST request (where I omitted some HTTP cookies and HTTP header fields for brevity).

  • POST request using PowerShell:
    $session = New-Object Microsoft.PowerShell.Commands.WebRequestSession
    $session.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36"
    Invoke-WebRequest -UseBasicParsing -Uri "https://web.archive.org/save/URL" `
    -Method "POST" `
    -WebSession $session `
    -Headers @{
    "method"="POST"
      "origin"="https://web.archive.org"
      "referer"="https://web.archive.org/save"
    } `
    -ContentType "application/x-www-form-urlencoded" `
    -Body "url=URL&capture_outlinks=on&capture_all=on&capture_screenshot=on"
  • POST request using cURL on bash:
    curl 'https://web.archive.org/save/URL' \
      -H 'origin: https://web.archive.org' \
      -H 'content-type: application/x-www-form-urlencoded' \
      -H 'referer: https://web.archive.org/save' \
      --data-raw 'url=URL&capture_outlinks=on&capture_all=on&capture_screenshot=on' \
      --compressed
  • POST request using the fetch API in JavaScript:
    fetch("https://web.archive.org/save/URL", {
      "headers": {
        "content-type": "application/x-www-form-urlencoded",
      },
      "referrer": "https://web.archive.org/save",
      "body": "url=URL&capture_outlinks=on&capture_all=on&capture_screenshot=on",
      "method": "POST",
      "mode": "cors"
    });

BTW: Yes, I know that URL is not a valid URL, so it will return a page with “http://url/ URL syntax is not valid.“.

All links below via [Wayback/Archive] bookmarklet post request – Google Search:

I tried to put createFormSubmittingBookmarklets/createFormSubmitBookmarklets.js in a bookmarklet using both userjs.up.seesaa.net/js/bookmarklet.html and skalman.github.io/UglifyJS-online. That failed: somehow this code does not want to run as bookmarklet.

Running it from the console is fine though, and gave me this basic bookmarklet template:

javascript:function sf(ur,ty,fd){function me(tg,pr){var el=document.createElement(tg);for(const[nm,vl]of Object.entries(pr)){el.setAttribute(nm,vl);}return el}const fm=me("form",{action:ur,method:ty,style:"display:hidden;"});for(const[nm,vl]of Object.entries(fd)){fm.appendChild(me("input",{name:nm, value:vl}))}document.body.appendChild(fm);fm.submit()}sf("https://web.archive.org/save","post",{"url":"URL","capture_outlinks":"on","capture_all":"on","capture_screenshot":"on","wm-save-mywebarchive":"on","email_result":"on","":"SAVE PAGE"});

There bold URL there is the URL to be saved. I need to test this, then rework it to become parameterised.

–jeroen

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

Special cartridges with heat-shrink tubing for dymo and brother label writers

Posted by jpluimers on 2023/04/26

Labeling cables is important, especially when you have a lot of them, and it is tough:

  1. Paper and plastic tables tend to loosen over time.
  2. Numbers or letters you can snap on only work on thicker cables and over time tend to break loose (due to plasticisers evaporating).
  3. Permanent markers are less permanent and fade over time.

Hopefully heat-shrink tubing you can print on with either Dymo or Brother laber writers will outlast 3. At least they won’t loosen like 2. and 1.

So I was glad that [Archive] Jilles🏳️‍🌈 (@jilles_com) / Twitter started a thread, which I tried to help keeping coherent.

Some of the messages:

 

–jeroen

Read the rest of this entry »

Posted in Development, Hardware Development, Hardware Interfacing | Leave a Comment »

Kevin Lewis (he/him) on Twitter: “Wow thanks for all the support folks! I’ve been working on this project today: larger font, options for single/group captioning powered by @DeepgramAI, and a static badge mode as suggested by @bitandbang https://t.co/FBELwDsD4V” / Twitter

Posted by jpluimers on 2023/04/25

Wow, just wow: [Archive] Kevin Lewis (he/him) on Twitter: “Wow thanks for all the support folks! I’ve been working on this project today: larger font, options for single/group captioning powered by @DeepgramAI, and a static badge mode as suggested by @bitandbang https://t.co/FBELwDsD4V” / Twitter

Via [Archive] Jilles🏳️‍🌈 on Twitter: “Love it and worried about it at the same time.” / Twitter

–jeroen

Posted in Development, Hardware Development, Hardware Interfacing, Software Development | Leave a Comment »

The CPU load average metric often is not a good one to alert on

Posted by jpluimers on 2023/04/20

Boy I wish threads with more than one person could be saved by the ThreadReaderApp.

Anyway:

[WayBack] Thread by @mipsytipsy: oh boy.. i was just idly musing over how the single most ubiquitous/useless metric is “CPU load average”, lol i wonder if you could use CPU…

oh boy.. i was just idly musing over how the single most ubiquitous/useless metric is “CPU load average”, lol

i wonder if you could use CPU load alerts to score how modern and powerful a team’s toolchain is, like a Waffle House Index for tooling. 🤔

 

…oh oh! but i was gonna say, this thread between @drk and @shelbyspees is a killer nanotutorial in how to ask better questions about your code — where to start, how to drill down and dig in, how to instrument, and how to approach such an open-ended exploratory jaunt. 👏🐝❤️

it’s a really good illustration of this thing we end up saying all the time, which is “don’t fear the future, it is simpler and clearer and *easier* here! the way you are doing it NOW is the hard way!” 😖

time for cpu load average to go the way of the PC LOAD LETTER …

0:00
/ 0:01

 

 

Read the rest of this entry »

Posted in *nix, Cloud, Development, DevOps, Infrastructure, Power User, Software Development, Systems Architecture | Leave a Comment »

Some resources on CORS proxies

Posted by jpluimers on 2023/04/19

Having my background before the web-development era, and having lived mostly in back-ends or client-server front-ends, I sometimes need to really dig into things in order to understand them better.

CORS is such a thing, so below are some links to get started. My main interest is CORS proxies as they will force me do go deep and really get what is going on below the surface.

Defunct CORS proxy sites:

Used searches:

–jeroen

Posted in Communications Development, Development, HTTP, Internet protocol suite, REST, Software Development, TCP, Web Development | Leave a Comment »

xxd examples of big/little/middle endianness (thanks @jilles_com!)

Posted by jpluimers on 2023/04/18

Cool one-liner program via [Archive] Jilles🏳️‍🌈 (@jilles_com) / Twitter:

for s in 0123456789ABCDEF 172.16.0.254 Passwd:admin;do echo -en "Big    Endian: $s\nMiddle Endian: ";echo -n $s|xxd -e -g 4 | xxd -r;echo -en "\nLittle Endian: ";echo -n $s|xxd -e -g 2 | xxd -r;echo -en "\nReversed     : ";echo -n $s|xxd -p -c1 | tac | xxd -p -r;echo -e "\n";done

Note that the hex are bytes, not nibbles, so the endianness is OK:

Image

Big Endian: 0123456789ABCDEF
Middle Endian: 32107654BA98FEDC
Little Endian: 1032547698BADCFE
Reversed : FEDCBA9876543210

Big Endian: 172.16.0.254
Middle Endian: .2710.61452.
Little Endian: 71.2610.2.45
Reversed : 452.0.61.271

Big Endian: Passwd:admin
Middle Endian: ssaPa:dwnimd
Little Endian: aPssdwa:mdni
Reversed : nimda:dwssaP

That nibble/byte thing confused me at first (as I associate hexadecimal output with hex dumps, where each hexadecimal character represents a nibble)) so here are some interesting messages from the thread that Jilles_com started:

Some related man pages:

–jeroen

Posted in *nix, *nix-tools, bash, Development, Power User, Scripting, Software Development, xxd | Leave a Comment »