working on it ...

Filters

Explore Public Snippets

Sort by

Found 46k snippets matching: your

    public by eyemonen modified Oct 21, 2013  326686  0  4  0

    Here are a set of libraries, plugins and guides which may be useful to your Javascript coding.

    Here are a set of libraries, plugins and guides which may be useful to your Javascript coding.: javascript_resources.md
    ## Libraries
    
    - [jQuery](http://jquery.com) - The de-facto library for the modern age. It makes things like HTML document traversal and manipulation, event handling, animation, and Ajax much simpler with an easy-to-use API that works across a multitude of browsers.
    - [Backbone](http://backbonejs.org/) - Backbone.js gives structure to web applications by providing models with key-value binding and custom events, collections with a rich API of enumerable functions, views with declarative event handling, and connects it all to your existing API over a RESTful JSON interface.
    - [AngularJS](http://angularjs.org/) - Conventions based MVC framework for HTML5 apps.
    - [Underscore](http://underscorejs.org/) - Underscore is a utility-belt library for JavaScript that provides a lot of the functional programming support that you would expect in Prototype.js (or Ruby), but without extending any of the built-in JavaScript objects.
    - [lawnchair](http://brian.io/lawnchair/) - Key/value store adapter for indexdb, localStorage and more
    - [Handlebars](http://handlebarsjs.com/) - Minimal semantic templating
    
    ## Plugins
    - [jQueryUI](http://jqueryui.com/) - jQuery UI is a curated set of user interface interactions, effects, widgets, and themes built on top of the jQuery JavaScript Library.
    - [Bootstrap](http://getbootstrap.com/javascript/) - Bring Bootstrap's components to life with over a dozen custom jQuery plugins. Easily include them all, or one by one.
    - [Async.js](https://github.com/caolan/async) - Async is a utility module which provides straight-forward, powerful functions for working with asynchronous JavaScript. Although originally designed for use with node.js, it can also be used directly in the browser. Also supports component.
    - [timeago](http://timeago.yarp.com/) - Timeago is a jQuery plugin that makes it easy to support automatically updating fuzzy timestamps (e.g. "4 minutes ago" or "about 1 day ago").
    - [Chosen](https://github.com/harvesthq/chosen) - Chosen is a library for making long, unwieldy select boxes more friendly.
    - [QTip2](http://qtip2.com/) - Second generation of the advanced tooltip plugin for jQuery
    - [spin.js](http://fgnass.github.io/spin.js/) - JS replacement for gif loading spinners
    - [Hotkeys](https://github.com/jeresig/jquery.hotkeys) - John Resig's plugin for adding/removing handlers for keyboard events
    - [Linkify](https://github.com/uudashr/jquery-linkify) - jQuery plugin to format text containing URL or hashtag into clickable anchor tags.
    
    ## Tools
    - [Bower](http://bower.io/) - Bower is a package manager for the web. It offers a generic, unopinionated solution to the problem of front-end package management, while exposing the package dependency model via an API that can be consumed by a more opinionated build stack. There are no system wide dependencies, no dependencies are shared between different apps, and the dependency tree is flat.
    - [Grunt](http://gruntjs.com/) - Javascript Task Runner
    
    ## Guides
    - [Jasmine](http://pivotal.github.io/jasmine/) - Jasmine is a behavior-driven development framework for testing JavaScript code.
    - [Building a Chrome Extension](https://developer.chrome.com/extensions/getstarted.html) - Extensions allow you to add functionality to Chrome without diving deeply into native code. You can create new extensions for Chrome with those core technologies that you're already familiar with from web development: HTML, CSS, and JavaScript.
    - [Backbone Tutorials](http://backbonetutorials.com/) - Backbone Tutorials is a collection of tutorials written by Thomas Davis.
    
    

    public by JonahM modified Sep 29, 2014  269563  0  6  0

    Tweak Your UI using Form Alter - Drupal

    How to identify and edit elements on a page in Drupal. This is a drupal module code
    <?php
    
    function ui_tweaka_help($path, $arg){
    	switch ($path) {
    		case 'admin/#ui_tweaka':
    			return t("Changes stuff");
    	}	
    }
    
    function ui_tweaka_form_alter(&$form, &$form_state, $form_id) {
      if (module_exists('devel')) { // Is the 'devel' module active?
         dpm($form_id); // Let's have a butchers at the form id
         dpm($form); // Ditto the form itself
    
         //$form['title']['#title'] = t('Main Heading for this page');
         //$form['title']['#access'] = FALSE;
         $form['field_image']['und'][0]['#description'] = t("Upload  nice piccy here");
      }
    }
    
    ?>
    

    public by mporru @ Amazon_AWS_PHP_API modified Jul 23, 2013  210008  0  5  0

    Amazon AWS - PHP: Upload a File taking it from your server

    This snippet demonstrates how to upload a file to a S3 Bucket, taking it form a your server. In order to use this service you must enable Amazon Simple Storage Service (Amazon S3) in your account. Taken from: http://www.sitepoint.com/getting-started-with-the-aws-php-sdk/
    <?php
    require_once 'sdk.class.php';
    $s3 = new AmazonS3();
    // Create Object is pretty self explanatory:
    // Arg 1: The bucket where your file will be created.
    // Arg 2: The name of your file.
    // Arg 3: An array of Options.
    //        In this case we're specifying the &quot;fileUpload&quot; option (a file on your server)
    //        and the ACL setting to allow this file to be read by anyone.
    $response=$s3->create_object('myBucketName', 'LighthouseNew.jpg', 
    array('fileUpload'=>'./Lighthouse.jpg', 'acl'=>AmazonS3::ACL_PUBLIC));
    // Check if everything is okay.
    if ($response->isOK()) {
    	echo("File uploaded correctly");
    } else {
    	echo("There was an error uploading the file!");
    }
    ?>

    public by gabriel-shanahan modified Jun 18, 2015  193451  0  4  0

    Here are a set of libraries, plugins and guides which may be useful to your Javascript coding.

    Here are a set of libraries, plugins and guides which may be useful to your Javascript coding.: javascript_resources.md
    ## Libraries
    
    - [jQuery](http://jquery.com) - The de-facto library for the modern age. It makes things like HTML document traversal and manipulation, event handling, animation, and Ajax much simpler with an easy-to-use API that works across a multitude of browsers.
    - [Backbone](http://backbonejs.org/) - Backbone.js gives structure to web applications by providing models with key-value binding and custom events, collections with a rich API of enumerable functions, views with declarative event handling, and connects it all to your existing API over a RESTful JSON interface.
    - [AngularJS](http://angularjs.org/) - Conventions based MVC framework for HTML5 apps.
    - [Underscore](http://underscorejs.org/) - Underscore is a utility-belt library for JavaScript that provides a lot of the functional programming support that you would expect in Prototype.js (or Ruby), but without extending any of the built-in JavaScript objects.
    - [lawnchair](http://brian.io/lawnchair/) - Key/value store adapter for indexdb, localStorage and more
    - [Handlebars](http://handlebarsjs.com/) - Minimal semantic templating
    
    ## Plugins
    - [jQueryUI](http://jqueryui.com/) - jQuery UI is a curated set of user interface interactions, effects, widgets, and themes built on top of the jQuery JavaScript Library.
    - [Bootstrap](http://getbootstrap.com/javascript/) - Bring Bootstrap's components to life with over a dozen custom jQuery plugins. Easily include them all, or one by one.
    - [Async.js](https://github.com/caolan/async) - Async is a utility module which provides straight-forward, powerful functions for working with asynchronous JavaScript. Although originally designed for use with node.js, it can also be used directly in the browser. Also supports component.
    - [timeago](http://timeago.yarp.com/) - Timeago is a jQuery plugin that makes it easy to support automatically updating fuzzy timestamps (e.g. "4 minutes ago" or "about 1 day ago").
    - [Chosen](https://github.com/harvesthq/chosen) - Chosen is a library for making long, unwieldy select boxes more friendly.
    - [QTip2](http://qtip2.com/) - Second generation of the advanced tooltip plugin for jQuery
    - [spin.js](http://fgnass.github.io/spin.js/) - JS replacement for gif loading spinners
    - [Hotkeys](https://github.com/jeresig/jquery.hotkeys) - John Resig's plugin for adding/removing handlers for keyboard events
    - [Linkify](https://github.com/uudashr/jquery-linkify) - jQuery plugin to format text containing URL or hashtag into clickable anchor tags.
    
    ## Tools
    - [Bower](http://bower.io/) - Bower is a package manager for the web. It offers a generic, unopinionated solution to the problem of front-end package management, while exposing the package dependency model via an API that can be consumed by a more opinionated build stack. There are no system wide dependencies, no dependencies are shared between different apps, and the dependency tree is flat.
    - [Grunt](http://gruntjs.com/) - Javascript Task Runner
    
    ## Guides
    - [Jasmine](http://pivotal.github.io/jasmine/) - Jasmine is a behavior-driven development framework for testing JavaScript code.
    - [Building a Chrome Extension](https://developer.chrome.com/extensions/getstarted.html) - Extensions allow you to add functionality to Chrome without diving deeply into native code. You can create new extensions for Chrome with those core technologies that you're already familiar with from web development: HTML, CSS, and JavaScript.
    - [Backbone Tutorials](http://backbonetutorials.com/) - Backbone Tutorials is a collection of tutorials written by Thomas Davis.
    
    

    public by skaggej modified Jan 10, 2013  230491  1  6  0

    SharePoint 2010 - View Resource Measures for Sandboxed Solutions

    Ever wonder exactly what "300 points" means for you sandboxed solutions' resource quota in SharePoint 2010? Run the following PowerShell script in the SharePoint 2010 Management Shell and you'll be able to see it for yourself.
    $resourceMeasures = [Microsoft.SharePoint.Administration.SPUserCodeService]::Local.ResourceMeasures
    $resourceMeasures | Select Name, ResourcesPerPoint
    

    public by sTiLL-iLL @ SniPitz-KND modified Nov 27, 2014  181216  1  7  10

    "flatten" your complex arrays

    a flattening Array helper function
    // go flat yerself!
    
    function flatten(arrayToFlatten, rslt) {
        rslt = rslt || [];
        arrayToFlatten.forEach(function(itm) {
            if (Array.isArray(itm)){
                rslt = flatten(itm, rslt);
            }
            else {
                rslt.push(itm);
            }
        });
        return rslt;
    }
    
    // use it...
    
    var someArrayData = [[60, 121, 4, 832],[71, 188, 6, 33]];
    
    // [60, 121, 4, 832, 71, 188, 6, 33]
    
    console.log(flatten(someArrayData));            

    public by cghersi @ MailUp API DEV modified Nov 19, 2014  112681  9  5  0

    How to Retrieve your personal information with MailUp .NET SDK

    This snippet takes advantage of the MailUp .NET SDK to setup the secure communication towards the server through OAuth2 two leg authentication. You can start digging into the MailUP API world by reading this content: http://help.mailup.com/display/mailupapi/REST+API An instance of MailUpClient class is able to manage one user at a time. A MailU
    public static void GetPersonalDataFields(string clientID, string clientSecret, string username, string password)
    {
        // 1) Setup the MailUp Client:
        MailUpClient client = new MailUpClient(clientID, clientSecret);
        try
        {
            client.RetrieveAccessToken(username, password);
        }
        catch (MailUpException ex)
        {
            Console.WriteLine("Unable to access the service due to " + ex.Message);
            return;
        }
    
        // 2) Prepare the input:
        //nothing to do here...
    
        // 3) Invoke the web method:
        CollectionOf<ConsoleDynamicFieldItem> result = null;
        try
        {
            result = client.GetPersonalDataFields();
        }
        catch (Exception ex)
        {
            Console.WriteLine("Cannot perform the operation due to " + ex.Message);
            return;
        }
    
    
        if (result != null)
            Console.WriteLine("Personal Data Fields Retrieved: " + result.Count);
        else
            Console.WriteLine("Cannot retrieve Personal Data Fields.");
    }
    

    public by micurs modified Oct 30, 2015  32613  448  8  3

    HTML5 Canvas: drawing an arrow at the end of the line

    The Canvas 2D API does not have a way to draw an arrow as endpoint of a line. This simple code shows how you can draw one yourself. With this HTML: Running demo available here: http://jsfiddle.net/n7e2zhj3/2/
    var canvas = document.getElementById('myCanvas');
    var ctx = canvas.getContext('2d');
    
    function grid() {
        for (var x = 0.5; x < canvas.width; x += 10) {
            ctx.moveTo(x, 0);
            ctx.lineTo(x, canvas.height);
        }
        for (var y = 0.5; y < canvas.height; y += 10) {
            ctx.moveTo(0, y);
            ctx.lineTo(canvas.width, y);
        }
        ctx.strokeStyle = "#eee";
        ctx.stroke();
    }
    
    function arrow(p1, p2) {
    
        ctx.save();
        var dist = Math.sqrt((p2[0] - p1[0]) * (p2[0] - p1[0]) + (p2[1] - p1[1]) * (p2[1] - p1[1]));
    
        ctx.beginPath();
        ctx.lineWidth = 2;
        ctx.strokeStyle = '#0000ff';
        ctx.moveTo(p1[0], p1[1]);
        ctx.lineTo(p2[0], p2[1]);
        ctx.stroke();
    
        var angle = Math.acos((p2[1] - p1[1]) / dist);
    
        if (p2[0] < p1[0]) angle = 2 * Math.PI - angle;
    
        var size = 15;
    
        ctx.beginPath();
        ctx.translate(p2[0], p2[1]);
        ctx.rotate(-angle);
        ctx.fillStyle = '#0000ff';
        ctx.lineWidth = 2;
        ctx.strokeStyle = '#ff0000';
        ctx.moveTo(0, -size);
        ctx.lineTo(-size, -size);
        ctx.lineTo(0, 0);
        ctx.lineTo(size, -size);
        ctx.lineTo(0, -size);
        ctx.closePath();
        ctx.fill();
        ctx.stroke();
        ctx.restore();
    }
    
    $('#myCanvas').bind('mousemove', function (e) {
        var offset = $(this).offset();
        var p1 = [200.0, 200.0];
        var p2 = [e.pageX - offset.left, e.pageY - offset.top];
    
        ctx.clearRect(0, 0, 400, 400);
        grid();
        arrow(p1, p2);
    })                                  

    public by Tim Brown modified May 27, 2016  38160  1  3  0

    OSX for Hackers: Yosemite/El Capitan Edition. This script tries not to be *too* opinionated and any major changes to your system require a prompt. You've been warned. Also, please don't email me about this script, my poor inbox...

    OSX for Hackers: Yosemite/El Capitan Edition. This script tries not to be *too* opinionated and any major changes to your system require a prompt. You've been warned. Also, please don't email me about this script, my poor inbox...: osx-for-hackers.sh
    #!/bin/sh
    
    # Alot of these configs have been taken from the various places
    # on the web, most from here
    # https://github.com/mathiasbynens/dotfiles/blob/master/.osx
    
    # Set the colours you can use
    black='\033[0;30m'
    white='\033[0;37m'
    red='\033[0;31m'
    green='\033[0;32m'
    yellow='\033[0;33m'
    blue='\033[0;34m'
    magenta='\033[0;35m'
    cyan='\033[0;36m'
    
    # Resets the style
    reset=`tput sgr0`
    
    # Color-echo. Improved. [Thanks @joaocunha]
    # arg $1 = message
    # arg $2 = Color
    cecho() {
      echo "${2}${1}${reset}"
      return
    }
    
    # Set continue to false by default
    CONTINUE=false
    
    echo ""
    cecho "###############################################" $red
    cecho "#        DO NOT RUN THIS SCRIPT BLINDLY       #" $red
    cecho "#         YOU'LL PROBABLY REGRET IT...        #" $red
    cecho "#                                             #" $red
    cecho "#              READ IT THOROUGHLY             #" $red
    cecho "#         AND EDIT TO SUIT YOUR NEEDS         #" $red
    cecho "###############################################" $red
    echo ""
    
    
    echo ""
    cecho "Have you read through the script you're about to run and " $red
    cecho "understood that it will make changes to your computer? (y/n)" $red
    read -r response
    if [[ $response =~ ^([yY][eE][sS]|[yY])$ ]]; then
      CONTINUE=true
    fi
    
    if ! $CONTINUE; then
      # Check if we're continuing and output a message if not
      cecho "Please go read the script, it only takes a few minutes" $red
      exit
    fi
    
    # Here we go.. ask for the administrator password upfront and run a
    # keep-alive to update existing `sudo` time stamp until script has finished
    sudo -v
    while true; do sudo -n true; sleep 60; kill -0 "$$" || exit; done 2>/dev/null &
    
    ###############################################################################
    # General UI/UX
    ###############################################################################
    
    echo ""
    echo "Would you like to set your computer name (as done via System Preferences >> Sharing)?  (y/n)"
    read -r response
    if [[ $response =~ ^([yY][eE][sS]|[yY])$ ]]; then
      echo "What would you like it to be?"
      read COMPUTER_NAME
      sudo scutil --set ComputerName $COMPUTER_NAME
      sudo scutil --set HostName $COMPUTER_NAME
      sudo scutil --set LocalHostName $COMPUTER_NAME
      sudo defaults write /Library/Preferences/SystemConfiguration/com.apple.smb.server NetBIOSName -string $COMPUTER_NAME
    fi
    
    echo ""
    echo "Hide the Time Machine, Volume, User, and Bluetooth icons?  (y/n)"
    read -r response
    if [[ $response =~ ^([yY][eE][sS]|[yY])$ ]]; then
      # Get the system Hardware UUID and use it for the next menubar stuff
      for domain in ~/Library/Preferences/ByHost/com.apple.systemuiserver.*; do
        defaults write "${domain}" dontAutoLoad -array \
          "/System/Library/CoreServices/Menu Extras/TimeMachine.menu" \
          "/System/Library/CoreServices/Menu Extras/Volume.menu" \
          "/System/Library/CoreServices/Menu Extras/User.menu"
      done
    
      defaults write com.apple.systemuiserver menuExtras -array \
        "/System/Library/CoreServices/Menu Extras/Bluetooth.menu" \
        "/System/Library/CoreServices/Menu Extras/AirPort.menu" \
        "/System/Library/CoreServices/Menu Extras/Battery.menu" \
        "/System/Library/CoreServices/Menu Extras/Clock.menu"
    fi
    
    echo ""
    echo "Hide the Spotlight icon? (y/n)"
    read -r response
    if [[ $response =~ ^([yY][eE][sS]|[yY])$ ]]; then
      sudo chmod 600 /System/Library/CoreServices/Search.bundle/Contents/MacOS/Search
    fi
    
    echo ""
    echo "Disable Spotlight indexing for any volume that gets mounted and has not yet been indexed before? (y/n)"
    read -r response
    if [[ $response =~ ^([yY][eE][sS]|[yY])$ ]]; then
      echo 'Use `sudo mdutil -i off "/Volumes/foo"` to stop indexing any volume.'
      sudo defaults write /.Spotlight-V100/VolumeConfiguration Exclusions -array "/Volumes"
    fi
    
    echo ""
    echo "Change indexing order and disable some search results in Spotlight? (y/n)"
    read -r response
    if [[ $response =~ ^([yY][eE][sS]|[yY])$ ]]; then
      # Yosemite-specific search results (remove them if your are using OS X 10.9 or older):
      #   MENU_DEFINITION
      #   MENU_CONVERSION
      #   MENU_EXPRESSION
      #   MENU_SPOTLIGHT_SUGGESTIONS (send search queries to Apple)
      #   MENU_WEBSEARCH             (send search queries to Apple)
      #   MENU_OTHER
      defaults write com.apple.spotlight orderedItems -array \
        '{"enabled" = 1;"name" = "APPLICATIONS";}' \
        '{"enabled" = 1;"name" = "SYSTEM_PREFS";}' \
        '{"enabled" = 1;"name" = "DIRECTORIES";}' \
        '{"enabled" = 1;"name" = "PDF";}' \
        '{"enabled" = 1;"name" = "FONTS";}' \
        '{"enabled" = 0;"name" = "DOCUMENTS";}' \
        '{"enabled" = 0;"name" = "MESSAGES";}' \
        '{"enabled" = 0;"name" = "CONTACT";}' \
        '{"enabled" = 0;"name" = "EVENT_TODO";}' \
        '{"enabled" = 0;"name" = "IMAGES";}' \
        '{"enabled" = 0;"name" = "BOOKMARKS";}' \
        '{"enabled" = 0;"name" = "MUSIC";}' \
        '{"enabled" = 0;"name" = "MOVIES";}' \
        '{"enabled" = 0;"name" = "PRESENTATIONS";}' \
        '{"enabled" = 0;"name" = "SPREADSHEETS";}' \
        '{"enabled" = 0;"name" = "SOURCE";}' \
        '{"enabled" = 0;"name" = "MENU_DEFINITION";}' \
        '{"enabled" = 0;"name" = "MENU_OTHER";}' \
        '{"enabled" = 0;"name" = "MENU_CONVERSION";}' \
        '{"enabled" = 0;"name" = "MENU_EXPRESSION";}' \
        '{"enabled" = 0;"name" = "MENU_WEBSEARCH";}' \
        '{"enabled" = 0;"name" = "MENU_SPOTLIGHT_SUGGESTIONS";}'
      # Load new settings before rebuilding the index
      killall mds > /dev/null 2>&1
      # Make sure indexing is enabled for the main volume
      sudo mdutil -i on / > /dev/null
      # Rebuild the index from scratch
      sudo mdutil -E / > /dev/null
    fi
    
    echo ""
    echo "Expanding the save panel by default"
    defaults write NSGlobalDomain NSNavPanelExpandedStateForSaveMode -bool true
    defaults write NSGlobalDomain PMPrintingExpandedStateForPrint -bool true
    defaults write NSGlobalDomain PMPrintingExpandedStateForPrint2 -bool true
    
    echo ""
    echo "Automatically quit printer app once the print jobs complete"
    defaults write com.apple.print.PrintingPrefs "Quit When Finished" -bool true
    
    # Try e.g. `cd /tmp; unidecode "\x{0000}" > cc.txt; open -e cc.txt`
    echo ""
    echo "Displaying ASCII control characters using caret notation in standard text views"
    defaults write NSGlobalDomain NSTextShowsControlCharacters -bool true
    
    echo ""
    echo "Save to disk, rather than iCloud, by default? (y/n)"
    read -r response
    if [[ $response =~ ^([yY][eE][sS]|[yY])$ ]]; then
      defaults write NSGlobalDomain NSDocumentSaveNewDocumentsToCloud -bool false
    fi
    
    echo ""
    echo "Reveal IP address, hostname, OS version, etc. when clicking the clock in the login window"
    sudo defaults write /Library/Preferences/com.apple.loginwindow AdminHostInfo HostName
    
    echo ""
    echo "Check for software updates daily, not just once per week"
    defaults write com.apple.SoftwareUpdate ScheduleFrequency -int 1
    
    echo ""
    echo "Removing duplicates in the 'Open With' menu"
    /System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -kill -r -domain local -domain system -domain user
    
    echo ""
    echo "Disable smart quotes and smart dashes? (y/n)"
    read -r response
    if [[ $response =~ ^([yY][eE][sS]|[yY])$ ]]; then
      defaults write NSGlobalDomain NSAutomaticQuoteSubstitutionEnabled -bool false
      defaults write NSGlobalDomain NSAutomaticDashSubstitutionEnabled -bool false
    fi
    
    echo ""
    echo "Add ability to toggle between Light and Dark mode in Yosemite using ctrl+opt+cmd+t? (y/n)"
    # http://www.reddit.com/r/apple/comments/2jr6s2/1010_i_found_a_way_to_dynamically_switch_between/
    read -r response
    if [[ $response =~ ^([yY][eE][sS]|[yY])$ ]]; then
      sudo defaults write /Library/Preferences/.GlobalPreferences.plist _HIEnableThemeSwitchHotKey -bool true
    fi
    
    echo ""
    echo "Disable Photos.app from starting everytime a device is plugged in"
    defaults -currentHost write com.apple.ImageCapture disableHotPlug -bool true
    
    
    ###############################################################################
    # General Power and Performance modifications
    ###############################################################################
    
    echo ""
    echo "Disable hibernation? (speeds up entering sleep mode) (y/n)"
    read -r response
    if [[ $response =~ ^([yY][eE][sS]|[yY])$ ]]; then
      sudo pmset -a hibernatemode 0
    fi
    
    echo ""
    echo "Remove the sleep image file to save disk space? (y/n)"
    echo "(If you're on a <128GB SSD, this helps but can have adverse affects on performance. You've been warned.)"
    read -r response
    if [[ $response =~ ^([yY][eE][sS]|[yY])$ ]]; then
      sudo rm /Private/var/vm/sleepimage
      echo "Creating a zero-byte file instead"
      sudo touch /Private/var/vm/sleepimage
      echo "and make sure it can't be rewritten"
      sudo chflags uchg /Private/var/vm/sleepimage
    fi
    
    echo ""
    echo "Disable the sudden motion sensor? (it's not useful for SSDs/current MacBooks) (y/n)"
    read -r response
    if [[ $response =~ ^([yY][eE][sS]|[yY])$ ]]; then
      sudo pmset -a sms 0
    fi
    
    echo ""
    echo "Disable system-wide resume? (y/n)"
    read -r response
    if [[ $response =~ ^([yY][eE][sS]|[yY])$ ]]; then
      defaults write com.apple.systempreferences NSQuitAlwaysKeepsWindows -bool false
    fi
    
    echo ""
    echo "Disable the menubar transparency? (y/n)"
    read -r response
    if [[ $response =~ ^([yY][eE][sS]|[yY])$ ]]; then
      defaults write com.apple.universalaccess reduceTransparency -bool true
    fi
    
    echo ""
    echo "Speeding up wake from sleep to 24 hours from an hour"
    # http://www.cultofmac.com/221392/quick-hack-speeds-up-retina-macbooks-wake-from-sleep-os-x-tips/
    sudo pmset -a standbydelay 86400
    
    
    ################################################################################
    # Trackpad, mouse, keyboard, Bluetooth accessories, and input
    ###############################################################################
    
    echo ""
    echo "Increasing sound quality for Bluetooth headphones/headsets"
    defaults write com.apple.BluetoothAudioAgent "Apple Bitpool Min (editable)" -int 40
    
    echo ""
    echo "Enabling full keyboard access for all controls (enable Tab in modal dialogs, menu windows, etc.)"
    defaults write NSGlobalDomain AppleKeyboardUIMode -int 3
    
    echo ""
    echo "Disabling press-and-hold for special keys in favor of key repeat"
    defaults write NSGlobalDomain ApplePressAndHoldEnabled -bool false
    
    echo ""
    echo "Setting a blazingly fast keyboard repeat rate"
    defaults write NSGlobalDomain KeyRepeat -int 0
    
    echo ""
    echo "Disable auto-correct? (y/n)"
    read -r response
    if [[ $response =~ ^([yY][eE][sS]|[yY])$ ]]; then
      defaults write NSGlobalDomain NSAutomaticSpellingCorrectionEnabled -bool false
    fi
    
    echo ""
    echo "Setting trackpad & mouse speed to a reasonable number"
    defaults write -g com.apple.trackpad.scaling 2
    defaults write -g com.apple.mouse.scaling 2.5
    
    echo ""
    echo "Turn off keyboard illumination when computer is not used for 5 minutes"
    defaults write com.apple.BezelServices kDimTime -int 300
    
    echo ""
    echo "Disable display from automatically adjusting brightness? (y/n)"
    read -r response
    if [[ $response =~ ^([yY][eE][sS]|[yY])$ ]]; then
      sudo defaults write /Library/Preferences/com.apple.iokit.AmbientLightSensor "Automatic Display Enabled" -bool false
    fi
    
    echo ""
    echo "Disable keyboard from automatically adjusting backlight brightness in low light? (y/n)"
    read -r response
    if [[ $response =~ ^([yY][eE][sS]|[yY])$ ]]; then
      sudo defaults write /Library/Preferences/com.apple.iokit.AmbientLightSensor "Automatic Keyboard Enabled" -bool false
    fi
    
    ###############################################################################
    # Screen
    ###############################################################################
    
    echo ""
    echo "Requiring password immediately after sleep or screen saver begins"
    defaults write com.apple.screensaver askForPassword -int 1
    defaults write com.apple.screensaver askForPasswordDelay -int 0
    
    echo ""
    echo "Where do you want screenshots to be stored? (hit ENTER if you want ~/Desktop as default)"
    # Thanks https://github.com/omgmog
    read screenshot_location
    echo ""
    if [ -z "${screenshot_location}" ]
    then
      # If nothing specified, we default to ~/Desktop
      screenshot_location="${HOME}/Desktop"
    else
      # Otherwise we use input
      if [[ "${screenshot_location:0:1}" != "/" ]]
      then
        # If input doesn't start with /, assume it's relative to home
        screenshot_location="${HOME}/${screenshot_location}"
      fi
    fi
    echo "Setting location to ${screenshot_location}"
    defaults write com.apple.screencapture location -string "${screenshot_location}"
    
    echo ""
    echo "What format should screenshots be saved as? (hit ENTER for PNG, options: BMP, GIF, JPG, PDF, TIFF) "
    read screenshot_format
    if [ -z "$1" ]
    then
      echo ""
      echo "Setting screenshot format to PNG"
      defaults write com.apple.screencapture type -string "png"
    else
      echo ""
      echo "Setting screenshot format to $screenshot_format"
      defaults write com.apple.screencapture type -string "$screenshot_format"
    fi
    
    echo ""
    echo "Enabling subpixel font rendering on non-Apple LCDs"
    defaults write NSGlobalDomain AppleFontSmoothing -int 2
    
    echo ""
    echo "Enabling HiDPI display modes (requires restart)"
    sudo defaults write /Library/Preferences/com.apple.windowserver DisplayResolutionEnabled -bool true
    
    ###############################################################################
    # Finder
    ###############################################################################
    
    echo ""
    echo "Show icons for hard drives, servers, and removable media on the desktop? (y/n)"
    read -r response
    if [[ $response =~ ^([yY][eE][sS]|[yY])$ ]]; then
      defaults write com.apple.finder ShowExternalHardDrivesOnDesktop -bool true
    fi
    
    echo ""
    echo "Show hidden files in Finder by default? (y/n)"
    read -r response
    if [[ $response =~ ^([yY][eE][sS]|[yY])$ ]]; then
      defaults write com.apple.Finder AppleShowAllFiles -bool true
    fi
    
    echo ""
    echo "Show dotfiles in Finder by default? (y/n)"
    read -r response
    if [[ $response =~ ^([yY][eE][sS]|[yY])$ ]]; then
      defaults write com.apple.finder AppleShowAllFiles TRUE
    fi
    
    echo ""
    echo "Show all filename extensions in Finder by default? (y/n)"
    read -r response
    if [[ $response =~ ^([yY][eE][sS]|[yY])$ ]]; then
      defaults write NSGlobalDomain AppleShowAllExtensions -bool true
    fi
    
    echo ""
    echo "Show status bar in Finder by default? (y/n)"
    read -r response
    if [[ $response =~ ^([yY][eE][sS]|[yY])$ ]]; then
      defaults write com.apple.finder ShowStatusBar -bool true
    fi
    
    echo ""
    echo "Display full POSIX path as Finder window title? (y/n)"
    read -r response
    if [[ $response =~ ^([yY][eE][sS]|[yY])$ ]]; then
      defaults write com.apple.finder _FXShowPosixPathInTitle -bool true
    fi
    
    echo ""
    echo "Disable the warning when changing a file extension? (y/n)"
    read -r response
    if [[ $response =~ ^([yY][eE][sS]|[yY])$ ]]; then
      defaults write com.apple.finder FXEnableExtensionChangeWarning -bool false
    fi
    
    echo ""
    echo "Use column view in all Finder windows by default? (y/n)"
    read -r response
    if [[ $response =~ ^([yY][eE][sS]|[yY])$ ]]; then
      defaults write com.apple.finder FXPreferredViewStyle Clmv
    fi
    
    echo ""
    echo "Avoid creation of .DS_Store files on network volumes? (y/n)"
    read -r response
    if [[ $response =~ ^([yY][eE][sS]|[yY])$ ]]; then
      defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool true
    fi
    
    echo ""
    echo "Disable disk image verification? (y/n)"
    read -r response
    if [[ $response =~ ^([yY][eE][sS]|[yY])$ ]]; then
      defaults write com.apple.frameworks.diskimages skip-verify -bool true
      defaults write com.apple.frameworks.diskimages skip-verify-locked -bool true
      defaults write com.apple.frameworks.diskimages skip-verify-remote -bool true
    fi
    
    echo ""
    echo "Allowing text selection in Quick Look/Preview in Finder by default"
    defaults write com.apple.finder QLEnableTextSelection -bool true
    
    echo ""
    echo "Show item info near icons on the desktop and in other icon views? (y/n)"
    read -r response
    if [[ $response =~ ^([yY][eE][sS]|[yY])$ ]]; then
      /usr/libexec/PlistBuddy -c "Set :DesktopViewSettings:IconViewSettings:showItemInfo true" ~/Library/Preferences/com.apple.finder.plist
      /usr/libexec/PlistBuddy -c "Set :FK_StandardViewSettings:IconViewSettings:showItemInfo true" ~/Library/Preferences/com.apple.finder.plist
      /usr/libexec/PlistBuddy -c "Set :StandardViewSettings:IconViewSettings:showItemInfo true" ~/Library/Preferences/com.apple.finder.plist
    fi
    
    echo ""
    echo "Show item info to the right of the icons on the desktop? (y/n)"
    read -r response
    if [[ $response =~ ^([yY][eE][sS]|[yY])$ ]]; then
      /usr/libexec/PlistBuddy -c "Set DesktopViewSettings:IconViewSettings:labelOnBottom false" ~/Library/Preferences/com.apple.finder.plist
    fi
    
    echo ""
    echo "Enable snap-to-grid for icons on the desktop and in other icon views? (y/n)"
    read -r response
    if [[ $response =~ ^([yY][eE][sS]|[yY])$ ]]; then
      /usr/libexec/PlistBuddy -c "Set :DesktopViewSettings:IconViewSettings:arrangeBy grid" ~/Library/Preferences/com.apple.finder.plist
      /usr/libexec/PlistBuddy -c "Set :FK_StandardViewSettings:IconViewSettings:arrangeBy grid" ~/Library/Preferences/com.apple.finder.plist
      /usr/libexec/PlistBuddy -c "Set :StandardViewSettings:IconViewSettings:arrangeBy grid" ~/Library/Preferences/com.apple.finder.plist
    fi
    
    echo ""
    echo "Increase grid spacing for icons on the desktop and in other icon views? (y/n)"
    read -r response
    if [[ $response =~ ^([yY][eE][sS]|[yY])$ ]]; then
      /usr/libexec/PlistBuddy -c "Set :DesktopViewSettings:IconViewSettings:gridSpacing 100" ~/Library/Preferences/com.apple.finder.plist
      /usr/libexec/PlistBuddy -c "Set :FK_StandardViewSettings:IconViewSettings:gridSpacing 100" ~/Library/Preferences/com.apple.finder.plist
      /usr/libexec/PlistBuddy -c "Set :StandardViewSettings:IconViewSettings:gridSpacing 100" ~/Library/Preferences/com.apple.finder.plist
    fi
    
    echo ""
    echo "Increase the size of icons on the desktop and in other icon views? (y/n)"
    read -r response
    if [[ $response =~ ^([yY][eE][sS]|[yY])$ ]]; then
      /usr/libexec/PlistBuddy -c "Set :DesktopViewSettings:IconViewSettings:iconSize 80" ~/Library/Preferences/com.apple.finder.plist
      /usr/libexec/PlistBuddy -c "Set :FK_StandardViewSettings:IconViewSettings:iconSize 80" ~/Library/Preferences/com.apple.finder.plist
      /usr/libexec/PlistBuddy -c "Set :StandardViewSettings:IconViewSettings:iconSize 80" ~/Library/Preferences/com.apple.finder.plist
    fi
    
    
    ###############################################################################
    # Dock & Mission Control
    ###############################################################################
    
    echo "Wipe all (default) app icons from the Dock? (y/n)"
    echo "(This is only really useful when setting up a new Mac, or if you don't use the Dock to launch apps.)"
    read -r response
    if [[ $response =~ ^([yY][eE][sS]|[yY])$ ]]; then
      defaults write com.apple.dock persistent-apps -array
    fi
    
    echo ""
    echo "Setting the icon size of Dock items to 36 pixels for optimal size/screen-realestate"
    defaults write com.apple.dock tilesize -int 36
    
    echo ""
    echo "Speeding up Mission Control animations and grouping windows by application"
    defaults write com.apple.dock expose-animation-duration -float 0.1
    defaults write com.apple.dock "expose-group-by-app" -bool true
    
    echo ""
    echo "Disable the over-the-top focus ring animation"
    defaults write NSGlobalDomain NSUseAnimatedFocusRing -bool false
    
    echo ""
    echo "Hide the menu bar?"
    read -r response
    if [[ $response =~ ^([yY][eE][sS]|[yY])$ ]]; then
      defaults write "Apple Global Domain" "_HIHideMenuBar" 1
    fi
    
    echo ""
    echo "Set Dock to auto-hide and remove the auto-hiding delay? (y/n)"
    read -r response
    if [[ $response =~ ^([yY][eE][sS]|[yY])$ ]]; then
      defaults write com.apple.dock autohide -bool true
      defaults write com.apple.dock autohide-delay -float 0
      defaults write com.apple.dock autohide-time-modifier -float 0
    fi
    
    
    ###############################################################################
    # Chrome, Safari, & WebKit
    ###############################################################################
    
    echo ""
    echo "Privacy: Don't send search queries to Apple"
    defaults write com.apple.Safari UniversalSearchEnabled -bool false
    defaults write com.apple.Safari SuppressSearchSuggestions -bool true
    
    echo ""
    echo "Hiding Safari's bookmarks bar by default"
    defaults write com.apple.Safari ShowFavoritesBar -bool false
    
    echo ""
    echo "Hiding Safari's sidebar in Top Sites"
    defaults write com.apple.Safari ShowSidebarInTopSites -bool false
    
    echo ""
    echo "Disabling Safari's thumbnail cache for History and Top Sites"
    defaults write com.apple.Safari DebugSnapshotsUpdatePolicy -int 2
    
    echo ""
    echo "Enabling Safari's debug menu"
    defaults write com.apple.Safari IncludeInternalDebugMenu -bool true
    
    echo ""
    echo "Making Safari's search banners default to Contains instead of Starts With"
    defaults write com.apple.Safari FindOnPageMatchesWordStartsOnly -bool false
    
    echo ""
    echo "Removing useless icons from Safari's bookmarks bar"
    defaults write com.apple.Safari ProxiesInBookmarksBar "()"
    
    echo ""
    echo "Enabling the Develop menu and the Web Inspector in Safari"
    defaults write com.apple.Safari IncludeDevelopMenu -bool true
    defaults write com.apple.Safari WebKitDeveloperExtrasEnabledPreferenceKey -bool true
    defaults write com.apple.Safari "com.apple.Safari.ContentPageGroupIdentifier.WebKit2DeveloperExtrasEnabled" -bool true
    
    echo ""
    echo "Adding a context menu item for showing the Web Inspector in web views"
    defaults write NSGlobalDomain WebKitDeveloperExtras -bool true
    
    echo ""
    echo "Disabling the annoying backswipe in Chrome"
    defaults write com.google.Chrome AppleEnableSwipeNavigateWithScrolls -bool false
    defaults write com.google.Chrome.canary AppleEnableSwipeNavigateWithScrolls -bool false
    
    echo ""
    echo "Using the system-native print preview dialog in Chrome"
    defaults write com.google.Chrome DisablePrintPreview -bool true
    defaults write com.google.Chrome.canary DisablePrintPreview -bool true
    
    
    ###############################################################################
    # Mail
    ###############################################################################
    
    echo ""
    echo "Setting email addresses to copy as 'foo@example.com' instead of 'Foo Bar <foo@example.com>' in Mail.app"
    defaults write com.apple.mail AddressesIncludeNameOnPasteboard -bool false
    
    
    ###############################################################################
    # Terminal
    ###############################################################################
    
    echo ""
    echo "Enabling UTF-8 ONLY in Terminal.app and setting the Pro theme by default"
    defaults write com.apple.terminal StringEncodings -array 4
    defaults write com.apple.Terminal "Default Window Settings" -string "Pro"
    defaults write com.apple.Terminal "Startup Window Settings" -string "Pro"
    
    
    ###############################################################################
    # Time Machine
    ###############################################################################
    
    echo ""
    echo "Prevent Time Machine from prompting to use new hard drives as backup volume? (y/n)"
    read -r response
    if [[ $response =~ ^([yY][eE][sS]|[yY])$ ]]; then
      defaults write com.apple.TimeMachine DoNotOfferNewDisksForBackup -bool true
    fi
    
    echo ""
    echo "Disable local Time Machine backups? (This can take up a ton of SSD space on <128GB SSDs) (y/n)"
    read -r response
    if [[ $response =~ ^([yY][eE][sS]|[yY])$ ]]; then
      hash tmutil &> /dev/null && sudo tmutil disablelocal
    fi
    
    
    ###############################################################################
    # Messages                                                                    #
    ###############################################################################
    
    echo ""
    echo "Disable automatic emoji substitution in Messages.app? (i.e. use plain text smileys) (y/n)"
    read -r response
    if [[ $response =~ ^([yY][eE][sS]|[yY])$ ]]; then
      defaults write com.apple.messageshelper.MessageController SOInputLineSettings -dict-add "automaticEmojiSubstitutionEnablediMessage" -bool false
    fi
    
    echo ""
    echo "Disable smart quotes in Messages.app? (it's annoying for messages that contain code) (y/n)"
    read -r response
    if [[ $response =~ ^([yY][eE][sS]|[yY])$ ]]; then
      defaults write com.apple.messageshelper.MessageController SOInputLineSettings -dict-add "automaticQuoteSubstitutionEnabled" -bool false
    fi
    
    echo ""
    echo "Disable continuous spell checking in Messages.app? (y/n)"
    read -r response
    if [[ $response =~ ^([yY][eE][sS]|[yY])$ ]]; then
      defaults write com.apple.messageshelper.MessageController SOInputLineSettings -dict-add "continuousSpellCheckingEnabled" -bool false
    fi
    
    
    ###############################################################################
    # Transmission.app                                                            #
    ###############################################################################
    
    
    echo ""
    echo "Do you use Transmission for torrenting? (y/n)"
    read -r response
    if [[ $response =~ ^([yY][eE][sS]|[yY])$ ]]; then
      mkdir -p ~/Downloads/Incomplete
    
      echo ""
      echo "Setting up an incomplete downloads folder in Downloads"
      defaults write org.m0k.transmission UseIncompleteDownloadFolder -bool true
      defaults write org.m0k.transmission IncompleteDownloadFolder -string "${HOME}/Downloads/Incomplete"
    
      echo ""
      echo "Setting auto-add folder to be Downloads"
      defaults write org.m0k.transmission AutoImportDirectory -string "${HOME}/Downloads"
    
      echo ""
      echo "Don't prompt for confirmation before downloading"
      defaults write org.m0k.transmission DownloadAsk -bool false
    
      echo ""
      echo "Trash original torrent files after adding them"
      defaults write org.m0k.transmission DeleteOriginalTorrent -bool true
    
      echo ""
      echo "Hiding the donate message"
      defaults write org.m0k.transmission WarningDonate -bool false
    
      echo ""
      echo "Hiding the legal disclaimer"
      defaults write org.m0k.transmission WarningLegal -bool false
    
      echo ""
      echo "Auto-resizing the window to fit transfers"
      defaults write org.m0k.transmission AutoSize -bool true
    
      echo ""
      echo "Auto updating to betas"
      defaults write org.m0k.transmission AutoUpdateBeta -bool true
    
      echo ""
      echo "Setting up the best block list"
      defaults write org.m0k.transmission EncryptionRequire -bool true
      defaults write org.m0k.transmission BlocklistAutoUpdate -bool true
      defaults write org.m0k.transmission BlocklistNew -bool true
      defaults write org.m0k.transmission BlocklistURL -string "http://john.bitsurge.net/public/biglist.p2p.gz"
    fi
    
    
    ###############################################################################
    # Sublime Text
    ###############################################################################
    echo ""
    echo "Do you use Sublime Text 3 as your editor of choice, and is it installed?"
    read -r response
    if [[ $response =~ ^([yY][eE][sS]|[yY])$ ]]; then
      # Installing from homebrew cask does the following for you!
      # echo ""
      # echo "Linking Sublime Text for command line usage as subl"
      # ln -s "/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl" /usr/local/bin/subl
    
      echo ""
      echo "Setting Git to use Sublime Text as default editor"
      git config --global core.editor "subl -n -w"
    fi
    
    ###############################################################################
    # Optional Extras
    ###############################################################################
    
    # Create a nice last-change git log message, from https://twitter.com/elijahmanor/status/697055097356943360
    git config --global alias.lastchange 'log -p --follow -n 1'
    
    
    
    ###############################################################################
    # Kill affected applications
    ###############################################################################
    
    echo ""
    cecho "Done!" $cyan
    echo ""
    echo ""
    cecho "################################################################################" $white
    echo ""
    echo ""
    cecho "Note that some of these changes require a logout/restart to take effect." $red
    cecho "Killing some open applications in order to take effect." $red
    echo ""
    
    find ~/Library/Application\ Support/Dock -name "*.db" -maxdepth 1 -delete
    for app in "Activity Monitor" "Address Book" "Calendar" "Contacts" "cfprefsd" \
      "Dock" "Finder" "Mail" "Messages" "Safari" "SystemUIServer" \
      "Terminal" "Transmission"; do
      killall "${app}" > /dev/null 2>&1
    done
    
    
    

    public by sTiLL-iLL modified Nov 23, 2014  3644  2  9  36

    my event-emitter.... for your browser

    SignalEmitter.js super fast async events, with an API like nodejs' EventEmitter
    // Eventually I'll get it
    
    var SignalEmitter = (function () {
    	var _sigCache = [],
    		_singleRecieve_retval = {};
    	function _isArry(obj) {
    		return (obj.constructor === Array);
    	}
    	function _receiverObjects(eventName) {
    		var recvrLst = _allReceivers(eventName), rspns;	
    		if (_isArry(recvrLst)) {
    			rspns = {};
    			rspns[eventName] = recvrLst;
    		}	
    		return rspns || recvrLst;
    	}
    	function _sigRecv(eventName, func) {
    		if (!_sigCache) {
    			_sigCache = [];
    		}
    		if (!_sigCache[eventName]) {
    			_sigCache[eventName] = func;
    		} 
    		else if (_isArry(_sigCache[eventName])) {
    			_sigCache[eventName].push(func);
    		} 
    		else {
    			_sigCache[eventName] = [_sigCache[eventName], func];
    		}	
    		return this;
    	}
    	function _allReceivers(eventName) {
    		if (!_sigCache) {
    			_sigCache = [];
    		}
    		if (!_sigCache[eventName]) {
    			_sigCache[eventName] = [];
    		}
    		if (!_isArry(_sigCache[eventName])) {
    			_sigCache[eventName] = [_sigCache[eventName]];
    		}
    		return _sigCache[eventName];
    	}	
    	function _emitSignal(eventName, args) {
    		var recvrLst = _receiverObjects(eventName),
    			k, recvr, i, rspns;
    		for (k in recvrLst ) {
    			if (recvrLst.hasOwnProperty(k)) {
    				i = recvrLst[k].length;		
    				while (i--) {
    					recvr = recvrLst[k][i];
    					if (recvr._signalOnce === true) {
    						_removeReceiver(eventName, recvr);
    					}	
    					rspns = recvr.call(this, args || []);
    					if (rspns === _getOnce_RetVal()) {
    						_removeReceiver(eventName, recvr);
    					}
    				}
    			}
    		}
    		return this;
    	}
    	function _signalOnce(eventName, func) {
    		var slf = this;
    		function onit () {
    			slf._removeReceiver(eventName, _sigRecv);
    			func.apply(this, args);
    		}
    		_sigRecv.receiver = func;
    		this.onit(eventName, _sigRecv);	
    		return this;
    	}
    	function _getOnce_RetVal() {
    		if (_singleRecieve_retval) {
    			return _singleRecieve_retval;
    		}
    		else {
    			return true;
    		}
    	}
    	function _setOnce_RetVal(val) {
    		_singleRecieve_retval = val;
    		return this;
    	}
    	function _removeReceiver(eventName, func) {
    		if (_sigCache && _sigCache[eventName]) {
    			var sigLst = _sigCache[eventName];	
    			if (_isArry(sigLst)) {
    				var idx = -1;
    				for (var i = 0, l = sigLst.length; i < l; i++) {
    					if (sigLst[i] === func || (sigLst[i].receiver && sigLst[i].receiver === func)) {
    						idx = i;
    						break;
    					}
    				}
    				
    				if (idx < 0) {
    					return this;
    				}
    				
    				sigLst.splice(idx, 1);
    				if (!sigLst.length) {
    					delete _sigCache[eventName];
    				}
    			} 
    			else if (sigLst === func || (sigLst.receiver && sigLst.receiver === func)) {
    				delete _sigCache[eventName];
    			}
    		}
    		return this;
    	}
    	
    	var receive = function(eventName, func) {
    		return _sigRecv(eventName, function(evnt){
    			func(evnt);
    		});
    	},
    	dropReceiver = function(eventName, func) {
    		return _removeReceiver(eventName, function(evt){
    			func(evt);
    		});
    	},
    	dropReceivers = function (eventName) {
    		if (!eventName) {
    			_sigCache = {};
    			return this;
    		}
    		if (_sigCache && _sigCache[eventName]) {
    			_sigCache[eventName] = null;
    		}
    		return this;
    	},   
    	receivers = function (eventName) {
    		return _allReceivers(eventName);
    	},	
    	assignTo = function(eventName, func) {
    		return _sigRecv(eventName, function(evnt){
    			func(evnt);
    		});
    	},
    	castSingle = function(eventName, func) {
    		return _signalOnce(eventName, function(evt) {
    			func(evt);
    		});
    	},
    	sgCast = function(eventName, args) {
    		return _emitSignal(eventName, args);
    	};
    	return {
    		emit: sgCast,
    		on: assignTo,
    		receive: receive,
    		once: castSingle,
    		dropReceiver: dropReceiver,
    		off: dropReceiver,
    		addReceiver: assignTo,
    		getReceivers: receivers,
    		dropReceivers: dropReceivers
    	};
    })();
    
    exports.SignalEmitter = SignalEmitter;
    
    • Public Snippets
    • Channels Snippets