Skip to content

Instantly share code, notes, and snippets.

@caseywatts
caseywatts / 0 README.md
Last active May 2, 2024 05:47
Generate Graphviz Files for Project

short url: caseywatts.com/graphviz

Graphviz is like markdown, for diagrams.

It's a tool that can transform text input into a "directed graph" output, which is nodes pointing to other nodes. You can use it for architecture diagrams, DB diagrams, documentation for users, etc.

graphviz-it

You'll want to use a tool with a two-pane layout - the left side is the source text, the right side is the image output.

  • For just you working on it, use (shown above; it has more features)
@sukima
sukima / maybe.js
Last active May 2, 2024 05:47
Simple Maybe monad utility for dealing with lookup on objects, etc. (1.8kb minified)
(function (root, factory) {
if (typeof define === 'function' && define.amd) {
// AMD. Register as an anonymous module.
define([], factory);
} else if (typeof module === 'object' && module.exports) {
// Node. Does not work with strict CommonJS, but
// only CommonJS-like environments that support module.exports,
// like Node.
module.exports = factory();
} else {
@jonkwheeler
jonkwheeler / RevealText.js
Last active May 2, 2024 05:46
React: Animation component using GSAP's SplitText plugin to reveal text on a page
// @flow
import { PureComponent, type Node, Fragment } from 'react';
import { TimelineLite } from 'gsap';
import SplitText from 'Lib/gsap-bonus/umd/SplitText';
import Waypoint from 'react-waypoint';
type RevealTextProps = {
children: Node,
waypointTopOffset: string,
waypointBottomOffset: string,
@jonkwheeler
jonkwheeler / wasm-links.txt
Last active May 2, 2024 05:46
WebAssembly Links to check out
@jonkwheeler
jonkwheeler / NextJsDynamicImportNoSsr.js
Created August 29, 2018 11:08
Next.js - Window is not defined - Dynamic Import
import React from 'react'
import dynamic from 'next/dynamic'
const ReactJsonNoSSR = dynamic(import('react-json-view'), {
ssr: false
})
const starWarsJson = {
"name": "Luke Skywalker",
"height": "172",
@jonkwheeler
jonkwheeler / Hubspot Number Comma Separator.liquid
Last active May 2, 2024 05:46
Hubspot Number Comma Separator
{% macro number_comma_separator(number) %}
{# Check if a number first #}
{% if number|int != 0 %}
{# split all numbers to an array #}
{% set numbers = number|string|regex_replace("(\\d)", "$1,")|split(",") %}
{% set new_numbers = [] %}
{# loop over array in reverse #}
{% for digit in numbers|reverse %}
{% if loop.index is divisibleby 3 %}{% set new_digit = digit + "," %}{% else %}{% set new_digit = digit %}{% endif %}
{% set new_numbers = new_numbers + new_digit %}
@jonkwheeler
jonkwheeler / useState-vs-useSignal.jsx
Last active May 2, 2024 05:46
useState vs useSignal
import { render } from "preact";
import { useRef, useState } from "preact/hooks";
import { signal, useSignal, useComputed } from "@preact/signals";
// Create a signal that can be subscribed to:
const globalCount = signal(0);
function Counter({ number }) {
const [stateCount, setStateCount] = useState(0);
@jonkwheeler
jonkwheeler / Counter.js
Created June 26, 2018 14:31
React: Animation component using GSAP to interval count up
// @flow
import React, { PureComponent } from 'react';
import { TweenMax, Circ } from 'gsap';
import Waypoint from 'react-waypoint';
type CounterProps = {
min: number,
max: number,
duration: number,
afterText: string,
@mars
mars / register_chrome_with_window_size.rb
Created October 13, 2013 01:58
Set window size for Capybara/Selenium/chromedriver
Capybara.register_driver :chrome do |app|
Capybara::Selenium::Driver.new(app,
browser: :chrome,
desired_capabilities: {
"chromeOptions" => {
"args" => %w{ window-size=1024,768 }
}
}
)
end
@jonkwheeler
jonkwheeler / Download-Slack-Profile-Pictures.js
Last active May 2, 2024 05:46
Download Slack Profile Pictures / Images
// Enter slack in the browser. https://{insert your team name here}.slack.com/messages/
// Click on the channel you want.
// Click the information icon.
// Expand the members dropdown.
// Click "See All Members"
// Paste the next line into the console, hit enter.
var imageList = new Array()
// If your channel has more than 19 members, the list won't display past that. It also unloads them from the state as you scroll.