Skip to content

Instantly share code, notes, and snippets.

View MatthewEppelsheimer's full-sized avatar

Matthew Eppelsheimer MatthewEppelsheimer

View GitHub Profile
@MatthewEppelsheimer
MatthewEppelsheimer / parse-caught-error.ts
Last active December 9, 2021 19:38
TypeScript function to extract message from an error of unknown type, useful in catch blocks UNTESTED
/**
* Detect type of caught error and return its message, optionally running type-specific callbacks
*
* @example
* catch (err) {
* const { message } = parseCaughtError(err);
* console.log(message);
* }
*
* @NOTE Returns an option, to ease iterating to return other properties when needed e.g. stack
@MatthewEppelsheimer
MatthewEppelsheimer / what-is-software-architecture.md
Created August 15, 2018 22:34
EARLY DRAFT: What is Software Architecture Really

inbox / things to add to this:

  • Consider your “distribution boundaries”. Are you gluing separate components together? Be aware of performance tradeoffs for monolithic vs distributed systems. source.
    • “Every remote call travels on the cyber equivalent of a horse and carriage.”
  • How fine/coarse-grained are your interfaces? The more distributed, the coarser your interfaces should be
    • “All sorts of places in the system will change shape to minimize remote calls.”
  • Introduce public vs private methods.
  • Conflict between REST structural model and the need for “coarse-grained” interfaces at remote boundaries.
    • The “remote facade” pattern (same source) is a way to work around this: Certain objects that explicitly (unavoidably, to anyone using them)

Keybase proof

I hereby claim:

  • I am mattheweppelsheimer on github.
  • I am mattepp (https://keybase.io/mattepp) on keybase.
  • I have a public key ASA_tiocasAaFuFN0-RMDvcnHHVRNbVJe_qQSRPi02IQvQo

To claim this, I am signing this object:

@MatthewEppelsheimer
MatthewEppelsheimer / get_post_thumbnail_without_dimensions.php
Created September 11, 2015 17:56
Return a WordPress image thumbnail without image dimensions
/**
* Get an HTML img element representing an image attachment
* Based on wp_get_attachment_image(), without height and width.
*
* While $size will accept an array, it is better to register a size with
* add_image_size() so that a cropped version is generated. It's much more
* efficient than having to find the closest-sized image and then having the
* browser scale down the image.
*
* @since 2.0
@MatthewEppelsheimer
MatthewEppelsheimer / enable-back-end-tablepress-shortcodes.php
Last active August 28, 2015 16:50
Enable TablePress shortcodes in WordPress' administrative back-end
<?php
/**
* Support TablePress shortcodes in the administrative back-end
*
* Hook to `admin_init`.
*
* @author Matthew Eppelsheimer
*/
function rli_support_tablepress_shortcodes_in_admin() {
@MatthewEppelsheimer
MatthewEppelsheimer / bandwidthism.md
Last active December 27, 2015 04:59
Bandwidthism

Bandwidthism is differential treatment based on bandwidth quality or perceived bandwidth quality. Bandwidthism is the systematic oppression of subordinated bandwidth quality classes to advantage and strengthen the dominant bandwidth quality classes. It’s the systematic assignment of characteristics of worth and ability based on bandwidth class.

Adapted from Class Action's definition of Classism

@MatthewEppelsheimer
MatthewEppelsheimer / gist:6300605
Created August 21, 2013 21:39
An idea for Fractal to support classes packaged with themes to overriding/interrupt inheritance of Fractal plugin classes
// An idea for a way to always look in the child theme first, even if you're in a Fractal (parent theme) class.
// Every time you use would require_once for a file with a class you're about to extend, use fractal_require(), instead.
function fractal_require( $file_name_without_extension ) {
$overriding_file = get_stylesheet_directory() . "/fractal/$file_name_without_extension.php";
if ( file_exists( $overriding_file ) ) {
require_once $overriding_file;
return true;
}
// At this point, fall back to just require_once, and assume in the same directory
@MatthewEppelsheimer
MatthewEppelsheimer / boilerplate_register_taxonomy
Last active March 4, 2016 16:08
WordPress register_taxonomy() boilerplate
// Prepare post types to associate taxonomy with
// This will only return public post types (excluding for example attachments, revisions, and nav_menu_items)
$object_types = get_post_types( array( 'public' => true ), 'names' );
// Prepare args to register taxonomy
$args = array(
'label' => _x( 'Objects', 'object taxonomy label' ) // plural label
@MatthewEppelsheimer
MatthewEppelsheimer / gist:4527277
Created January 14, 2013 02:05
Remove addition of " (Publication)" to WP Publication Archive title output. Note! This requires addition of the 'wp_pubarch_publication_title' filter to line 681 of https://github.com/ericmann/WP-Publication-Archive/blob/master/lib/class.wp-publication-archive.php
<?php
// Remove addition of "(Publication)" to WP Publication Archive title output
function rli_normalize_wp_pubarch_title_output( $modified_title, $original_title ) {
return $original_title;
}
add_filter( 'wp_pubarch_publication_title', 'rli_normalize_wp_pubarch_title_output', 100, 2 );
@MatthewEppelsheimer
MatthewEppelsheimer / rli-wp-gitignore
Last active December 10, 2015 16:08
Ignore WordPress core files in our site-specific repos.
# --- Ignore uploads
wp-content/uploads/
# --- Ignore default content
wp-content/themes/twentyeleven/
wp-content/themes/twentytwelve/
wp-content/themes/twentythirteen/
wp-content/themes/twentyfourteen/