Skip to content

Instantly share code, notes, and snippets.

@mzabriskie
mzabriskie / README.md
Last active August 29, 2015 14:02
angular-translate - Issue with `useStaticFilesLoader` along with `registerAvailableLanguageKeys`

Setup

  1. Copy index.html and locale-en.json to the same directory
  2. From this directory run the bash commands below
  3. Open http://127.0.0.1:8080
bower install angular
bower install angular-translate
bower install angular-translate-loader-static-files
@mzabriskie
mzabriskie / server.js
Last active August 29, 2015 14:03
Attaching request handling to existing server
/**
* I have seen this a lot lately.
* I assume it's to give priority to the request handler for this module.
* Otherwise why not just add a new listener and leave existing alone?
*/
module.exports.listen = function (server) {
var listeners = server.listeners('request').slice(0);
server.removeAllListeners('request');
server.on('request', function (req, res) {
if (req.url.indexOf('/foo/bar.js') === 0) {
@mzabriskie
mzabriskie / random-attendee.js
Last active March 6, 2021 16:13
Select random Meetup attendee
// Run this from your browser console on your meetup event page (http://www.meetup.com/AngularJS-Utah/events/183104032/)
(function () {
// Query document for attendees and select a random one
const list = document.querySelector('ul.attendees-list').children,
item = list[Math.floor(Math.random() * list.length)],
name = item ? item.querySelector('h4.text--bold').innerText : 'N/A';
// Remove item so they can only be selected once
item && item.parentNode.removeChild(item);
@mzabriskie
mzabriskie / notify.js
Created October 21, 2014 16:16
Notification Wrapper
function notify(title, options) {
// Let's check if the browser supports notifications
if (!('Notification' in window)) {
return;
}
function n() {
new Notification(title, options);
}
@mzabriskie
mzabriskie / createXHR.js
Last active August 29, 2015 14:16
Creating cross browser XHR object
function createXHR() {
if (!createXHR.__memoize) {
var factory = [
function () {return new XMLHttpRequest()},
function () {return new ActiveXObject("Microsoft.XMLHTTP")},
function () {return new ActiveXObject("Msxml3.XMLHTTP")},
function () {return new ActiveXObject("Msxml2.XMLHTTP")},
];
var xhr;
@mzabriskie
mzabriskie / abort.js
Created March 18, 2015 15:35
axios abort request
/**
* The problem with using Promises for a request API is that Promises
* make it difficult to abort the request. Typically when using XHR
* some factory will wrap the actual XHR, but ultimately will return
* the XHR object.
*
* ```
* var request = performRequest('/user/12345');
* request.abort();
* ```
@mzabriskie
mzabriskie / ReactPropDefinitions.js
Last active August 29, 2015 14:18
React Prop Types/Defaults Single Statement
var App = React.createClass({
propDefinition: {
requiredStringProp: React.PropTypes.string.isRequired.default('Hello World'),
optionalNumberProp: React.PropTypes.number.default(12345),
enforcedObjectNoDefaultProp: React.PropTypes.object,
defaultValueNoTypeProp: true
}
});
@mzabriskie
mzabriskie / benchmark.js
Last active August 29, 2015 14:18
Benchmark parsing a String which is potentially JSON
var JSON_START = /^\s*(\[|\{[^\{])/;
var JSON_END = /[\}\]]\s*$/;
function benchmark(label, fn, data) {
console.time(label);
for (var i=0; i<1000; i++) {
fn(data);
}
console.timeEnd(label);
}
@mzabriskie
mzabriskie / checklist.md
Last active October 29, 2015 17:45
Release Process
  1. npm test
  2. npm run build
  3. Update package.json & bower.json version
  4. Update Changelog.md
  5. git commit -am"Releasing x.x.x"
  6. git push
  7. git tag -a vx.x.x -m"version x.x.x"
  8. git push origin --tags
  9. npm publish ./