https://jira.dev.bbc.co.uk/browse/NEWS-0000
- #0000
// 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 { |
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)) | |
} |
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] |
#!/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 |
REGISTRY=registry.yourdomain.com | |
# You may want/need to pull the latest images on a machine which has access to the registry | |
docker pull $REGISTRY/foo | |
docker pull $REGISTRY/bar | |
# You can save the images as tarballs and distribute them as you please | |
docker save --output=/home/user/images/foo.tar $REGISTRY/foo | |
docker save --output=/home/user/images/bar.tar $REGISTRY/bar |
(function() { | |
'use strict' | |
var container = document.querySelector('.post-content') | |
var items = container.querySelectorAll('[data-collection-item]') | |
[].slice.call(items).forEach(function(item) { | |
// ... | |
}) |
// 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 |