This document is an attempt to pin down all the things you don't think about when quoting for a project, and hopefully provide a starting point for some kind of framework to make quoting, working and delivering small-medium jobs more predictable and less stressful.
Modern JavaScript build tools compile entire folder structures of JavaScript code into single, minified files that are near-impossible to read, but can also include source maps which can be used to display the original code in tools such as the Chrome DevTools Sources panel.
These source maps can be processed to extract mainly meaningful code and file structures, by installing a package calling Shuji and running a simple bash command.
Generally, production builds shouldn't include source maps, but if you do manage to lose your source files, or for some (obviously, ethical!) reason need to view the original files, and you happen to have / find the source maps, you're good to go.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sub Prepare_CSV() | |
' | |
' Prepare Barclays bank CSV export | |
' | |
' - formats number, date and amount columns | |
' - splits memo column | |
' - trims resulting cells | |
' - consolidates amazon payees | |
' - copies data to clipboard | |
' |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Type Region | |
src As Range | |
col As Long | |
End Type | |
Sub Copy_Columns() | |
' | |
' This Excel macro copies columns from a <source> sheet to a <target> sheet: | |
' | |
' - by default, sheets 1 and 2 will be used as <source> and <target> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
javascript: | |
` | |
WorkFlowy x 2 | |
============= | |
- A browser Bookmarklet to give you a dual panel WorkFlowy view | |
Features / Usage: |
group | name | emojis |
---|---|---|
positive | ||
winning | 🥳😎🤩🤑🤓🤠😇🫡 | |
cheeky | 😏😉😋😛😝😜🤪 | |
happy | 🙂🙃😀😃😁😄😆😅😂🤣 | |
content | 😌 |
|
amorous | 😗😙😚😘😍 | |
neutral | ||
shy | 🫢🤭 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Copy to: "C:\Program Files (x86)\Creative\Adobe Photoshop CS6\Presets\Scripts" or equivilent on a Mac | |
// Tested with Photoshop CS6, but should work with older versions. Backup existing files before copying over them! | |
// Copyright 2007. Adobe Systems, Incorporated. All rights reserved. | |
// This script will apply each comp and then export to a file | |
// Written by Naoki Hada | |
// ZStrings and auto layout by Tom Ruark | |
// PNG support by Jeffrey Tranberry | |
/* |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
let values = [] | |
let scores = [] | |
function prepare (length = 10_000_000) { | |
values = (new Array(length)).fill(1).map((e, i) => i) | |
} | |
function forIn () { | |
const output = [] | |
for (let i = 0; i < values.length; i++) { |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
javascript: document.querySelectorAll('*').forEach(e => { | |
if (e.childNodes.length === 1 && e.childNodes[0].nodeType === Element.TEXT_NODE) { | |
if (e.innerText && e.innerText === e.innerText.toUpperCase()) { | |
e.innerText = e.innerText.toLowerCase() | |
.replace(/^\w|\.\s+\w/gm, t => t.toUpperCase()) | |
.replace(/\si\s/, ' I '); | |
} | |
} | |
}); |
NewerOlder