Skip to content

Instantly share code, notes, and snippets.

View wuhhh's full-sized avatar

Huw Roberts wuhhh

View GitHub Profile
@flightmansam
flightmansam / readme.md
Last active March 10, 2025 21:08
Using a Studio Display with asahi linux

Preface: I f**king love where Asahi linux is going. After installing it on my macbook pro a year ago I have had an absolute blast getting it all up and running. I haven't ever had so much fun just enjoying the experience of an operating system.

I am one of those apple fanbois who setup a mac and a Studio Display. I have been itching to connect my display. But as I eagerly await USB-C DP (alt) mode support in Asahi I must make do with using the HDMI port of my Asahi Linux MacBook Pro. For those playing along at home, the Studio Display has only a usb-c port for display input. People (including Apple's own ambiguous advertising) mistake this to be a Thunderbolt only display however it is very happy connecting to any device that supports USB-C DP (alt) (I was even using my phone as a daily driver with the display for a cheeky bit there). Perhaps that's my fuzziness around the topic of USB-C/Thunderbolt3/4

I have been successful in connecting my display to th

@dkaraush
dkaraush / oklch2rgb.js
Last active October 20, 2025 11:53
conversion OKLCH into RGB and RGB into OKLCH in js, simplified
const multiplyMatrices = (A, B) => {
return [
A[0]*B[0] + A[1]*B[1] + A[2]*B[2],
A[3]*B[0] + A[4]*B[1] + A[5]*B[2],
A[6]*B[0] + A[7]*B[1] + A[8]*B[2]
];
}
const oklch2oklab = ([l, c, h]) => [
l,
@thysultan
thysultan / WebGL-frameworks-libraries.md
Created February 9, 2019 23:51 — forked from dmnsgn/WebGL-WebGPU-frameworks-libraries.md
A collection of WebGL frameworks and libraries

A non-exhaustive list of WebGL frameworks and libraries. It is mostly for learning purposes as some of the libraries listed are outdated/not maintained anymore.

Engines and libraries

  • three.js: JavaScript 3D library
  • stack.gl: an open software ecosystem for WebGL, built on top of browserify and npm.
  • PixiJS: Super fast HTML 5 2D rendering engine that uses webGL with canvas fallback
  • Pex: Pex is a javascript 3d library / engine allowing for seamless development between Plask and WebGL in the browser.
  • Babylon.js: a complete JavaScript framework for building 3D games with HTML 5 and WebGL
  • AwayJS: AwayJS is a graphics library for javascript written in typescript
  • SceneJS: An extensible WebGL-based engine for high-detail 3D visualisation
@timrross
timrross / order-by-menu-order.php
Last active June 6, 2022 19:51
Enable orderby custom parameter in WP REST API
<?php
/**
* The filter is named rest_{post_type}_collection_params. So you need to hook a new filter for each
* of the custom post types you need to sort.
* @link https://www.timrosswebdevelopment.com/wordpress-rest-api-post-order/
*/
// This enables the orderby=menu_order for Posts
add_filter( 'rest_post_collection_params', 'filter_add_rest_orderby_params', 10, 1 );
// And this for a custom post type called 'portfolio'
@bradwestfall
bradwestfall / S3-Static-Sites.md
Last active July 17, 2025 09:01
Use S3 and CloudFront to host Static Single Page Apps (SPAs) with HTTPs and www-redirects. Also covers deployments.

S3 Static Sites

⚠ This post is fairly old. I don't keep it up to date. Be sure to see comments where some people have posted updates

What this will cover

  • Host a static website at S3
  • Redirect www.website.com to website.com
  • Website can be an SPA (requiring all requests to return index.html)
  • Free AWS SSL certs
  • Deployment with CDN invalidation
@squarism
squarism / iterm2.md
Last active October 27, 2025 13:29
An iTerm2 Cheatsheet

In the below keyboard shortcuts, I use the capital letters for reading clarity but this does not imply shift, if shift is needed, I will say shift. So + D does not mean hold shift. + Shift + D does of course.

Tabs and Windows

Function Shortcut
New Tab + T
Close Tab or Window + W (same as many mac apps)
Go to Tab + Number Key (ie: ⌘2 is 2nd tab)
Go to Split Pane by Direction + Option + Arrow Key
@AugustMiller
AugustMiller / map.js
Last active October 2, 2021 14:14
Map a number in one range to a number in another.
function mapNumber (number, inMin, inMax, outMin, outMax) {
return (number - inMin) * (outMax - outMin) / (inMax - inMin) + outMin;
}
@cferdinandi
cferdinandi / stop-video.js
Last active August 2, 2025 14:10
A simple method to stop YouTube, Vimeo, and HTML5 videos from playing.
/**
* Stop an iframe or HTML5 <video> from playing
* @param {Element} element The element that contains the video
*/
var stopVideo = function ( element ) {
var iframe = element.querySelector( 'iframe');
var video = element.querySelector( 'video' );
if ( iframe ) {
var iframeSrc = iframe.src;
iframe.src = iframeSrc;
function drawMouseSpeedDemo() {
var mrefreshinterval = 500; // update display every 500ms
var lastmousex=-1;
var lastmousey=-1;
var lastmousetime;
var mousetravel = 0;
var mpoints = [];
var mpoints_max = 30;
$('html').mousemove(function(e) {
var mousex = e.pageX;
@annalinneajohansson
annalinneajohansson / plugin-settings.php
Last active October 2, 2024 09:42
A base for a WordPress plugin settings page, using the Settings API #add_options_page #add_action #admin_init #register_setting #add_settings_section
<?php
# http://kovshenin.com/2012/the-wordpress-settings-api/
# http://codex.wordpress.org/Settings_API
add_action( 'admin_menu', 'my_admin_menu' );
function my_admin_menu() {
add_options_page( __('My Plugin Options', 'textdomain' ), __('My Plugin Options', 'textdomain' ), 'manage_options', 'my-plugin', 'my_options_page' );
}
add_action( 'admin_init', 'my_admin_init' );