Skip to content

Instantly share code, notes, and snippets.

View ksnabb's full-sized avatar

Kristoffer Snabb ksnabb

  • Reaktor Innovations
  • Helsinki, Finland
View GitHub Profile
@ksnabb
ksnabb / curry1.js
Created April 30, 2021 15:10
variadic curry
function curry(f) {
return function curried(...args) {
if (args.length >= f.length) {
return f.apply(this, args);
} else {
return function (...args2) {
return curried.apply(this, args.concat(args2));
};
}
};
const appEvents = pubSub();
const appState = state("", appEvents);
const input = document.querySelector('.app input');
const paragraph = document.querySelector('.app p');
input.addEventListener('input', (evt) => {
appState.setValue(evt.srcElement.value);
});
@ksnabb
ksnabb / seconds-elapsed.js
Created December 16, 2018 12:38
Seconds elapsed using pubsub.js and state.js
const appEvents = pubSub();
const appState = state(0, appEvents);
function timer() {
appState.setValue(appState.getValue() + 1);
setTimeout(timer, 1000);
}
setTimeout(timer, 1000);
function updateTimerView(val) {
@ksnabb
ksnabb / pubsub.js
Created December 14, 2018 20:24
Simple Javascript/HTML Counter
function pubSub() {
const listeners = [];
return {
dispatch: (event) => listeners.forEach((l) => l(event)),
subscribe: (fun) => listeners.push(fun)
}
}
function compose(f, g) {
return function (A) {
return g(f(A));
}
}
db_Subnet_group = stack.add_resource(DBSubnetGroup(
'DbSubnetGroup',
DBSubnetGroupDescription='Subnet group for an internal DB',
SubnetIds=[Ref(db_subnet1), Ref(db_subnet2)]
))
db_instance = stack.add_resource(DBInstance(
'DbInstance',
AllocatedStorage=10,
DBInstanceClass='db.t2.micro',
ec2_role = stack.add_resource(
Role(
'WebappInstanceRole',
AssumeRolePolicyDocument=Policy(
Statement=[Statement(
Effect=Allow,
Principal=Principal('Service', ['ec2.amazonaws.com']),
Action=[AssumeRole]
)]
),
domain_certificate = stack.add_resource(
Certificate(
'ApiCertificate',
DomainName=f'{subdomain}.{domain}'
)
)
elb = stack.add_resource(LoadBalancer(
'ELB',
LoadBalancerName='ELB',
app_security_group = stack.add_resource(
SecurityGroup(
'AppInstanceSecurityGroup',
GroupName='AppInstanceSecurityGroup',
GroupDescription='Security group for the application instance',
SecurityGroupIngress=[{
'FromPort': '8080',
'ToPort': '8080',
'IpProtocol': 'tcp',
'CidrIp': '0.0.0.0/0'
internet_gateway = stack.add_resource(
InternetGateway('InternetGateway')
)
route_table = stack.add_resource(RouteTable(
'RouteTable',
VpcId=Ref(vpc)
))
stack.add_resource(Route(