Skip to content

Instantly share code, notes, and snippets.

View bguiz's full-sized avatar

Brendan Graetz bguiz

View GitHub Profile
@bguiz
bguiz / generator-angular-add-express-stub-server.diff
Last active August 29, 2015 13:56
Add express stub server to Gruntfile (from generator-angular as starting point)
diff --git a/ngyo/Gruntfile.js b/ngyo/Gruntfile.js
index 3df3112..2cb746a 100644
--- a/ngyo/Gruntfile.js
+++ b/ngyo/Gruntfile.js
@@ -1,6 +1,8 @@
// Generated on 2014-02-13 using generator-angular 0.7.1
'use strict';
+var path = require('path');
+
<!DOCTYPE html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/handlebars.js/1.0.0/handlebars.js"></script>
<script src="http://builds.emberjs.com.s3.amazonaws.com/tags/v1.0.0/ember.js"></script>
<meta charset="utf-8">
<title>JS Bin</title>
</head>
<body>
@bguiz
bguiz / mount-virtualbox-shared-directories.sh
Created February 28, 2014 01:50
mount all virtual box shell shared directories - shell script
#!/bin/bash
# Mounts all known drives shared via virtual box
# configuration
MOUNT_POINT="${HOME}/media"
MOUNT_DIRS="foo bar baz"
# do it
if [ "$1" = "unmount" ] ; then
for DIR in $( ls ${MOUNT_POINT} ) ; do

Throttling filters in Ember.Controller

Suppose you have an array of complex data that you wish you filter. The property to filter upon is bound to the value of a text input field.

By default, this means that every keystroke will result in the filter being computed and (that particular section of) the template re-rendered.

Throttle it!

However, let's say we do not want this to happen, as we deem it to be too expensive. _.throttle combined with Ember observes using an property on a controller as an intermediary, makes this possible.

@bguiz
bguiz / modernizr-cli.js
Last active August 29, 2015 13:57
Modernizr 3.0 command line
/*globals console, process, __dirname */
var modernizr = require('./lib/cli');
var fs = require('fs');
var args = process.argv.slice(2);
console.log('CLI arguments:', args);
if (args.length < 3) {
console.error('Expects three arguments: config, output, minifiedOutput');
{{!--
Sample usage in handlebars template
Say you wish to display an undordered list (`<ul>`) of `Foo` models,
and only one of these `Foo`s can be selected as the primary `Foo`.
We bind each `Foo` to a radio button, with the `checked` attribute
of the radio button updating the `primary` attribute of the `Foo` model.
--}}
{{#view App.RadioButtonGroupView name='foo-group'}}
@bguiz
bguiz / add-broccoli-compass-to-ember-cli-app.md
Last active August 29, 2015 14:02
How to add broccoli-compass to an ember-cli app

Run the following commands:

gem install --pre compass sass-css-importer
npm install --save-dev broccoli-static-compiler broccoli-merge-trees broccoli-compass

(This assumes that you already have Ruby and NodeJs installed)

Then add the contents of snippet-add-broccoli-compass-to-ember-cli-app.js to your Brocfile.js,

@bguiz
bguiz / vbox-mount.sh
Created July 8, 2014 01:11
mounts virtualbox shared directories
#!/bin/bash
# Mounts all known drives shared via virtual box
# configuration
MOUNT_POINT="${HOME}/media"
MOUNT_DIRS="foo bar" #replace with the ones you have configured for your virtual machine
USERID=$( id -u )
GROUPID=$( id -g )
for DIR in ${MOUNT_DIRS} ; do
@bguiz
bguiz / efficient-dropbox.sh
Created July 10, 2014 00:28
Runs dropbox at intervals, so as not to create too many deltas
#!/bin/bash
# Runs dropbox at intervals, so as not to create too many deltas
SYNC_CHECK_INTERVAL=60
SLEEP_INTERVAL=900
while true ; do
echo "Dropbox watch loop"
dropbox start
while true ; do
@bguiz
bguiz / quick-select-in-place.js
Created July 29, 2014 01:39
Quick select implementation in Javacript
/*
* Places the `k` smallest elements (by `propName`) in `arr` in the first `k` indices: `[0..k-1]`
* Modifies the passed in array *in place*
* Returns a slice of the wanted eleemnts for convencience
* Efficent mainly due to never performaing a full sort.
*
* The only guarantees are that:
*
* - The `k`th element is in its final sort index, if the array were to be sorted
* - All elements before index `k` are smaller than the `k`th element