If you have to extend an existing object with additional property, always prefer Vue.set()
over Object.assign()
(or spread operator).
Example below explains implications for different implementations.
const { assert } = require('chai'); | |
function isError(e) { | |
if (typeof e === 'string') { | |
return Promise.reject(new Error(e)); | |
} | |
return Promise.resolve(e); | |
} | |
# This will run `nvm use` everytime you change directory, if | |
# 1. an .nvmrc file is present | |
# 2. there is no .nvmrc but you're not using your default node | |
# Add it to your `.bash_profile` (or wherever else is suitable for your setup). | |
enter_directory(){ | |
if [ "$PWD" != "$PREV_PWD" ]; then | |
PREV_PWD="$PWD"; | |
if [ -e ".nvmrc" ]; then | |
nvm use; |
<ul class="o-list-fit c-nav-primary"> | |
<li class="o-list-fit__item c-nav-primary__item"> | |
<a href="#" class="o-list-fit__link c-nav-primary__link">The workshop</a> | |
</li> | |
<li class="o-list-fit__item c-nav-primary__item"> | |
<a href="#" class="o-list-fit__link c-nav-primary__link">2013 Schedule</a> | |
</li> | |
<li class="o-list-fit__item c-nav-primary__item"> | |
<a href="#" class="o-list-fit__link c-nav-primary__link is-current">About CSS Wizardry</a> | |
</li> |
This entire guide is based on an old version of Homebrew/Node and no longer applies. It was only ever intended to fix a specific error message which has since been fixed. I've kept it here for historical purposes, but it should no longer be used. Homebrew maintainers have fixed things and the options mentioned don't exist and won't work.
I still believe it is better to manually install npm separately since having a generic package manager maintain another package manager is a bad idea, but the instructions below don't explain how to do that.
Installing node through Homebrew can cause problems with npm for globally installed packages. To fix it quickly, use the solution below. An explanation is also included at the end of this document.
<!doctype html> | |
<html lang="en" class="breakpoint-medium"> | |
<head> | |
<meta charset="utf-8"> | |
<title>Metaquery Boilerplate</title> | |
<meta name="description" content=""> | |
<meta name="viewport" content="width=device-width"> | |
<meta name="breakpoint" content="small" media="(max-width: 480px)"> | |
<meta name="breakpoint" content="medium" media="(min-width: 481px) and (768px)"> |
This simple script will take a picture of a whiteboard and use parts of the ImageMagick library with sane defaults to clean it up tremendously.
The script is here:
#!/bin/bash
convert "$1" -morphology Convolve DoG:15,100,0 -negate -normalize -blur 0x1 -channel RBG -level 60%,91%,0.1 "$2"
When the directory structure of your Node.js application (not library!) has some depth, you end up with a lot of annoying relative paths in your require calls like:
const Article = require('../../../../app/models/article');
Those suck for maintenance and they're ugly.
# A simple Makefile alternative to using Grunt for your static asset compilation | |
# | |
## Usage | |
# | |
# $ npm install | |
# | |
# And then you can run various commands: | |
# | |
# $ make # compile files that need compiling | |
# $ make clean all # remove target files and recompile from scratch |
// Support routines for automatically reporting user timing for common analytics platforms | |
// Currently supports Google Analytics, Boomerang and SOASTA mPulse | |
// In the case of boomerang, you will need to map the event names you want reported | |
// to timer names (for mPulse these need to be custom0, custom1, etc) using a global variable: | |
// rumMapping = {'aft': 'custom0'}; | |
(function() { | |
var wtt = function(n, t, b) { | |
t = Math.round(t); | |
if (t >= 0 && t < 3600000) { | |
// Google Analytics |