Skip to content

Instantly share code, notes, and snippets.

View jsteenkamp's full-sized avatar

Johan Steenkamp jsteenkamp

View GitHub Profile
@jsteenkamp
jsteenkamp / webWorker.js
Created October 25, 2020 03:56 — forked from vitkon/webWorker.js
Long polling with web workers
function workerFunction() {
this.addEventListener('message', (e) => {
console.log('log2: ', e);
fetchUrl(e.data);
})
const fetchUrl = (url) => {
fetch(url)
.then((response) => {
console.log(response);
@jsteenkamp
jsteenkamp / net.js
Created November 19, 2018 21:42 — forked from sid24rane/net.js
Simple TCP Client and Server in Node.js (Covering all useful Properties & Methods)
var net = require('net');
// creates the server
var server = net.createServer();
//emitted when server closes ...not emitted until all connections closes.
server.on('close',function(){
console.log('Server closed !');
});
@jsteenkamp
jsteenkamp / App.js
Created November 12, 2018 02:39 — forked from ryanflorence/App.js
import React, { Suspense, useState } from "react";
import { unstable_createResource as createResource } from "react-cache";
import {
Combobox,
ComboboxInput,
ComboboxList,
ComboboxOption
} from "./Combobox2.js";
function App({ tabIndex, navigate }) {
@jsteenkamp
jsteenkamp / ladder.md
Created November 11, 2018 18:05 — forked from jamtur01/ladder.md
Kickstarter Engineering Ladder
@jsteenkamp
jsteenkamp / README.md
Created September 4, 2018 19:59
Simple queue using async/await

Queue using async/await

Implement a queue using async/await.

I created a single instance, easy enough to convert to a factory if you want multiple queues or add features like timeout with configuration object.

Although this solution is simple and does not require any additional libraries I do not think it is robust. For example retries after errors or timeouts is not supported. Rather than solve these issues it makes more sense to look at proven solutions such as message/task queues.

Usage

@jsteenkamp
jsteenkamp / foo.js
Last active August 27, 2018 19:35 — forked from ryanflorence/foo.js
Animation/transition using react spring
// Adds a lovely fade in of the modal
// and a gentle slide-down of the modal content
class Demo extends React.Component {
state = { showDialog: false };
render() {
return (
<div>
<button onClick={() => this.setState({ showDialog: true })}>
Show Dialog
</button>
@jsteenkamp
jsteenkamp / elevations.js
Created June 22, 2018 22:27
Google Material Design Elevations
// Google Material Design 1-24dp elevations (shadows)
// https://github.com/material-components/material-components-web/blob/master/packages/mdc-elevation/_variables.scss
const umbraOpacity = '0.2';
const penumbraOpacity = '0.14';
const ambientOpacity = '0.12';
// map index are [0-24]
const elevationUmbraMap = [
@jsteenkamp
jsteenkamp / index.js
Created June 14, 2016 01:17
React Stand Alone component with config
// only entry point for CSS processed via webpack
import '../styles/main.scss';
import React from 'react';
import { render } from 'react-dom';
import { browserHistory } from 'react-router';
import configureStore from './store';
import root, { Root } from './root';
const store = configureStore(root.rootInitialState);
@jsteenkamp
jsteenkamp / readFromAmazonS3.cfm
Last active May 27, 2016 20:55
Replacement for ColdFusion <cffile.../> to upload and read (acl = public-read) to/from Amazon S3
<cffunction name="readFromAmazonS3">
<cfargument name="fileName" required="true"/>
<cfargument name="bucket" default="mybucket"/>
<cfhttp method="GET" url="http://s3.amazonaws.com/#arguments.bucket#/#arguments.fileName#" timeout="300" result="result"></cfhttp>
<cfreturn result.filecontent/>
</cffunction>