Skip to content

Instantly share code, notes, and snippets.

View webinista's full-sized avatar

Tiffany Brown webinista

View GitHub Profile
const formatDate = ( dateStr ) => {
let returned = '';
if( 'Intl' in window ) {
const dateObj = new Date( dateStr );
const options = {
month: 'long',
timeZone: 'America/Los_Angeles',
day: 'numeric',
year: 'numeric'
};
Tested on macOS 11.3.1 with ffmpeg installed with homebrew
Use the h264_videotoolbox codec. -b:v is the bitrate flag. Using a higher
bitrate improves quality, but increases file size.
760k (include the k!) gives a nice balance between quality and file size.
ffmpeg -i input.gif -vcodec h264_videotoolbox -b:v 760k output.h264.mp4
@webinista
webinista / mode.php
Created June 22, 2019 02:54
find the mode of an array using PHP
function array_mode($$arr) {
/*
Count the frequency of occurrence of values in the array.
This will make each duration value into a key, with its frequency as the
value
*/
$counts = array_count_values($$arr);
/*
Get all of the count values and find the unique values, then sort them,
@webinista
webinista / isNumeric.js
Created May 29, 2019 23:22
isNumeric function for JavaScript
// Simple way to check whether a particular value is numeric. Saving it here so that I don't have to solve it twice.
const isNumeric = (value) => {
return !Number.isNaN(parseFloat(value,10));
}
@webinista
webinista / flatten2d.php
Created April 12, 2019 20:15
Flatten a two-dimensional PHP array
<?php
function flatten2d($multi_dimensional_array) {
$flattened = [];
$flatten = function($value, $index) {
global $flattened;
array_push($flattened, $value);
};
array_walk_recursive($multi_dimensional_array, $flatten);
return $flattened;
@webinista
webinista / iso8601ToSeconds.php
Created December 13, 2018 03:46
PHP: Convert an ISO 8601 duration / date (Such as the one YouTube uses) interval to seconds
<?php
function iso8601ToSeconds($input) {
$duration = new DateInterval($input);
$hours_to_seconds = $duration->h * 60 * 60;
$minutes_to_seconds = $duration->i * 60;
$seconds = $duration->s;
return $hours_to_seconds + $minutes_to_seconds + $seconds;
}
@webinista
webinista / youtubeduration.php
Created December 7, 2018 04:33
Make YouTube API duration readable using PHP
/*
PHP function for converting an ISO8601 duration (the kind used by YouTube's API)
to something more readable.
*/
make_readable_duration($duration)
{
$duration = new DateInterval($duration);
return $duration->format('%H:%I:%S');
}
@webinista
webinista / HowToFixPycURLErrorMacOS.md
Last active April 23, 2021 07:18
PycURL error: ConfigurationError: Curl is configured to use SSL, but we have not been able to determine which SSL backend it is using. Please see PycURL documentation for how to specify the SSL backend manually.

Partly pulled from the comments here: pycurl/pycurl#526

May also be a fix for this error:

ImportError: pycurl: libcurl link-time ssl backend (none/other) is different from compile-time ssl backend (openssl)

If you try to install PycURL and receive this error:

@webinista
webinista / DialogModal.jsx
Last active October 4, 2018 20:05
A work-in-progress React component for modals. Uses the <dialog> element.
/*
DialogModal. Depends on the presence of dialog-polyfill.js
and dialog-polyfill.css with the page in non-Chrome browsers.
https://github.com/GoogleChrome/dialog-polyfill
MIT licensed.
*/
import React from 'react';
import PropTypes from 'prop-types';
Writing this as a note to myself :-)
Install a Python 3 binary from python.org, then add the path to that Python binary
(e.g. /Library/Frameworks/Python.framework/Versions/3.6/bin) to your /etc/paths file.