Skip to content

Instantly share code, notes, and snippets.

View wildlyinaccurate's full-sized avatar
🐕‍🦺

Joseph Wynn wildlyinaccurate

🐕‍🦺
View GitHub Profile
@wildlyinaccurate
wildlyinaccurate / ubuntu-setup.sh
Last active February 16, 2024 09:05
Setting up a new Ubuntu machine
#!/usr/bin/env bash
# Generate an ED25519 key and display the public key
ssh-keygen -o -a 100 -t ed25519
cat ~/.ssh/id_ed25519.pub
read -p 'You should add your public key to GitHub now. Press any key to continue...'
read -p 'Now you will generate a GPG key. Please use RSA/RSA with a keysize of 4096 bits. Press any key to continue...'
gpg --default-new-key-algo rsa4096 --gen-key
@wildlyinaccurate
wildlyinaccurate / workflows.md
Last active November 22, 2023 07:06
Hotfix workflows

Hotfix workflows

"Traditional" gitflow workflow

  1. Create hotfix-branch from release
  2. Commit to hotfix-branch
  3. Merge hotfix-branch into both release and develop

Pros

@wildlyinaccurate
wildlyinaccurate / add.js
Created February 7, 2014 08:51
Bitwise addition
// Fuck the addition operator. Real programmers work in binary!
function add(a, b) {
// XOR to get the sum of the bits
var sum = a ^ b;
// "Carry" bits are common to both numbers
var carry = (a & b) << 1;
if (sum & carry) {
// Rinse and repeat until there are no leftover bits
@wildlyinaccurate
wildlyinaccurate / queue.js
Created July 18, 2012 19:57
Really simple Javascript queueing system
var Queue = function() {
var isInit = false;
var queue = [];
return {
onInit: function(callback) {
if (isInit) {
callback();
@wildlyinaccurate
wildlyinaccurate / event.js
Last active February 12, 2021 01:05
Really simple Javascript custom event system
var Event = function() {
var self = this;
self.queue = {};
self.fired = [];
return {
fire: function(event) {
@wildlyinaccurate
wildlyinaccurate / Preferences.sublime-settings
Last active January 13, 2021 00:43
My Sublime Text configuration
{
"theme": "Soda Dark.sublime-theme",
"color_scheme": "Packages/Theme - Refined/Color Schemes/Monokai Refined.tmTheme",
"font_face": "Droid Sans Mono",
"font_size": 12,
"font_options": ["no_italic"],
"highlight_line": true,
"line_padding_top": 3,
"line_padding_bottom": 3,
@wildlyinaccurate
wildlyinaccurate / AccountControllerTest.php
Created July 9, 2012 22:00
Laravel Controller Test Case
<?php
require_once 'ControllerTestCase.php';
class AccountControllerTest extends ControllerTestCase
{
public function testSignupWithNoDataRedirectsAndHasErrors()
{
$response = $this->post('account@signup', array());
@wildlyinaccurate
wildlyinaccurate / safe-component.jsx
Created June 21, 2017 17:28
Proof-of-concept for making React components "safe" or "optional" by catching errors during rendering.
// Paste this into https://preactjs.com/repl to see it working
// This function takes any component, and returns a higher-order (wrapper)
// component. This wrapper attempts to render the wrapped component, catching
// any errors.
const safeComponent = (Component) => function WrappedComponent () {
// Handle both class components and stateless functional components
const wrappedRender = Component.prototype.render || Component
try {
@wildlyinaccurate
wildlyinaccurate / client.js
Last active June 4, 2017 20:04
Simplified approach for hydrating statically-rendered React components on the client.
import React from 'react'
import ReactDOM from 'react-dom'
const hydrateComponent = (scriptEl) => {
const componentId = scriptEl.getAttribute('data-hydration-data-id')
const componentElement = document.querySelector(`[data-hydration-component-id="${componentId}"]`)
const props = JSON.parse(scriptEl.innerHTML)
import(componentId).then(Component => ReactDOM.render(<Component {...props} />, componentElement))
}
@wildlyinaccurate
wildlyinaccurate / morph-duplicate-style-checker.js
Last active May 31, 2017 07:51
Check any Morph-powered page for duplicate styles.
var page = require('webpage').create()
var system = require('system')
if (system.args.length === 1) {
console.log('Usage: morph-style-checker.js <URL>')
phantom.exit(1)
}
var url = system.args[1]