Skip to content

Instantly share code, notes, and snippets.

View acunniffe's full-sized avatar
🏁
finishing things

Aidan Cunniffe acunniffe

🏁
finishing things
View GitHub Profile
@acunniffe
acunniffe / gist:4dd226f885a9881ac81860097e1134dd
Created March 25, 2018 23:55
Optic Transformation Example
//input
const toDo = mongoose.model('todo', new mongoose.Schema({
'message': 'string',
'isDone': 'string'
}))
//output
app.post('/todo', (req, res)=> {
new toDo({
message: req.body.message,
@acunniffe
acunniffe / gist:50fa7d328287d293e8f237d414107050
Created August 14, 2018 22:05
proposed optic-skills-sdk lens example
/*
Express Parameter Lens
*/
import {js} from '../sdk-objects/lens/Snippet'
import {literalWithValue, tokenWithValue} from "../sdk-objects/lens/Finders";
const lens = js`
req.query.name
`
@acunniffe
acunniffe / test.js
Created August 16, 2018 00:47
combined value/schema example
{
in: {
type: "string",
enum: ["query", "body", "params", "header"],
from: tokenWithValue('query')
},
name: {
type: "string",
from: tokenWithValue('name')
}

New Optic Skills SDK

Setup

  1. Download a snapshot build

  2. Start Optic server `java -jar path/to/server.jar

  3. Clone the Optic Skills SDK Repo

  4. Run yarn install

  5. explore code within /examples

Ambasador Joseph P. Kennedy Sr. + Rose Fitzgerald
- Joseph P Kennedy Jr.
- John F. Kennedy + Jackie Bouvier
- Amb. Caroline Kennedy
- JFK Jr.
- Rosemary Kennedy
- Kathleen Kennedy
- Eunice Kennedy + Amb. Sargent Shiver
- Maria Shiver
- Patricia Kennedy
@acunniffe
acunniffe / gist:031caf85261a790b7406e1c0f5658605
Last active October 21, 2018 18:40
Glue Lang (Abstract)

Problems:

  • a lot of the complexity in modern programming comes from connecting various systems together & current paradigms aren't well suited for this kind of work
  • it's easy to share code, but much harder to package up & share features seamlessly

Key Idea: Compile graphs should be shared between projects so compilers can understand how to connect to the higher level interfaces a program exposes.

The Paradox

General purpose programming languages have a wide range of uses because they are built on foundational abstractions. But this flexibility comes at a cost: there's a lot of distance between those higher level abstractions that we deal with (APIs, queries, data models, streams, HTTP requests, etc) and the language itself. This distance is the reason it's ridiculously hard to do something like code completion or compile-time-feedback for a higher order construct like a request to a specific endpoint.

It's easy to code complete a function because it's represented by a FunctionNode in the A

@acunniffe
acunniffe / gsn.c
Created March 5, 2019 01:10
Basic GSR Logger for Arduino
void setup() {
// initialize serial communication at 9600 bits per second:
Serial.begin(9600);
}
// the loop routine runs over and over again forever:
void loop() {
// read the input on analog pin 0:
int sensorValue = analogRead(A0);
// Convert the analog reading (which goes from 0 - 1023) to a voltage (0 - 5V):
@acunniffe
acunniffe / mattermost-dereffed-oas.json
Created May 5, 2019 22:37
Mattermost OAS Dereffed
{
"swagger": "2.0",
"info": {
"description": "There is also a work-in-progress [Postman API reference](https://documenter.getpostman.com/view/4508214/RW8FERUn).\n",
"version": "4.0.0",
"title": "Mattermost API Reference",
"termsOfService": "https://about.mattermost.com/default-terms/",
"contact": {
"email": "[email protected]"
},
@acunniffe
acunniffe / mattermost-learned-spec.json
Created May 5, 2019 22:38
Mattermost Spec (Learned from Tests)
This file has been truncated, but you can view the full file.
{
"swagger": "2.0",
"info": {
"title": "undefined/mattermost-api4",
"version": "2.0.0"
},
"basePath": "/api/v4",
"paths": {
"/actions/dialogs/open": {
What is the distribution of licesne fields?
Sampling 355 APIs
NONE : 276
Apache 2.0 : 15
MIT : 12
Apache 2.0 License : 3
Terms and Conditions : 2
Creative Commons : 2