Skip to content

Instantly share code, notes, and snippets.

Avatar
🤔
I wonder what this button does…

Ben Peachey Potherca

🤔
I wonder what this button does…
View GitHub Profile
View README.md

Creating a real UUIDv4 in JS usually requires a library. The new https://developer.mozilla.org/en-US/docs/Web/API/Crypto/randomUUID can be used in the browser.

But how hard is it to create a valid UUIDv4? As it turns out, not very!

The following is all that is needed for a version 4 UUID (including correctly setting the so called M and N bits):

const generateUUID = () => "10000000-1000-4000-8000-100000000000".replace(/[018]/g, s => (s ^ Math.random() * 256 & 15 >> s / 4).toString(16));

This can be seen in action at https://gist.pother.ca/4a2b95623519e74b63d9485a4311ac3c

View README.md

This gist contains the recipe to make a copy button.

It is activated by adding data-js="add-to-page" to an element and including the CSS and JS files.

<link rel="stylesheet" href="https://gist.pother.ca/33b4d10024f56ba0610f8e70477687cb/copy-button.css"&gt
<script async src="https://gist.pother.ca/33b4d10024f56ba0610f8e70477687cb/copy-button.js"></script&gt
<pre data-js="copy">Your Text Goes Here</pre>
View README.md

It used to be hard to Base64 encode an image. Most often, a server-side component was used.

Nowadays, with FileReader readAsDataURL it can be easily done, 100% in the browser.

    const file =  // the contents of the image goes here

    const reader = new FileReader();

    reader.onload = (event) => {
@Potherca
Potherca / README.md
Last active November 9, 2022 20:06
Five laws of l̶i̶b̶r̶a̶r̶y̶ ̶s̶c̶i̶e̶n̶c̶e̶ software applications.
View README.md

Five laws of library science software applications.

The five laws of library science is a theory that S. R. Ranganathan proposed in 1931, detailing the principles of operating a library system.

These laws, addpted to software applications are:

  • Books are Software is for use.
  • Every person his or her** book Software.
  • Every book Software its reader user.
  • Save the time of the reader user.
@Potherca
Potherca / Basic Nextcloud server on Ubuntu.md
Last active September 30, 2022 08:11 — forked from michielbdejong/Basic Nextcloud server on Ubuntu
Steps to setting up a Nextcloud server from scratch using an Ubuntu-based VPS
View Basic Nextcloud server on Ubuntu.md
@Potherca
Potherca / pico8.desktop
Created August 23, 2022 16:28
File to add Pico 8 as a menu item on Linux
View pico8.desktop
# ~/.local/share/applications/pico8.desktop
[Desktop Entry]
Name=Pico8
Comment=Fantasy console for making, sharing and playing tiny games and other computer programs.
GenericName=Fantasy Console
X-GNOME-FullName=Pico-8
Exec=/usr/local/bin/pico8
Terminal=false
Type=Application
Icon=/usr/local/lib/pico-8/lexaloffle-pico8.png
@Potherca
Potherca / README.md
Created June 3, 2022 11:05
Useful resources for learning regular epressions
View README.md

Learning RegEx

Games

  • Slash\Escape The first and only slasher themed text based RegEx learning game.

Learn

  • Regex Learn Step by step, from zero to advanced.
  • RegexOne Learn Regular Expressions with simple, interactive exercises.
@Potherca
Potherca / README.md
Last active May 11, 2023 13:41
Markdown Template for Daily Scrum meetings
View README.md

Daily Scrum Template

When taking part of a Daily Scrum as Scrum Master, I find it handy to take notes. This makes sure I can hand over the role, if need be. It also means I don't have to rememeber everything as I can look things up in my notes later.

Below is the structure I use as format or "template" for taking notes.

Some things of importance:

@Potherca
Potherca / README.md
Last active March 20, 2022 10:49
Emoji Popularity per Year
View README.md
View README.md

For a project at my employers we are working with the PHP Easy RDF library.

In order to help other developers understand how to do some basic things in Easy RDF, I have created an example that shows how to read a RDF file, find a node, remove that node or a property from that node and write the result back to the file, using Flysystem.

The Turtle document used in this example is an edited version of the test fixture used in the Solid Link Metadata Tests Suite.

A static HTML has been provided, as well as some quick-and-dirty PHP with a live example (also used to generate the HTML output).

To see the HTML visit https://bl.ocks.org/Potherca/raw/7ab3c4a8d1eca011ef4b4e884b878da0/