Skip to content

Instantly share code, notes, and snippets.

@timhall
timhall / Crunchbase.bas
Created February 13, 2015 01:12
Crunchbase VBA-Web Example
Private Const UserKey As String = "YOUR-USER-KEY"
Private pClient As WebClient
Public Property Get Client() As WebClient
If pClient Is Nothing Then
Set pClient = New WebClient
pClient.BaseUrl = "https://api.crunchbase.com/v/2/"
End If
Set Client = pClient
''
' Xing Authenticator
'' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ '
Implements IWebAuthenticator
Option Explicit
' --------------------------------------------- '
' Constants and Private Variables
' --------------------------------------------- '
''
' Todoist Authenticator
' (c) Tim Hall - https://github.com/VBA-tools/VBA-Web
'
' Custom IWebAuthenticator for TODOist API
' https://developer.todoist.com/#oauth
' ```
'
' @class TodoistAuthenticator
' @implements IWebAuthenticator v4.*
@timhall
timhall / gist:3494261
Created August 28, 2012 02:03
Javascript inheritance (slight additions to backbone's implementation)
// Subclass given parent class and extend with prototype and static properties
// (inherits helper from Backbone.js)
var inherits = function (parent, protoProps, staticProps) {
var child;
if (protoProps && protoProps.hasOwnProperty('constructor')) {
child = protoProps.constructor;
} else {
child = function () { parent.apply(this, arguments); };
}
@timhall
timhall / gist:3494452
Created August 28, 2012 02:44
Example implementation of inheritance implementation
var Parent = function (name) {
var _parent = this;
_parent.name = name;
}
Parent.prototype.sayHi = function () {
return 'Hi ' + this.name + '!';
}
Parent.sayHowdy = function () { return 'Howdy!' }
extendable(Parent);
/*
Goal:
Draw charts and components purely from selection and props
Question:
Is it more performant (speed and memory):
a) transform data fully before passing to draw
b) transform data minimally and prepare (d, i) functions and pass with props
Hypothesis:
@timhall
timhall / d3.compose functional.md
Last active November 18, 2015 15:23
d3.compose functional

Goals

Apply functional techniques to make d3.compose easier to reason about, more testable, and better match d3's standard approach

Implementation

Use a "smart"/"dumb" components approach (reference) with "smart" component handling logic, state, and context and "dumb" component handling rendering.

  • The "dumb" component is stateless and is a simple, idempotent function that takes in a d3.selection and properties and renders the chart.
  • The "smart" component provides the API for interacting with Compose, prepares properties for the "dumb" component, and handles any logic/state
Private Client As WebClient
Private Wrapper As WebAsyncWrapper
Private AllRequests As Collection
Private BatchIndex As Long
Private BatchSize As Long
Private Waiting As Long
Public Sub ExecuteRequests()
Dim i As Long
Dim Request As WebRequest
Sub PostFiles()
' Note: Add reference to Microsoft Scripting Runtime
' (Tools > References)
' References:
' http://www.xl-central.com/list-files-fso.html
' http://stackoverflow.com/a/20391100/1240745
Dim FSO As New FileSystemObject
Dim XmlFolder As Folder
Private pClient As WebClient
Public Property Get Client() As WebClient
If pClient Is Nothing Then
Set pClient = New WebClient
pClient.BaseUrl = "https://ops.epo.org/3.1/"
' Setup authenticator (note: provide consumer key and secret here
Dim Auth As New OPSAuthenticator
Auth.Setup "CONSUMER_KEY", "CONSUMER_SECRET"