Skip to content

Instantly share code, notes, and snippets.

View jalbertbowden's full-sized avatar

albert jalbertbowden

View GitHub Profile
@jalbertbowden
jalbertbowden / dabblet.css
Created February 13, 2023 00:17 — forked from oli/dabblet.css
Styling hr elements
/* Styling hr elements */
/* ref: http://html5doctor.com/small-hr-element/ */
body {background: #ddd;}
h1 {font-weight: normal; font-size: 1.5em;}
ol {margin-top: 5em;}
hr {margin: 1.5em 0;}
hr:nth-child(2) {
border: 0;
border-top: 1px solid #999;
}
@jalbertbowden
jalbertbowden / footnote.html
Created February 10, 2023 16:46 — forked from glueckpress/footnote.html
HTML footnotes. Click on anchor #a(n): skips down to anchor #f(n) inside footnote. Click on anchor #f(n) inside footnote: skips back up to anchor #a(n).
<!-- Line-breaks suiting auto-p in WordPress: -->
Paragraph with a footnote<a id="a1" href="#f1"><sup>[1]</sup></a> and more text afterwards.
Another paragraph with another footnote<a id="a2" href="#f2"><sup>[2]</sup></a> and more text afterwards.
<!-- At the end of all paragraphs: -->
<footer class="footnotes">
<a id="f1" href="#a1">[1]</a> Footnote #1 here.
<html>
<head>
<title>Responsive Table</title>
<meta charset="UTF-8">
<meta name="description" content="How to create a responsive table">
<meta name="keywords" content="HTML,CSS">
<meta name="author" content="Martine Dowden">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<style>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>Calendar of Police Killings</title>
<link href="https://fonts.googleapis.com/css2?family=Fira+Sans:ital,wght@0,400;0,700;1,400&display=swap" rel="stylesheet">
<style>
body { font-family: 'Fira Sans'; text-align: center; }
@jalbertbowden
jalbertbowden / merge-geojsons.py
Created March 23, 2021 20:50 — forked from migurski/merge-geojsons.py
Merge multiple GeoJSON files into one
from json import load, JSONEncoder
from optparse import OptionParser
from re import compile
float_pat = compile(r'^-?\d+\.\d+(e-?\d+)?$')
charfloat_pat = compile(r'^[\[,\,]-?\d+\.\d+(e-?\d+)?$')
parser = OptionParser(usage="""%prog [options]
Group multiple GeoJSON files into one output file.
@jalbertbowden
jalbertbowden / index.js
Created November 27, 2020 07:36 — forked from bcks/index.js
tableau-covid-scraping
// Works with Node v12.0 and puppeteer 4.0
const URL = 'https://public.tableau.com/views/PPV_15924847800480/ppv_db?%3Aembed=y&%3AshowVizHome=no&%3Adisplay_count=y&%3Adisplay_static_image=n&%3AbootstrapWhenNotified=true&%3Alanguage=en&:embed=y&:showVizHome=n&:apiID=host0';
const puppeteer = require('puppeteer');
function parseDataDictionary(jsonParsed) {
@jalbertbowden
jalbertbowden / data.json
Created August 24, 2020 03:26 — forked from philshem/data.json
sample data
{
"1960":316.91,
"1961":317.64,
"1962":318.45,
"1963":318.99,
"1964":319.62,
"1965":320.04,
"1966":321.38,
"1967":322.16,
"1968":323.04,
@jalbertbowden
jalbertbowden / autotimestamp-column-in-google-sheets.md
Created July 25, 2020 15:22 — forked from dannguyen/autotimestamp-column-in-google-sheets.md
a Google Sheets script that automatically adds a timestamp to a corresponding row when the first column is created

How to automatically timestamp a column when a row in Google Sheets is created

Couldn't be bothered to look up the latest workout tracking app, so decided to stick to Google Sheets for now. One problem with this approach is that while it is easy on desktop GSheets to fill out a current timestamp (Command-Option-Shift-semicolon in MacOS), no such shortcut is available AFAIK in the iOS version of Google Sheets.

image

So I wrote a little custom function in Google Apps Script to do the following:

In an active Google Sheets spreadsheet, given a tab/sheet named myworkouts with a header named datetime, the following script updates a row's corresponding "datetime" column when a value is entered into a first column cell:

// This is a hack, a quick and dirty console script for RT/tweets (with replies) removal w/o API
// To be used in: https://twitter.com/Username/with_replies
// Set your username (without @) below (case-sensitive) to correctly trigger the right Menu
const tweetUser = 'Username'
// BUG, With above we still trigger Menu on some replies but relatively harmless.
// @Hack Implement simple has() for querySelector
const querySelectorHas = function( parent, child ){