To run this, you can try:
curl -ksO https://gist.githubusercontent.com/nicerobot/2697848/raw/uninstall-node.sh
chmod +x ./uninstall-node.sh
./uninstall-node.sh
rm uninstall-node.sh
//PhantomJS http://phantomjs.org/ based web crawler Anton Ivanov [email protected] 2012 | |
//UPDATE: This gist has been made into a Node.js module and now can be installed with "npm install js-crawler" | |
//the Node.js version does not use Phantom.JS, but the API available to the client is similar to the present gist | |
(function(host) { | |
function Crawler() { | |
this.visitedURLs = {}; | |
}; | |
########################################## | |
# | |
# c.f. http://stackoverflow.com/questions/3520977/build-fat-static-library-device-simulator-using-xcode-and-sdk-4 | |
# | |
# Version 2.82 | |
# | |
# Latest Change: | |
# - MORE tweaks to get the iOS 10+ and 9- working | |
# - Support iOS 10+ | |
# - Corrected typo for iOS 1-10+ (thanks @stuikomma) |
/** | |
* Moves a model to the given index, if different from its current index. Handy | |
* for shuffling models about after they've been pulled into a new position via | |
* drag and drop. | |
*/ | |
Backbone.Collection.prototype.move = function(model, toIndex) { | |
var fromIndex = this.indexOf(model) | |
if (fromIndex == -1) { | |
throw new Error("Can't move a model that's not in the collection") | |
} |
(function($) { | |
function parseImagesFromCSS(doc) { | |
var i, j, | |
rule, | |
image, | |
pattern = /url\((.*)\)/, | |
properties = ['background-image', '-webkit-border-image'], | |
images = {}; | |
if (doc.styleSheets) { |
# Copyright: Benjamin Weiss (keyboardsurfer) https://github.com/keyboardsurfer | |
# Under CC-BY-SA V3.0 (https://creativecommons.org/licenses/by-sa/3.0/legalcode) | |
# built application files | |
*.apk | |
*.ap_ | |
*.jar | |
!gradle/wrapper/gradle-wrapper.jar | |
# lint folder |
## In the function binding the events | |
_.bindAll(@, callbackName) | |
callback = @[callbackName] | |
# Bind callback to this | |
model.bind(event, callback) | |
# Store event, to unbind later | |
evt = [event, model, callback] | |
@_boundEvents.push(evt) |
// Virbone.View is a subclass of Backbone.View, with our own customizations of event-handling | |
MyView = Virbone.View.extend({ | |
modelEvents: { | |
// the binding of modelEvents knows the special keywords | |
// `model` and `collection` | |
"change:data model": "onDataUpdate", | |
"add collection": "onModelAdded", | |
// if the subject is other than `model` and `collection`, | |
// the subject-key is looked up in the options-object | |
"change:otherData otherModelInOptions": "onOtherDataUpdate" |
# Reference Backbone ajax function | |
_ajax = Backbone.ajax | |
requestQueue = [] | |
requestPending = false | |
sendRequest = (options, promise, trigger=true) -> | |
options = _.clone options | |
if trigger | |
requestPending = true |
To run this, you can try:
curl -ksO https://gist.githubusercontent.com/nicerobot/2697848/raw/uninstall-node.sh
chmod +x ./uninstall-node.sh
./uninstall-node.sh
rm uninstall-node.sh
I have always struggled with getting all the various share buttons from Facebook, Twitter, Google Plus, Pinterest, etc to align correctly and to not look like a tacky explosion of buttons. Seeing a number of sites rolling their own share buttons with counts, for example The Next Web I decided to look into the various APIs on how to simply return the share count.
If you want to roll up all of these into a single jQuery plugin check out Sharrre
Many of these API calls and methods are undocumented, so anticipate that they will change in the future. Also, if you are planning on rolling these out across a site I would recommend creating a simple endpoint that periodically caches results from all of the APIs so that you are not overloading the services will requests.