Skip to content

Instantly share code, notes, and snippets.

View gmckeever's full-sized avatar

Greg McKeever gmckeever

View GitHub Profile
@gmckeever
gmckeever / tam-announcement-rum-without-limits-is-coming-to-your-adobe-org.html
Created May 19, 2026 22:39
Datadog TAM Announcement: RUM Without Limits is coming to your Adobe org
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>RUM Without Limits is coming to your Adobe org — Datadog TAM Announcement</title>
<meta name="description" content="A TAM announcement for Adobe business units on the upcoming RUM Without Limits entitlement: what changed, what you gain, your two paths at renewal, and configuration steps." />
<meta property="og:title" content="RUM Without Limits is coming to your Adobe org" />
<meta property="og:description" content="A TAM announcement for Adobe business units on the upcoming RUM Without Limits entitlement." />
<meta property="og:type" content="article" />
@gmckeever
gmckeever / ZendesktoGoogleAnalytics.js
Created November 15, 2019 00:03
A JS function that iterates through Zendesk Guide user tags and reports as a custom dimension in GA.
function CustomMetrics() {
var tag_array = HelpCenter.user.tags;
tag_array.forEach(function(tag){
if (tag.startsWith('fin.')){
var role = tag.replace(/fin./g, "");
ga('set', 'dimension2', role);
} else {
ga('set', 'dimension1', tag);
}
})
@gmckeever
gmckeever / plaid-institutions.js
Created May 9, 2019 02:14
Plaid institution count
/*
Run the script with node, using the request and request-promise packages
$ npm init --yes && npm install request request-promise --save
Also, don't forget to update client_id and secret with your own.
*/
const request = require('request-promise');
const options = {
@gmckeever
gmckeever / intercom.rake
Created February 2, 2018 23:09
Rake tasks to sync user and conversation tags from Intercom to a database
require 'intercom'
namespace :sync do
desc "Migrate tags table with full list of intercom tags"
task :tag_list => :environment do
intercom = IntercomHelper.api
intercom.tags.all.each do |tag|
if Tag.where(tag_id: tag.id).count == 0
@gmckeever
gmckeever / intercom.rake
Created January 31, 2018 21:46
Submit intercom ticket usage to AppOptics
desc "Update relevant Intercom metrics -> AppOptics metrics"
task :log_librato_metrics => :environment do
c = Librato::Metrics
c.authenticate(ENV['AO_METRICS_TOKEN'], '')
intercom = IntercomHelper.api
intercom_ao = IntercomHelper.appoptics
# general conversation stats
[intercom, intercom_ao].each do |i|
i.app == 'i5t8536a' ? app = 'Librato' : app = 'AppOptics'
i.app_id == ENV['INTERCOM_APP_ID'] ? app = 'Librato' : app = 'AppOptics'
@gmckeever
gmckeever / sitemap-scraper.rb
Last active May 13, 2019 15:29
Scrape sitemap and populate results into CSV
require 'nokogiri'
require 'open-uri'
require 'csv'
sitemap = nil
#pull in sitemap list and parse values into an array
open('https://www.rei.com/sitemap-product.xml') do |f|
sitemap = f.read
end
@gmckeever
gmckeever / example-part.rb
Last active August 29, 2015 13:56
This example goes over the basics of creating a new package with Autoparts
# This package (aka part) is a example which will help guide you build a new Autoparts package.
# https://github.com/nitrous-io/autoparts
# In order to create a new package you will need to provide the following information when creating a pull request:
# * Package Name
# * Version
# * Description
# * Source URL (official release source which package will always be located at)
# * Filetype (the extension of the file)
@gmckeever
gmckeever / app.js
Last active December 31, 2015 13:59
Modifications necessary to connect the Ionic Framework's Todo app example to Firebase.
angular.module('todo', ['ionic','firebase'])
/**
* The Projects factory handles saving and loading projects
* from local storage, and also lets us save and load the
* last active project index.
*/
.factory('Projects', function() {
return {
all: function() {
var projectString = window.localStorage['projects'];