This gist shows how to create a GIF screencast using only free OS X tools: QuickTime, ffmpeg, and gifsicle.
To capture the video (filesize: 19MB), using the free "QuickTime Player" application:
var crypto = require('crypto'); | |
var SaltLength = 9; | |
function createHash(password) { | |
var salt = generateSalt(SaltLength); | |
var hash = md5(password + salt); | |
return salt + hash; | |
} |
Drop in replace functions for setTimeout() & setInterval() that | |
make use of requestAnimationFrame() for performance where available | |
http://www.joelambert.co.uk | |
Copyright 2011, Joe Lambert. | |
Free to use under the MIT license. | |
http://www.opensource.org/licenses/mit-license.php |
var user = { | |
validateCredentials: function (username, password) { | |
return ( | |
(!(username += '') || username === '') ? { error: "No Username Given.", field: 'name' } | |
: (!(username += '') || password === '') ? { error: "No Password Given.", field: 'pass' } | |
: (username.length < 3) ? { error: "Username is less than 3 Characters.", field: 'name' } | |
: (password.length < 4) ? { error: "Password is less than 4 Characters.", field: 'pass' } | |
: (!/^([a-z0-9_-]+)$/i.test(username)) ? { error: "Username contains invalid characters.", field: 'name' } | |
: false | |
); |
# Variables | |
exp = require 'express' | |
app = exp.createServer() | |
pass = require 'passport' | |
BrowserID = require('passport-browserid').Strategy | |
# Passport Serialize and Deserialize Functions | |
pass.serializeUser (user, done) -> | |
done null, user.email |
#!/bin/sh | |
echo "Stopping service" | |
sudo stop myapp | |
echo "Deploying to test ..." | |
_TREE=/export/home/MY-USER/test | |
GIT_WORK_TREE=$_TREE git checkout -f | |
cd $_TREE | |
pwd | |
echo "Installing dependencies" | |
npm install |
license: gpl-3.0 | |
redirect: https://observablehq.com/@d3/margin-convention |
license: gpl-3.0 |
<html ng-app="ng-demo-app"> | |
<head> | |
<title>AngularJS simple app demo</title> | |
</head> | |
<body ng-controller="MainCtrl"> | |
<input type="text" ng-model="name" ng-required> | |
<div>{{name}}</div> | |
<div ng-controller="ChildCtrl"> | |
<input type="text" ng-model="salut"> | |
<div>{{salutation}}</div> |
/* Flatten das boostrap */ | |
.well, .navbar-inner, .popover, .btn, .tooltip, input, select, textarea, pre, .progress, .modal, .add-on, .alert, .table-bordered, .nav>.active>a, .dropdown-menu, .tooltip-inner, .badge, .label, .img-polaroid { | |
-moz-box-shadow: none !important; | |
-webkit-box-shadow: none !important; | |
box-shadow: none !important; | |
-webkit-border-radius: 0px !important; | |
-moz-border-radius: 0px !important; | |
border-radius: 0px !important; | |
border-collapse: collapse !important; | |
background-image: none !important; |